]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Make mips registers of type unsigned_word.
authorAndrew Cagney <cagney@redhat.com>
Mon, 20 Oct 1997 06:28:53 +0000 (06:28 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 20 Oct 1997 06:28:53 +0000 (06:28 +0000)
Ensure all references to MIPS registers use same type.

sim/mips/ChangeLog
sim/mips/interp.c
sim/mips/sim-main.h

index 062eb62bee04f0ca462cdcd7b98550fed6a5fb79..ea4da46d5ef6f3fc0736552e53c76a35b62b35f3 100644 (file)
@@ -1,3 +1,13 @@
+Mon Oct 20 13:31:20 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       * sim-main.h (SIGNEXTEND): Force type of result to unsigned_word.
+
+       * interp.c (sim_monitor): Make register pointers of type
+       unsigned_word*.
+
+       * sim-main.h: Make registers of type unsigned_word not
+       signed_word.
+
 Thu Oct 16 10:31:39 1997  Andrew Cagney  <cagney@b1.cygnus.com>
 
 start-sanitize-r5900
index 9066b0b0710173dfff334559c7edc0b3d03d6b66..613208b1053ef43deab903142e84fc6810a0c375 100644 (file)
@@ -1312,7 +1312,7 @@ sim_monitor(sd,reason)
            having to allocate and manage a temporary string buffer. */
         if (AddressTranslation(A0,isDATA,isLOAD,&paddr,&cca,isHOST,isREAL)) {
           char *s = (char *)((int)paddr);
-          ut_reg *ap = &A1; /* 1st argument */
+          signed_word *ap = &A1; /* 1st argument */
           /* TODO: Include check that we only use three arguments (A1, A2 and A3) */
           for (; *s;) {
             if (*s == '%') {
index 78227497404a461dcbec4d2a0c0d3aa59cfb17b7..4a07706da6020765795e45fa5139694851573013 100644 (file)
@@ -72,9 +72,10 @@ typedef unsigned64 uword64;
    assume the HI32bits of the operand are zero, so we must perform a
    mask to ensure we can use the simple subtraction to sign-extend. */
 #define SIGNEXTEND(e,b) \
+ ((unsigned_word) \
   (((e) & ((uword64) 1 << ((b) - 1))) \
    ? (((e) & (((uword64) 1 << (b)) - 1)) - ((uword64)1 << (b))) \
-   : ((e) & (((((uword64) 1 << ((b) - 1)) - 1) << 1) | 1)))
+   : ((e) & (((((uword64) 1 << ((b) - 1)) - 1) << 1) | 1))))
 
 /* Check if a value will fit within a halfword: */
 #define NOTHALFWORDVALUE(v) ((((((uword64)(v)>>16) == 0) && !((v) & ((unsigned)1 << 15))) || (((((uword64)(v)>>32) == 0xFFFFFFFF) && ((((uword64)(v)>>16) & 0xFFFF) == 0xFFFF)) && ((v) & ((unsigned)1 << 15)))) ? (1 == 0) : (1 == 1))
@@ -354,7 +355,7 @@ struct _sim_cpu {
    vector of registers. The internal simulator engine then uses
    manifests to access the correct slot. */
 
-  signed_word registers[LAST_EMBED_REGNUM + 1];
+  unsigned_word registers[LAST_EMBED_REGNUM + 1];
   int register_widths[NUM_REGS];
 #define REGISTERS       ((STATE_CPU (sd,0))->registers)