projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] ARM: 2837/2: Re: ARM: Make NWFPE preempt safe
[firefly-linux-kernel-4.4.55.git]
/
arch
/
arm
/
nwfpe
/
fpa11.c
diff --git
a/arch/arm/nwfpe/fpa11.c
b/arch/arm/nwfpe/fpa11.c
index bf61696865ec2c6531007d6eaa6aedd6c6bf8850..7690f731ee8706227acdf3b1f56de14f2b906839 100644
(file)
--- a/
arch/arm/nwfpe/fpa11.c
+++ b/
arch/arm/nwfpe/fpa11.c
@@
-51,48
+51,42
@@
static void resetFPA11(void)
fpa11->fpsr = FP_EMULATOR | BIT_AC;
}
fpa11->fpsr = FP_EMULATOR | BIT_AC;
}
-
void
SetRoundingMode(const unsigned int opcode)
+
int8
SetRoundingMode(const unsigned int opcode)
{
switch (opcode & MASK_ROUNDING_MODE) {
default:
case ROUND_TO_NEAREST:
{
switch (opcode & MASK_ROUNDING_MODE) {
default:
case ROUND_TO_NEAREST:
- float_rounding_mode = float_round_nearest_even;
- break;
+ return float_round_nearest_even;
case ROUND_TO_PLUS_INFINITY:
case ROUND_TO_PLUS_INFINITY:
- float_rounding_mode = float_round_up;
- break;
+ return float_round_up;
case ROUND_TO_MINUS_INFINITY:
case ROUND_TO_MINUS_INFINITY:
- float_rounding_mode = float_round_down;
- break;
+ return float_round_down;
case ROUND_TO_ZERO:
case ROUND_TO_ZERO:
- float_rounding_mode = float_round_to_zero;
- break;
+ return float_round_to_zero;
}
}
}
}
-
void
SetRoundingPrecision(const unsigned int opcode)
+
int8
SetRoundingPrecision(const unsigned int opcode)
{
#ifdef CONFIG_FPE_NWFPE_XP
switch (opcode & MASK_ROUNDING_PRECISION) {
case ROUND_SINGLE:
{
#ifdef CONFIG_FPE_NWFPE_XP
switch (opcode & MASK_ROUNDING_PRECISION) {
case ROUND_SINGLE:
- floatx80_rounding_precision = 32;
- break;
+ return 32;
case ROUND_DOUBLE:
case ROUND_DOUBLE:
- floatx80_rounding_precision = 64;
- break;
+ return 64;
case ROUND_EXTENDED:
case ROUND_EXTENDED:
- floatx80_rounding_precision = 80;
- break;
+ return 80;
default:
default:
-
floatx80_rounding_precision =
80;
+
return
80;
}
#endif
}
#endif
+ return 80;
}
void nwfpe_init_fpa(union fp_state *fp)
}
void nwfpe_init_fpa(union fp_state *fp)
@@
-103,8
+97,6
@@
void nwfpe_init_fpa(union fp_state *fp)
#endif
memset(fpa11, 0, sizeof(FPA11));
resetFPA11();
#endif
memset(fpa11, 0, sizeof(FPA11));
resetFPA11();
- SetRoundingMode(ROUND_TO_NEAREST);
- SetRoundingPrecision(ROUND_EXTENDED);
fpa11->initflag = 1;
}
fpa11->initflag = 1;
}