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

Michael Frysinger vapier@sourceware.org
Tue Nov 8 07:56:52 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2756004fe78954754946b61d3f6338d8b72b8332

commit 2756004fe78954754946b61d3f6338d8b72b8332
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Fri Nov 4 07:38:20 2022 +0700

    sim: mips: call Unpredictable instead of setting bogus values [PR sim/29276]
    
    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

Diff:
---
 sim/mips/mips.igen | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen
index dfad4227615..0746a52d5ab 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);
 }


More information about the Gdb-cvs mailing list