dynarmic/src/common/fp/rounding_mode.h

31 lines
1 KiB
C
Raw Normal View History

2018-06-26 15:10:44 +01:00
/* This file is part of the dynarmic project.
* Copyright (c) 2018 MerryMage
* This software may be used and distributed according to the terms of the GNU
* General Public License version 2 or any later version.
*/
#pragma once
#include "common/common_types.h"
namespace Dynarmic::FP {
/// Ordering of first four values is important as they correspond to bits in FPCR.
enum class RoundingMode {
/// Round to nearest floating point. If there is a tie, round to nearest even digit in required position.
ToNearest_TieEven,
/// Round up towards positive infinity.
TowardsPlusInfinity,
/// Round downwards towards negative infinity.
TowardsMinusInfinity,
/// Truncate towards zero.
TowardsZero,
/// Round to nearest floating point. If there is a tie, round away from zero.
ToNearest_TieAwayFromZero,
/// Von Neumann rounding (as modified by Brent). Also known as sticky rounding.
/// Set the least significant bit to 1 if the result is not exact.
ToOdd,
};
} // namespace Dynarmic::FP