From: Mateja Marjanovic <mateja.marjano...@rt-rk.com>

The copy_u instruction doesn't support doublewords, and supports
words only if the CPU is MIPS64 [1] (page 138), for MIPS32 it
supports only byte and halfword [2] (page 138).

[1] MIPS Architecture for Programmers
    Volume IV-j: The MIPS64 SIMD
    Architecture Module
[2] MIPS Architecture for Programmers
    Volume IV-j: The MIPS32 SIMD
    Architecture Module

Signed-off-by: Mateja Marjanovic <mateja.marjano...@rt-rk.com>
---
 target/mips/msa_helper.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/target/mips/msa_helper.c b/target/mips/msa_helper.c
index ac5d41e..f368f79 100644
--- a/target/mips/msa_helper.c
+++ b/target/mips/msa_helper.c
@@ -1482,13 +1482,10 @@ void helper_msa_copy_u_df(CPUMIPSState *env, uint32_t 
df, uint32_t rd,
     case DF_HALF:
         env->active_tc.gpr[rd] = (uint16_t)env->active_fpu.fpr[ws].wr.h[n];
         break;
+#ifdef TARGET_MIPS64
     case DF_WORD:
         env->active_tc.gpr[rd] = (uint32_t)env->active_fpu.fpr[ws].wr.w[n];
         break;
-#ifdef TARGET_MIPS64
-    case DF_DOUBLE:
-        env->active_tc.gpr[rd] = (uint64_t)env->active_fpu.fpr[ws].wr.d[n];
-        break;
 #endif
     default:
         assert(0);
-- 
2.7.4


Reply via email to