projects
/
external
/
binutils.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
99f5fc1
)
Fixes for the encoding and decoding of the PDP11's SOB instruction
author
Nick Clifton
<nickc@redhat.com>
Fri, 1 Oct 2004 11:19:38 +0000
(11:19 +0000)
committer
Nick Clifton
<nickc@redhat.com>
Fri, 1 Oct 2004 11:19:38 +0000
(11:19 +0000)
gas/ChangeLog
patch
|
blob
|
history
gas/config/tc-pdp11.c
patch
|
blob
|
history
gas/testsuite/ChangeLog
patch
|
blob
|
history
gas/testsuite/gas/pdp11/opcode.d
patch
|
blob
|
history
opcodes/ChangeLog
patch
|
blob
|
history
opcodes/pdp11-dis.c
patch
|
blob
|
history
diff --git
a/gas/ChangeLog
b/gas/ChangeLog
index
3efc290
..
c328820
100644
(file)
--- 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.
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
(file)
--- a/
gas/config/tc-pdp11.c
+++ b/
gas/config/tc-pdp11.c
@@
-1,5
+1,5
@@
/* tc-pdp11.c - pdp11-specific -
/* 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.
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;
case BFD_RELOC_PDP11_DISP_6_PCREL:
mask = 0x003f;
shift = 1;
+ val = -val;
break;
default:
BAD_CASE (fixP->fx_r_type);
break;
default:
BAD_CASE (fixP->fx_r_type);
diff --git
a/gas/testsuite/ChangeLog
b/gas/testsuite/ChangeLog
index
e7cd66c
..
623e629
100644
(file)
--- 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.
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
(file)
--- 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
108: 7c7f [ ]*cvtlpi
10a: 7d80 [ ]*med
10c: 7dea [ ]*xfc 52
- 10e: 7e
3e
[ ]*sob r0, 10c <start2\+0x106>
+ 10e: 7e
02
[ ]*sob r0, 10c <start2\+0x106>
110: 80fd [ ]*bpl 10c <start2\+0x106>
112: 81fc [ ]*bmi 10c <start2\+0x106>
114: 82fb [ ]*bhi 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
(file)
--- 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.
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
(file)
--- 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;
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);
FPRINTF (F, OP.name);
FPRINTF (F, AFTER_INSTRUCTION);
print_reg (src, info);