mirror of https://github.com/xemu-project/xemu.git
target-arm: Give the FPSCR rounding modes names
When setting rounding modes we currently just hardcode the numeric values for rounding modes in a big switch statement. With AArch64 support coming, we will need to refer to these rounding modes at different places throughout the code though, so let's better give them names so we don't get confused by accident. Signed-off-by: Alexander Graf <agraf@suse.de> [WN: Commit message tweak, use names from ARM ARM.] Signed-off-by: Will Newton <will.newton@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
7b2440e438
commit
f9dfa55857
|
@ -487,6 +487,15 @@ static inline void vfp_set_fpcr(CPUARMState *env, uint32_t val)
|
|||
vfp_set_fpscr(env, new_fpscr);
|
||||
}
|
||||
|
||||
enum arm_fprounding {
|
||||
FPROUNDING_TIEEVEN,
|
||||
FPROUNDING_POSINF,
|
||||
FPROUNDING_NEGINF,
|
||||
FPROUNDING_ZERO,
|
||||
FPROUNDING_TIEAWAY,
|
||||
FPROUNDING_ODD
|
||||
};
|
||||
|
||||
enum arm_cpu_mode {
|
||||
ARM_CPU_MODE_USR = 0x10,
|
||||
ARM_CPU_MODE_FIQ = 0x11,
|
||||
|
|
|
@ -3815,16 +3815,16 @@ void HELPER(vfp_set_fpscr)(CPUARMState *env, uint32_t val)
|
|||
if (changed & (3 << 22)) {
|
||||
i = (val >> 22) & 3;
|
||||
switch (i) {
|
||||
case 0:
|
||||
case FPROUNDING_TIEEVEN:
|
||||
i = float_round_nearest_even;
|
||||
break;
|
||||
case 1:
|
||||
case FPROUNDING_POSINF:
|
||||
i = float_round_up;
|
||||
break;
|
||||
case 2:
|
||||
case FPROUNDING_NEGINF:
|
||||
i = float_round_down;
|
||||
break;
|
||||
case 3:
|
||||
case FPROUNDING_ZERO:
|
||||
i = float_round_to_zero;
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue