* simops.c (OP_500): Mask off low bit in displacement
authorJeff Law <law@redhat.com>
Thu, 24 Oct 1996 21:19:22 +0000 (21:19 +0000)
committerJeff Law <law@redhat.com>
Thu, 24 Oct 1996 21:19:22 +0000 (21:19 +0000)
        for sld.w.
        (OP_501): Similarly.
More bugs exposed by tda testing.

sim/v850/ChangeLog
sim/v850/simops.c

index 1325b2aefc8c31b11edc1fa56def75aad118c0f5..307d316c2b799cf96b5f87fbd2de6347f454aa56 100644 (file)
@@ -1,5 +1,9 @@
 Thu Oct 24 12:26:35 1996  Jeffrey A Law  (law@cygnus.com)
 
+       * simops.c (OP_500): Mask off low bit in displacement
+       for sld.w.
+       (OP_501): Similarly.
+
        * simops.c (OP_500): Fix displacement handling for sld.w.
        (OP_501): Similarly for sst.w.
 
index 77102328f1d042a8dd1bb0439eb4312282c80f42..8993af8cc6c31d25941cfa08217027454d4068a6 100644 (file)
@@ -455,7 +455,7 @@ OP_500 ()
 
   trace_input ("sld.w", OP_LOAD16, 4);
   temp = OP[1];
-  temp &= 0x7f;
+  temp &= 0x7e;
   op2 = temp << 1;
   result = load_mem (State.regs[30] + op2, 4);
   State.regs[OP[0]] = result;
@@ -504,7 +504,7 @@ OP_501 ()
   trace_input ("sst.w", OP_STORE16, 4);
   op0 = State.regs[OP[0]];
   temp = OP[1];
-  temp &= 0x7f;
+  temp &= 0x7e;
   op1 = temp << 1;
   store_mem (State.regs[30] + op1, 4, op0);
   trace_output (OP_STORE16);