* simops.c (trace_input): Remove all references to SEXT7.
(OP_300, OP_400, OP_500, OP_380, OP_480, OP_501): Displacement is zero extended for sst/sld instructions. * v850_sim.h (SEX7): Delete. It's no longer needed (and it was incorrect anyway). So we properly simulate sst/sld instructions.
This commit is contained in:
parent
968519095a
commit
0a89af6efd
2 changed files with 18 additions and 10 deletions
|
@ -1,3 +1,11 @@
|
|||
Thu Oct 24 12:26:35 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* simops.c (trace_input): Remove all references to SEXT7.
|
||||
(OP_300, OP_400, OP_500, OP_380, OP_480, OP_501): Displacement
|
||||
is zero extended for sst/sld instructions.
|
||||
* v850_sim.h (SEX7): Delete. It's no longer needed (and it
|
||||
was incorrect anyway).
|
||||
|
||||
Thu Oct 24 10:33:33 1996 Stu Grossman (grossman@critters.cygnus.com)
|
||||
|
||||
* Makefile.in: Get rid of srcroot. Set all INSTALL macros via
|
||||
|
|
|
@ -159,11 +159,11 @@ trace_input (name, type, size)
|
|||
break;
|
||||
|
||||
case OP_LOAD16:
|
||||
sprintf (buf, "%d[r30],r%d", SEXT7 (OP[1]) * size, OP[0]);
|
||||
sprintf (buf, "%d[r30],r%d", OP[1] * size, OP[0]);
|
||||
break;
|
||||
|
||||
case OP_STORE16:
|
||||
sprintf (buf, "r%d,%d[r30]", OP[0], SEXT7 (OP[1]) * size);
|
||||
sprintf (buf, "r%d,%d[r30]", OP[0], OP[1] * size);
|
||||
break;
|
||||
|
||||
case OP_LOAD32:
|
||||
|
@ -274,14 +274,14 @@ trace_input (name, type, size)
|
|||
break;
|
||||
|
||||
case OP_LOAD16:
|
||||
values[0] = SEXT7 (OP[1]) * size;
|
||||
values[0] = OP[1] * size;
|
||||
values[1] = State.regs[30];
|
||||
num_values = 2;
|
||||
break;
|
||||
|
||||
case OP_STORE16:
|
||||
values[0] = State.regs[OP[0]];
|
||||
values[1] = SEXT7 (OP[1]) * size;
|
||||
values[1] = OP[1] * size;
|
||||
values[2] = State.regs[30];
|
||||
num_values = 3;
|
||||
break;
|
||||
|
@ -423,7 +423,7 @@ OP_300 ()
|
|||
|
||||
trace_input ("sld.b", OP_LOAD16, 1);
|
||||
temp = OP[1];
|
||||
temp = SEXT7 (temp);
|
||||
temp &= 0x7f;
|
||||
op2 = temp;
|
||||
result = load_mem (State.regs[30] + op2, 1);
|
||||
State.regs[OP[0]] = SEXT8 (result);
|
||||
|
@ -439,7 +439,7 @@ OP_400 ()
|
|||
|
||||
trace_input ("sld.h", OP_LOAD16, 2);
|
||||
temp = OP[1];
|
||||
temp = SEXT7 (temp);
|
||||
temp &= 0x7f;
|
||||
op2 = temp << 1;
|
||||
result = load_mem (State.regs[30] + op2, 2);
|
||||
State.regs[OP[0]] = SEXT16 (result);
|
||||
|
@ -455,7 +455,7 @@ OP_500 ()
|
|||
|
||||
trace_input ("sld.w", OP_LOAD16, 4);
|
||||
temp = OP[1];
|
||||
temp = SEXT7 (temp);
|
||||
temp &= 0x7f;
|
||||
op2 = temp << 2;
|
||||
result = load_mem (State.regs[30] + op2, 4);
|
||||
State.regs[OP[0]] = result;
|
||||
|
@ -472,7 +472,7 @@ OP_380 ()
|
|||
trace_input ("sst.b", OP_STORE16, 1);
|
||||
op0 = State.regs[OP[0]];
|
||||
temp = OP[1];
|
||||
temp = SEXT7 (temp);
|
||||
temp &= 0x7f;
|
||||
op1 = temp;
|
||||
store_mem (State.regs[30] + op1, 1, op0);
|
||||
trace_output (OP_STORE16);
|
||||
|
@ -488,7 +488,7 @@ OP_480 ()
|
|||
trace_input ("sst.h", OP_STORE16, 2);
|
||||
op0 = State.regs[OP[0]];
|
||||
temp = OP[1];
|
||||
temp = SEXT7 (temp);
|
||||
temp &= 0x7f;
|
||||
op1 = temp << 1;
|
||||
store_mem (State.regs[30] + op1, 2, op0);
|
||||
trace_output (OP_STORE16);
|
||||
|
@ -504,7 +504,7 @@ OP_501 ()
|
|||
trace_input ("sst.w", OP_STORE16, 4);
|
||||
op0 = State.regs[OP[0]];
|
||||
temp = OP[1];
|
||||
temp = SEXT7 (temp);
|
||||
temp &= 0x7f;
|
||||
op1 = temp << 2;
|
||||
store_mem (State.regs[30] + op1, 4, op0);
|
||||
trace_output (OP_STORE16);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue