ld/testsuite/
authorH.J. Lu <hjl.tools@gmail.com>
Sat, 3 Feb 2007 00:46:22 +0000 (00:46 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Sat, 3 Feb 2007 00:46:22 +0000 (00:46 +0000)
2076-02-02  H.J. Lu  <hongjiu.lu@intel.com>

* ld-i386/pcrel16.d: Updated.
* ld-x86-64/pcrel16.d: Likewise.

opcodes/

2076-02-02  H.J. Lu  <hongjiu.lu@intel.com>

* i386-dis.c (OP_J): Mask to 16bit only if there is a data16
prefix.

ld/testsuite/ChangeLog
ld/testsuite/ld-i386/pcrel16.d
ld/testsuite/ld-x86-64/pcrel16.d
opcodes/ChangeLog
opcodes/i386-dis.c

index 461e10ea23a1921196140ea9e3fe3511f8261a1c..9814ca30dc35067a7881306b1e35d0f3e3e72cca 100644 (file)
@@ -1,3 +1,8 @@
+2076-02-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-i386/pcrel16.d: Updated.
+       * ld-x86-64/pcrel16.d: Likewise.
+
 2007-02-01  Alan Modra  <amodra@bigpond.net.au>
 
        * ld-scripts/default-script.exp: Add "--local-store 0:0" to
index 3d45afeb42b4cf6d51d033bac346a5a37dedf3d0..3df490797a8b1df57f08b52e6e78116fe7fd6514 100644 (file)
@@ -12,4 +12,4 @@ Disassembly of section .text:
      420:      cd 42[  ]+int    \$0x42
      422:      ca 02 00[       ]+lret   \$0x2
        ...
-    f065:      e9 b8 13[       ]+jmp    420 <_start\+0x420>
+    f065:      e9 b8 13[       ]+jmp    10420 <__bss_start\+0x3b8>
index f593657271f216325a50d79f6eec92e3649aff0e..0ad5eef4df95594173102d2b17312472d1e0d3e6 100644 (file)
@@ -12,4 +12,4 @@ Disassembly of section .text:
      420:      cd 42[  ]+int    \$0x42
      422:      ca 02 00[       ]+lret   \$0x2
        ...
-    f065:      e9 b8 13[       ]+jmp    420 <_start\+0x420>
+    f065:      e9 b8 13[       ]+jmp    10420 <_start\+0x10420>
index 532e38f767d30862f25dc672c489c44abb839fdf..2321dfab3f2eb5d940f82834a6c4d859ae57ae32 100644 (file)
@@ -1,3 +1,8 @@
+2076-02-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * i386-dis.c (OP_J): Mask to 16bit only if there is a data16
+       prefix.
+
 2007-02-02  H.J. Lu  <hongjiu.lu@intel.com>
 
        * avr-dis.c (avr_operand): Correct PR number in comment.
index 58f630eac0de122479bd81c1e23a92e2c51a35b0..aa206176d68c88cee6c92e4304303f3d3f61e2f1 100644 (file)
@@ -4916,10 +4916,13 @@ OP_J (int bytemode, int sizeflag)
       else
        {
          disp = get16 ();
+         if ((disp & 0x8000) != 0)
+           disp -= 0x10000;
          /* For some reason, a data16 prefix on a jump instruction
             means that the pc is masked to 16 bits after the
             displacement is added!  */
-         mask = 0xffff;
+         if ((prefixes & PREFIX_DATA))
+           mask = 0xffff;
        }
       used_prefixes |= (prefixes & PREFIX_DATA);
       break;