diff options
| author | Maciej W. Rozycki <macro@linux-mips.org> | 2015-04-03 18:26:49 -0400 |
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2015-04-07 19:10:05 -0400 |
| commit | 2d83fea786d7aeb5b3b76bd492d9b3bccc0f823c (patch) | |
| tree | ff3ca66d494d9b367aeefa99f07b70aa5eeb72e7 /arch/mips/include | |
| parent | 80cbfad790962125b542cb0cb637954c04386b30 (diff) | |
MIPS: Correct FP ISA requirements
Correct ISA requirements for floating-point instructions:
* the CU3 exception signifies a real COP3 instruction in MIPS I & II,
* the BC1FL and BC1TL instructions are not supported in MIPS I,
* the SQRT.fmt instructions are indeed supported in MIPS II,
* the LDC1 and SDC1 instructions are indeed supported in MIPS32r1,
* the CEIL.W.fmt, FLOOR.W.fmt, ROUND.W.fmt and TRUNC.W.fmt instructions
are indeed supported in MIPS32,
* the CVT.L.fmt and CVT.fmt.L instructions are indeed supported in
MIPS32r2 and MIPS32r6,
* the CEIL.L.fmt, FLOOR.L.fmt, ROUND.L.fmt and TRUNC.L.fmt instructions
are indeed supported in MIPS32r2 and MIPS32r6,
* the RSQRT.fmt and RECIP.fmt instructions are indeed supported in
MIPS64r1,
Also simplify conditionals for MIPS III and MIPS IV FPU instructions and
the handling of the MOVCI minor opcode.
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9700/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include')
| -rw-r--r-- | arch/mips/include/asm/cpu-features.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h index 62a4730de86a..fc2ad332541c 100644 --- a/arch/mips/include/asm/cpu-features.h +++ b/arch/mips/include/asm/cpu-features.h | |||
| @@ -221,8 +221,11 @@ | |||
| 221 | #define cpu_has_mips_4_5_r (cpu_has_mips_4 | cpu_has_mips_5_r) | 221 | #define cpu_has_mips_4_5_r (cpu_has_mips_4 | cpu_has_mips_5_r) |
| 222 | #define cpu_has_mips_5_r (cpu_has_mips_5 | cpu_has_mips_r) | 222 | #define cpu_has_mips_5_r (cpu_has_mips_5 | cpu_has_mips_r) |
| 223 | 223 | ||
| 224 | #define cpu_has_mips_4_5_r2_r6 (cpu_has_mips_4_5 | cpu_has_mips_r2 | \ | 224 | #define cpu_has_mips_3_4_5_64_r2_r6 \ |
| 225 | cpu_has_mips_r6) | 225 | (cpu_has_mips_3 | cpu_has_mips_4_5_64_r2_r6) |
| 226 | #define cpu_has_mips_4_5_64_r2_r6 \ | ||
| 227 | (cpu_has_mips_4_5 | cpu_has_mips64r1 | \ | ||
| 228 | cpu_has_mips_r2 | cpu_has_mips_r6) | ||
| 226 | 229 | ||
| 227 | #define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2 | cpu_has_mips32r6) | 230 | #define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2 | cpu_has_mips32r6) |
| 228 | #define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2 | cpu_has_mips64r6) | 231 | #define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2 | cpu_has_mips64r6) |
