diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-01-10 20:07:08 +0300 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-01-10 20:07:08 +0300 |
commit | 90e6b048365950416419c031f2f2d9a8afb5b70c (patch) | |
tree | 9be821f3d0abf5d9773bb1d4f57f013be445fdac /arch/arm/vfp/vfp.h | |
parent | 198a6d5a6189501e2b8abf4e3149ccb337866f65 (diff) | |
download | linux-90e6b048365950416419c031f2f2d9a8afb5b70c.tar.xz |
[ARM] vfp: fix fuitod/fsitod instructions
These two instructions exceptionally take a single precision register
as their operand. This means we can't use vfp_get_dm() to read the
register number - we need to use vfp_get_sm() instead. Add a flag to
indicate this exception to the general rule.
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 | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/vfp/vfp.h b/arch/arm/vfp/vfp.h index 54a2ad6d9ca2..791d0238c68f 100644 --- a/arch/arm/vfp/vfp.h +++ b/arch/arm/vfp/vfp.h @@ -361,10 +361,12 @@ u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand); * OP_SCALAR - this operation always operates in scalar mode * OP_SD - the instruction exceptionally writes to a single precision result. * OP_DD - the instruction exceptionally writes to a double precision result. + * OP_SM - the instruction exceptionally reads from a single precision operand. */ #define OP_SCALAR (1 << 0) #define OP_SD (1 << 1) #define OP_DD (1 << 1) +#define OP_SM (1 << 2) struct op { u32 (* const fn)(int dd, int dn, int dm, u32 fpscr); |