diff options
author | Michael Snyder <msnyder@vmware.com> | 2003-07-18 00:08:23 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 2003-07-18 00:08:23 +0000 |
commit | 0f42aa719da7ba1e3fa6d093f3ea8cda2c25b3f9 (patch) | |
tree | 5875ebd4e61db325781af24676e7dd540688e5b7 /sim/h8300/compile.c | |
parent | 61fdd1259b031a9bef3cd0295a3149ad6bb6d1fd (diff) | |
download | gdb-0f42aa719da7ba1e3fa6d093f3ea8cda2c25b3f9.zip gdb-0f42aa719da7ba1e3fa6d093f3ea8cda2c25b3f9.tar.gz gdb-0f42aa719da7ba1e3fa6d093f3ea8cda2c25b3f9.tar.bz2 |
2003-07-17 Michael Snyder <msnyder@redhat.com>
* compile.c (decode): IMM16 is always zero-extended.
Diffstat (limited to 'sim/h8300/compile.c')
-rw-r--r-- | sim/h8300/compile.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c index 7635655..3819fdd 100644 --- a/sim/h8300/compile.c +++ b/sim/h8300/compile.c @@ -818,7 +818,9 @@ decode (SIM_DESC sd, int addr, unsigned char *data, decoded_inst *dst) (looking_for & SIZE) == L_16U) { cst[opnum] = (data[len / 2] << 8) + data[len / 2 + 1]; - if ((looking_for & SIZE) != L_16U) + /* Immediates are always unsigned. */ + if ((looking_for & SIZE) != L_16U && + (looking_for & MODE) != IMM) cst[opnum] = (short) cst[opnum]; /* Sign extend. */ } else if (looking_for & ABSJMP) |