diff options
| -rw-r--r-- | arch/mips/include/asm/cpu-features.h | 3 | ||||
| -rw-r--r-- | arch/mips/math-emu/cp1emu.c | 8 |
2 files changed, 6 insertions, 5 deletions
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h index e686131ff995..0d8208de9a3f 100644 --- a/arch/mips/include/asm/cpu-features.h +++ b/arch/mips/include/asm/cpu-features.h | |||
| @@ -220,7 +220,8 @@ | |||
| 220 | #define cpu_has_mips_4_5_r (cpu_has_mips_4 | cpu_has_mips_5_r) | 220 | #define cpu_has_mips_4_5_r (cpu_has_mips_4 | cpu_has_mips_5_r) |
| 221 | #define cpu_has_mips_5_r (cpu_has_mips_5 | cpu_has_mips_r) | 221 | #define cpu_has_mips_5_r (cpu_has_mips_5 | cpu_has_mips_r) |
| 222 | 222 | ||
| 223 | #define cpu_has_mips_4_5_r2 (cpu_has_mips_4_5 | cpu_has_mips_r2) | 223 | #define cpu_has_mips_4_5_r2_r6 (cpu_has_mips_4_5 | cpu_has_mips_r2 | \ |
| 224 | cpu_has_mips_r6) | ||
| 224 | 225 | ||
| 225 | #define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2 | cpu_has_mips32r6) | 226 | #define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2 | cpu_has_mips32r6) |
| 226 | #define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2 | cpu_has_mips64r6) | 227 | #define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2 | cpu_has_mips64r6) |
diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c index 3c341b08d120..b30bf65c7d7d 100644 --- a/arch/mips/math-emu/cp1emu.c +++ b/arch/mips/math-emu/cp1emu.c | |||
| @@ -1561,14 +1561,14 @@ static int fpu_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx, | |||
| 1561 | * achieve full IEEE-754 accuracy - however this emulator does. | 1561 | * achieve full IEEE-754 accuracy - however this emulator does. |
| 1562 | */ | 1562 | */ |
| 1563 | case frsqrt_op: | 1563 | case frsqrt_op: |
| 1564 | if (!cpu_has_mips_4_5_r2) | 1564 | if (!cpu_has_mips_4_5_r2_r6) |
| 1565 | return SIGILL; | 1565 | return SIGILL; |
| 1566 | 1566 | ||
| 1567 | handler.u = fpemu_sp_rsqrt; | 1567 | handler.u = fpemu_sp_rsqrt; |
| 1568 | goto scopuop; | 1568 | goto scopuop; |
| 1569 | 1569 | ||
| 1570 | case frecip_op: | 1570 | case frecip_op: |
| 1571 | if (!cpu_has_mips_4_5_r2) | 1571 | if (!cpu_has_mips_4_5_r2_r6) |
| 1572 | return SIGILL; | 1572 | return SIGILL; |
| 1573 | 1573 | ||
| 1574 | handler.u = fpemu_sp_recip; | 1574 | handler.u = fpemu_sp_recip; |
| @@ -1763,13 +1763,13 @@ copcsr: | |||
| 1763 | * achieve full IEEE-754 accuracy - however this emulator does. | 1763 | * achieve full IEEE-754 accuracy - however this emulator does. |
| 1764 | */ | 1764 | */ |
| 1765 | case frsqrt_op: | 1765 | case frsqrt_op: |
| 1766 | if (!cpu_has_mips_4_5_r2) | 1766 | if (!cpu_has_mips_4_5_r2_r6) |
| 1767 | return SIGILL; | 1767 | return SIGILL; |
| 1768 | 1768 | ||
| 1769 | handler.u = fpemu_dp_rsqrt; | 1769 | handler.u = fpemu_dp_rsqrt; |
| 1770 | goto dcopuop; | 1770 | goto dcopuop; |
| 1771 | case frecip_op: | 1771 | case frecip_op: |
| 1772 | if (!cpu_has_mips_4_5_r2) | 1772 | if (!cpu_has_mips_4_5_r2_r6) |
| 1773 | return SIGILL; | 1773 | return SIGILL; |
| 1774 | 1774 | ||
| 1775 | handler.u = fpemu_dp_recip; | 1775 | handler.u = fpemu_dp_recip; |
