diff options
author | Alan Modra <amodra@gmail.com> | 2005-10-26 07:49:05 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-10-26 07:49:05 +0000 |
commit | e277c00b2d473ff29a3f88204e80839d5b08c5df (patch) | |
tree | abd5e0c880bc06479e029d474ac4368255443cd4 /cpu/m32r.opc | |
parent | d53e85d8ff6a5f6c1fd0be97b561ef5ac8efa309 (diff) | |
download | binutils-e277c00b2d473ff29a3f88204e80839d5b08c5df.zip binutils-e277c00b2d473ff29a3f88204e80839d5b08c5df.tar.gz binutils-e277c00b2d473ff29a3f88204e80839d5b08c5df.tar.bz2 |
* m32r.opc (parse_hi16): Do not assume a 32-bit host word size.
Diffstat (limited to 'cpu/m32r.opc')
-rw-r--r-- | cpu/m32r.opc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/cpu/m32r.opc b/cpu/m32r.opc index f2351b1..ab69d07 100644 --- a/cpu/m32r.opc +++ b/cpu/m32r.opc @@ -127,7 +127,10 @@ parse_hi16 (CGEN_CPU_DESC cd, ++*strp; if (errmsg == NULL && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) - value >>= 16; + { + value >>= 16; + value &= 0xffff; + } *valuep = value; return errmsg; } @@ -142,8 +145,9 @@ parse_hi16 (CGEN_CPU_DESC cd, if (errmsg == NULL && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) { - value = value + (value & 0x8000 ? 0x10000 : 0); + value += 0x8000; value >>= 16; + value &= 0xffff; } *valuep = value; return errmsg; |