sim: mips: call Unpredictable instead of setting bogus values [PR sim/29276]
authorMike Frysinger <vapier@gentoo.org>
Fri, 4 Nov 2022 00:38:20 +0000 (07:38 +0700)
committerMike Frysinger <vapier@gentoo.org>
Tue, 8 Nov 2022 07:55:50 +0000 (14:55 +0700)
The intention of this code seems to be to indicate that this insn
should not be used and produces undefined behavior, so instead of
setting registers to bogus values, call Unpredictable.  This fixes
build warnings due to 32-bit/64-bit type conversions, and outputs
a log message for users at runtime instead of silent corruption.

Bug: https://sourceware.org/PR29276

sim/mips/mips.igen

index dfad422761558b2d11d03ef0368325200ae9615e..0746a52d5ab19b92c516ba61cb538407e2daa3c6 100644 (file)
   else if ((fs & 0x1) == 0)
     GPR[rt] = SET64HI (FGR[fs+1]) | FGR[fs];
   else
-    GPR[rt] = SET64HI (0xDEADC0DE) | 0xBAD0BAD0;
+    Unpredictable ();
   TRACE_ALU_RESULT (GPR[rt]);
 }
 
   else if ((FS & 0x1) == 0)
     v = SET64HI (FGR[FS+1]) | FGR[FS];
   else
-    v = SET64HI (0xDEADC0DE) | 0xBAD0BAD0;
+    Unpredictable ();
   PENDING_FILL (RT, v);
   TRACE_ALU_RESULT (v);
 }