mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-29 02:20:51 +00:00
* compile.c (init_pointers): Abort if wreg never gets initialized.
(sim_resume): Fix the handling of exts.w and extu.w.
This commit is contained in:
@@ -753,6 +753,7 @@ init_pointers (void)
|
||||
}
|
||||
p++;
|
||||
}
|
||||
wreg[i] = wreg[i + 8] = 0;
|
||||
while (q < u)
|
||||
{
|
||||
if (*q == 0x2233)
|
||||
@@ -765,6 +766,8 @@ init_pointers (void)
|
||||
}
|
||||
q++;
|
||||
}
|
||||
if (wreg[i] == 0 || wreg[i + 8] == 0)
|
||||
abort ();
|
||||
cpu.regs[i] = 0;
|
||||
lreg[i] = &cpu.regs[i];
|
||||
}
|
||||
@@ -1606,7 +1609,7 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
|
||||
goto next;
|
||||
}
|
||||
case O (O_EXTS, SW):
|
||||
rd = GET_B_REG (code->src.reg + 8) & 0xff; /* Yes, src, not dst. */
|
||||
rd = GET_W_REG (code->src.reg) & 0xff; /* Yes, src, not dst. */
|
||||
ea = rd & 0x80 ? -256 : 0;
|
||||
res = rd + ea;
|
||||
goto log16;
|
||||
@@ -1616,7 +1619,7 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
|
||||
res = rd + ea;
|
||||
goto log32;
|
||||
case O (O_EXTU, SW):
|
||||
rd = GET_B_REG (code->src.reg + 8) & 0xff;
|
||||
rd = GET_W_REG (code->src.reg) & 0xff;
|
||||
ea = 0;
|
||||
res = rd + ea;
|
||||
goto log16;
|
||||
|
||||
Reference in New Issue
Block a user