diff options
author | Nick Clifton <nickc@redhat.com> | 2004-10-01 11:19:38 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2004-10-01 11:19:38 +0000 |
commit | 14127cc4f2b98a818bef55c977eb3ea11b0ba5ce (patch) | |
tree | 34363f9efc5cf035e143b555d9e8d626803f84d4 | |
parent | 99f5fc1b7586022516204077e4a2065d5a689213 (diff) | |
download | binutils-14127cc4f2b98a818bef55c977eb3ea11b0ba5ce.zip binutils-14127cc4f2b98a818bef55c977eb3ea11b0ba5ce.tar.gz binutils-14127cc4f2b98a818bef55c977eb3ea11b0ba5ce.tar.bz2 |
Fixes for the encoding and decoding of the PDP11's SOB instruction
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-pdp11.c | 3 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/pdp11/opcode.d | 2 | ||||
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/pdp11-dis.c | 3 |
6 files changed, 19 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 3efc290..c328820 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2004-10-01 Bill Farmer <Bill@the-farmers.freeserve.co.uk> + + * config/tc-pdp11.c (md_apply_fix3): Change to sign of the SOB + instruction's offset. + 2004-10-01 Adam Nemet <anemet@lnxw.com> * (TARGET_FORMAT): Remove LynxOS COFF definition. diff --git a/gas/config/tc-pdp11.c b/gas/config/tc-pdp11.c index f34adf6..4993fdd 100644 --- a/gas/config/tc-pdp11.c +++ b/gas/config/tc-pdp11.c @@ -1,5 +1,5 @@ /* tc-pdp11.c - pdp11-specific - - Copyright 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002, 2004 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -199,6 +199,7 @@ md_apply_fix3 (fixP, valP, seg) case BFD_RELOC_PDP11_DISP_6_PCREL: mask = 0x003f; shift = 1; + val = -val; break; default: BAD_CASE (fixP->fx_r_type); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index e7cd66c..623e629 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-10-01 Bill Farmer <Bill@the-farmers.freeserve.co.uk> + + * gas/pdp11/opcode.d: Fix sob opcode value. + 2004-09-30 Paul Brook <paul@codesourcery.com> * gas/arm/arch6zk.d: New file. diff --git a/gas/testsuite/gas/pdp11/opcode.d b/gas/testsuite/gas/pdp11/opcode.d index 2e6a981..4b81857 100644 --- a/gas/testsuite/gas/pdp11/opcode.d +++ b/gas/testsuite/gas/pdp11/opcode.d @@ -134,7 +134,7 @@ Disassembly of section .text: 108: 7c7f [ ]*cvtlpi 10a: 7d80 [ ]*med 10c: 7dea [ ]*xfc 52 - 10e: 7e3e [ ]*sob r0, 10c <start2\+0x106> + 10e: 7e02 [ ]*sob r0, 10c <start2\+0x106> 110: 80fd [ ]*bpl 10c <start2\+0x106> 112: 81fc [ ]*bmi 10c <start2\+0x106> 114: 82fb [ ]*bhi 10c <start2\+0x106> diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index cf49121..2dde353 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2004-10-01 Bill Farmer <Bill@the-farmers.freeserve.co.uk> + + * pdp11-dis.c (print_insn_pdp11): Subtract the SOB's displacement + rather than add it. + 2004-09-30 Paul Brook <paul@codesourcery.com> * arm-dis.c (print_insn_arm): Handle 'e' for SMI instruction. diff --git a/opcodes/pdp11-dis.c b/opcodes/pdp11-dis.c index 4f5bf84..1756e53 100644 --- a/opcodes/pdp11-dis.c +++ b/opcodes/pdp11-dis.c @@ -342,7 +342,8 @@ print_insn_pdp11 (memaddr, info) case PDP11_OPCODE_REG_DISPL: { int displ = (opcode & 0x3f) << 10; - bfd_vma address = memaddr + (sign_extend (displ) >> 9); + bfd_vma address = memaddr - (displ >> 9); + FPRINTF (F, OP.name); FPRINTF (F, AFTER_INSTRUCTION); print_reg (src, info); |