summaryrefslogtreecommitdiff
path: root/cpu/m32r.opc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2005-10-26 07:49:05 +0000
committerAlan Modra <amodra@gmail.com>2005-10-26 07:49:05 +0000
commite277c00b2d473ff29a3f88204e80839d5b08c5df (patch)
treeabd5e0c880bc06479e029d474ac4368255443cd4 /cpu/m32r.opc
parentd53e85d8ff6a5f6c1fd0be97b561ef5ac8efa309 (diff)
* m32r.opc (parse_hi16): Do not assume a 32-bit host word size.
Diffstat (limited to 'cpu/m32r.opc')
-rw-r--r--cpu/m32r.opc8
1 files changed, 6 insertions, 2 deletions
diff --git a/cpu/m32r.opc b/cpu/m32r.opc
index f2351b106a..ab69d078c8 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;