diff options
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/sparc-dis.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 21fb7ee..a6a07e3 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2002-02-11 Alexandre Oliva <aoliva@redhat.com> + + * sparc-dis.c (print_insn_sparc): Make sure 0xFFFFFFFF is not + sign-extended. + 2002-02-11 Alan Modra <amodra@bigpond.net.au> * Makefile.am: "make dep-am". diff --git a/opcodes/sparc-dis.c b/opcodes/sparc-dis.c index 3590507..4c59398 100644 --- a/opcodes/sparc-dis.c +++ b/opcodes/sparc-dis.c @@ -419,7 +419,7 @@ print_insn_sparc (memaddr, info) case 'h': (*info->fprintf_func) (stream, "%%hi(%#x)", - (0xFFFFFFFF + ((unsigned) 0xFFFFFFFF & ((int) X_IMM22 (insn) << 10))); break; @@ -716,7 +716,8 @@ print_insn_sparc (memaddr, info) { (*info->fprintf_func) (stream, "\t! "); info->target = - (0xFFFFFFFF & (int) X_IMM22 (prev_insn) << 10); + ((unsigned) 0xFFFFFFFF + & ((int) X_IMM22 (prev_insn) << 10)); if (imm_added_to_rs1) info->target += X_SIMM (insn, 13); else |