sim: mips: call Unpredictable instead of setting bogus values [PR sim/29276]

Message ID 20221104004104.20150-1-vapier@gentoo.org
State Committed
Commit 2756004fe78954754946b61d3f6338d8b72b8332
Headers
Series sim: mips: call Unpredictable instead of setting bogus values [PR sim/29276] |

Commit Message

Mike Frysinger Nov. 4, 2022, 12:41 a.m. UTC
  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 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Patch

diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen
index dfad42276155..0746a52d5ab1 100644
--- a/sim/mips/mips.igen
+++ b/sim/mips/mips.igen
@@ -1450,7 +1450,7 @@ 
   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]);
 }
 
@@ -5782,7 +5782,7 @@ 
   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);
 }