diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-08-30 10:06:39 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-08-30 10:06:39 -0400 |
commit | 0355b3e039c621d15321fd0d5cf72d8bdb8f723d (patch) | |
tree | 005fd5c6e3e78ec39ee2a3924371cbdc69b34fac /arch/arm/vfp/vfp.h | |
parent | dc709bd190c130b299ac19d596594256265c042a (diff) |
[ARM] 3750/3: Fix double VFP emulation for EABI kernels
Patch from Daniel Jacobowitz
vfp_put_double didn't work in a CONFIG_AEABI kernel. By swapping
the arguments, we arrange for them to be in the same place regardless
of ABI. I made the same change to vfp_put_float for consistency.
Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/vfp/vfp.h')
-rw-r--r-- | arch/arm/vfp/vfp.h | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/arm/vfp/vfp.h b/arch/arm/vfp/vfp.h index 5fbdf81a8aaf..96fdf30f6a3b 100644 --- a/arch/arm/vfp/vfp.h +++ b/arch/arm/vfp/vfp.h | |||
@@ -156,7 +156,7 @@ struct vfp_single { | |||
156 | }; | 156 | }; |
157 | 157 | ||
158 | extern s32 vfp_get_float(unsigned int reg); | 158 | extern s32 vfp_get_float(unsigned int reg); |
159 | extern void vfp_put_float(unsigned int reg, s32 val); | 159 | extern void vfp_put_float(s32 val, unsigned int reg); |
160 | 160 | ||
161 | /* | 161 | /* |
162 | * VFP_SINGLE_MANTISSA_BITS - number of bits in the mantissa | 162 | * VFP_SINGLE_MANTISSA_BITS - number of bits in the mantissa |
@@ -267,7 +267,7 @@ struct vfp_double { | |||
267 | */ | 267 | */ |
268 | #define VFP_REG_ZERO 16 | 268 | #define VFP_REG_ZERO 16 |
269 | extern u64 vfp_get_double(unsigned int reg); | 269 | extern u64 vfp_get_double(unsigned int reg); |
270 | extern void vfp_put_double(unsigned int reg, u64 val); | 270 | extern void vfp_put_double(u64 val, unsigned int reg); |
271 | 271 | ||
272 | #define VFP_DOUBLE_MANTISSA_BITS (52) | 272 | #define VFP_DOUBLE_MANTISSA_BITS (52) |
273 | #define VFP_DOUBLE_EXPONENT_BITS (11) | 273 | #define VFP_DOUBLE_EXPONENT_BITS (11) |
@@ -341,12 +341,6 @@ static inline int vfp_double_type(struct vfp_double *s) | |||
341 | 341 | ||
342 | u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exceptions, const char *func); | 342 | u32 vfp_double_normaliseround(int dd, struct vfp_double *vd, u32 fpscr, u32 exceptions, const char *func); |
343 | 343 | ||
344 | /* | ||
345 | * System registers | ||
346 | */ | ||
347 | extern u32 vfp_get_sys(unsigned int reg); | ||
348 | extern void vfp_put_sys(unsigned int reg, u32 val); | ||
349 | |||
350 | u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand); | 344 | u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand); |
351 | 345 | ||
352 | /* | 346 | /* |