[lld] r306322 - Add trap instructions for ARM and MIPS.

Rui Ueyama via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 26 12:45:53 PDT 2017


Author: ruiu
Date: Mon Jun 26 12:45:53 2017
New Revision: 306322

URL: http://llvm.org/viewvc/llvm-project?rev=306322&view=rev
Log:
Add trap instructions for ARM and MIPS.

This patch fills holes in executable sections with 0xd4 (ARM) or
0xef (MIPS). These trap instructions were suggested by Theo de Raadt.

Modified:
    lld/trunk/ELF/Arch/ARM.cpp
    lld/trunk/ELF/Arch/Mips.cpp
    lld/trunk/ELF/Arch/X86.cpp
    lld/trunk/ELF/Arch/X86_64.cpp
    lld/trunk/test/ELF/arm-gnu-ifunc-plt.s
    lld/trunk/test/ELF/arm-thumb-branch.s
    lld/trunk/test/ELF/arm-thumb-plt-reloc.s
    lld/trunk/test/ELF/mips-got16-relocatable.s
    lld/trunk/test/ELF/mips-npic-call-pic-os.s
    lld/trunk/test/ELF/mips-npic-call-pic-script.s
    lld/trunk/test/ELF/mips-npic-call-pic.s

Modified: lld/trunk/ELF/Arch/ARM.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Arch/ARM.cpp?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/ELF/Arch/ARM.cpp (original)
+++ lld/trunk/ELF/Arch/ARM.cpp Mon Jun 26 12:45:53 2017
@@ -57,6 +57,7 @@ ARM::ARM() {
   GotPltEntrySize = 4;
   PltEntrySize = 16;
   PltHeaderSize = 20;
+  TrapInstr = 0xd4d4d4d4;
   // ARM uses Variant 1 TLS
   TcbSize = 8;
   NeedsThunks = true;

Modified: lld/trunk/ELF/Arch/Mips.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Arch/Mips.cpp?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/ELF/Arch/Mips.cpp (original)
+++ lld/trunk/ELF/Arch/Mips.cpp Mon Jun 26 12:45:53 2017
@@ -54,6 +54,7 @@ template <class ELFT> MIPS<ELFT>::MIPS()
   CopyRel = R_MIPS_COPY;
   PltRel = R_MIPS_JUMP_SLOT;
   NeedsThunks = true;
+  TrapInstr = 0xefefefef;
 
   if (ELFT::Is64Bits) {
     RelativeRel = (R_MIPS_64 << 8) | R_MIPS_REL32;

Modified: lld/trunk/ELF/Arch/X86.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Arch/X86.cpp?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/ELF/Arch/X86.cpp (original)
+++ lld/trunk/ELF/Arch/X86.cpp Mon Jun 26 12:45:53 2017
@@ -60,9 +60,7 @@ X86::X86() {
   PltEntrySize = 16;
   PltHeaderSize = 16;
   TlsGdRelaxSkip = 2;
-
-  // 0xCC is the "int3" (call debug exception handler) instruction.
-  TrapInstr = 0xcccccccc;
+  TrapInstr = 0xcccccccc; // 0xcc = INT3
 }
 
 RelExpr X86::getRelExpr(uint32_t Type, const SymbolBody &S,

Modified: lld/trunk/ELF/Arch/X86_64.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Arch/X86_64.cpp?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/ELF/Arch/X86_64.cpp (original)
+++ lld/trunk/ELF/Arch/X86_64.cpp Mon Jun 26 12:45:53 2017
@@ -65,13 +65,11 @@ template <class ELFT> X86_64<ELFT>::X86_
   PltEntrySize = 16;
   PltHeaderSize = 16;
   TlsGdRelaxSkip = 2;
+  TrapInstr = 0xcccccccc; // 0xcc = INT3
 
   // Align to the large page size (known as a superpage or huge page).
   // FreeBSD automatically promotes large, superpage-aligned allocations.
   DefaultImageBase = 0x200000;
-
-  // 0xCC is the "int3" (call debug exception handler) instruction.
-  TrapInstr = 0xcccccccc;
 }
 
 template <class ELFT>

Modified: lld/trunk/test/ELF/arm-gnu-ifunc-plt.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-gnu-ifunc-plt.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-gnu-ifunc-plt.s (original)
+++ lld/trunk/test/ELF/arm-gnu-ifunc-plt.s Mon Jun 26 12:45:53 2017
@@ -61,9 +61,9 @@
 // DISASM: $d:
 // DISASM-NEXT:    11050:       c0 0f 00 00     .word   0x00000fc0
 // Alignment to 16 byte boundary not strictly necessary on ARM, but harmless
-// DISASM-NEXT:    11054:       00 00 00 00     .word   0x00000000
-// DISASM-NEXT:    11058:       00 00 00 00     .word   0x00000000
-// DISASM-NEXT:    1105c:       00 00 00 00     .word   0x00000000
+// DISASM-NEXT:    11054:       d4 d4 d4 d4     .word   0xd4d4d4d4
+// DISASM-NEXT:    11058:       d4 d4 d4 d4     .word   0xd4d4d4d4
+// DISASM-NEXT:    1105c:       d4 d4 d4 d4     .word   0xd4d4d4d4
 // DISASM: $a:
 // DISASM-NEXT:    11060:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DISASM-NEXT:    11064:       0f c0 8c e0     add     r12, r12, pc

Modified: lld/trunk/test/ELF/arm-thumb-branch.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-thumb-branch.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-thumb-branch.s (original)
+++ lld/trunk/test/ELF/arm-thumb-branch.s Mon Jun 26 12:45:53 2017
@@ -54,7 +54,7 @@ callee_high:
 // CHECK-NEXT:   1001c:       ff f3 fd 97     b.w     #16777210
 // CHECK-NEXT:   10020:       3f f3 ff af     bgt.w   #1048574
 // CHECK-NEXT:   10024:       70 47   bx      lr
-// CHECK-NEXT:   10026:       00 00   movs    r0, r0
+// CHECK-NEXT:   10026:
 // CHECK-NEXT: Disassembly of section .callee2:
 // CHECK-NEXT: callee_high:
 // CHECK-NEXT:   10028:       70 47   bx      lr

Modified: lld/trunk/test/ELF/arm-thumb-plt-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-thumb-plt-reloc.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-thumb-plt-reloc.s (original)
+++ lld/trunk/test/ELF/arm-thumb-plt-reloc.s Mon Jun 26 12:45:53 2017
@@ -30,7 +30,7 @@ _start:
 // CHECK-NEXT:   11002: 70 47   bx      lr
 // CHECK: func3:
 // CHECK-NEXT:   11004: 70 47   bx      lr
-// CHECK-NEXT:   11006: 00 00   movs    r0, r0
+// CHECK-NEXT:   11006: d4 d4
 // CHECK: _start:
 // 11008 + 4 -12 = 0x11000 = func1
 // CHECK-NEXT:   11008: ff f7 fa ff     bl      #-12
@@ -49,7 +49,7 @@ _start:
 // DSOTHUMB-NEXT:    1002:       70 47   bx      lr
 // DSOTHUMB: func3:
 // DSOTHUMB-NEXT:    1004:       70 47   bx      lr
-// DSOTHUMB-NEXT:    1006:       00 00   movs    r0, r0
+// DSOTHUMB-NEXT:    1006:       d4 d4
 // DSOTHUMB: _start:
 // 0x1008 + 0x28 + 4 = 0x1034 = PLT func1
 // DSOTHUMB-NEXT:    1008:       00 f0 14 e8     blx     #40

Modified: lld/trunk/test/ELF/mips-got16-relocatable.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got16-relocatable.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got16-relocatable.s (original)
+++ lld/trunk/test/ELF/mips-got16-relocatable.s Mon Jun 26 12:45:53 2017
@@ -15,8 +15,8 @@
 # OBJ-NEXT:                         00000000:  R_MIPS_GOT16 .data
 # OBJ-NEXT:        4:       27 24 00 00     addiu   $4, $25, 0
 # OBJ-NEXT:                         00000004:  R_MIPS_LO16  .data
-# OBJ-NEXT:        8:       00 00 00 00     nop
-# OBJ-NEXT:        c:       00 00 00 00     nop
+# OBJ-NEXT:        8:       ef ef ef ef     <unknown>
+# OBJ-NEXT:        c:       ef ef ef ef     <unknown>
 # OBJ-NEXT:       10:       8f 99 00 00     lw      $25, 0($gp)
 # OBJ-NEXT:                         00000010:  R_MIPS_GOT16 .data
 # OBJ-NEXT:       14:       27 24 00 10     addiu   $4, $25, 16
@@ -26,8 +26,8 @@
 # SO-NEXT: .text:
 # SO-NEXT:    10000:       8f 99 80 18     lw      $25, -32744($gp)
 # SO-NEXT:    10004:       27 24 00 00     addiu   $4, $25, 0
-# SO-NEXT:    10008:       00 00 00 00     nop
-# SO-NEXT:    1000c:       00 00 00 00     nop
+# SO-NEXT:    10008:       ef ef ef ef     <unknown>
+# SO-NEXT:    1000c:       ef ef ef ef     <unknown>
 # SO-NEXT:    10010:       8f 99 80 18     lw      $25, -32744($gp)
 # SO-NEXT:    10014:       27 24 00 10     addiu   $4, $25, 16
 

Modified: lld/trunk/test/ELF/mips-npic-call-pic-os.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-npic-call-pic-os.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-npic-call-pic-os.s (original)
+++ lld/trunk/test/ELF/mips-npic-call-pic-os.s Mon Jun 26 12:45:53 2017
@@ -33,8 +33,8 @@
 # CHECK-NEXT:    2002c:       08 00 80 10     j       131136 <foo2>
 # CHECK-NEXT:    20030:       27 39 00 40     addiu   $25, $25, 64
 # CHECK-NEXT:    20034:       00 00 00 00     nop
-# CHECK-NEXT:    20038:       00 00 00 00     nop
-# CHECK-NEXT:    2003c:       00 00 00 00     nop
+# CHECK-NEXT:    20038:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2003c:       ef ef ef ef     <unknown>
 # CHECK: foo2:
 # CHECK-NEXT:    20040:       00 00 00 00     nop
 # CHECK: __LA25Thunk_fpic:
@@ -42,14 +42,14 @@
 # CHECK-NEXT:    20048:       08 00 80 18     j       131168 <fpic>
 # CHECK-NEXT:    2004c:       27 39 00 60     addiu   $25, $25, 96
 # CHECK-NEXT:    20050:       00 00 00 00     nop
-# CHECK-NEXT:    20054:       00 00 00 00     nop
-# CHECK-NEXT:    20058:       00 00 00 00     nop
-# CHECK-NEXT:    2005c:       00 00 00 00     nop
+# CHECK-NEXT:    20054:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20058:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2005c:       ef ef ef ef     <unknown>
 # CHECK: fpic:
 # CHECK-NEXT:    20060:       00 00 00 00     nop
-# CHECK-NEXT:    20064:       00 00 00 00     nop
-# CHECK-NEXT:    20068:       00 00 00 00     nop
-# CHECK-NEXT:    2006c:       00 00 00 00     nop
+# CHECK-NEXT:    20064:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20068:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2006c:       ef ef ef ef     <unknown>
 # CHECK: fnpic:
 # CHECK-NEXT:    20070:       00 00 00 00     nop
 # CHECK-NEXT: Disassembly of section differentos:
@@ -93,13 +93,13 @@
 # REVERSE-NEXT:    2002c:       08 00 80 10     j       131136 <foo2>
 # REVERSE-NEXT:    20030:       27 39 00 40     addiu   $25, $25, 64
 # REVERSE-NEXT:    20034:       00 00 00 00     nop
-# REVERSE-NEXT:    20038:       00 00 00 00     nop
-# REVERSE-NEXT:    2003c:       00 00 00 00     nop
+# REVERSE-NEXT:    20038:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    2003c:       ef ef ef ef     <unknown>
 # REVERSE: foo2:
 # REVERSE-NEXT:    20040:       00 00 00 00     nop
-# REVERSE-NEXT:    20044:       00 00 00 00     nop
-# REVERSE-NEXT:    20048:       00 00 00 00     nop
-# REVERSE-NEXT:    2004c:       00 00 00 00     nop
+# REVERSE-NEXT:    20044:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    20048:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    2004c:       ef ef ef ef     <unknown>
 # REVERSE: __LA25Thunk_fpic:
 # REVERSE-NEXT:    20050:       3c 19 00 02     lui     $25, 2
 # REVERSE-NEXT:    20054:       08 00 80 18     j       131168 <fpic>
@@ -107,9 +107,9 @@
 # REVERSE-NEXT:    2005c:       00 00 00 00     nop
 # REVERSE: fpic:
 # REVERSE-NEXT:    20060:       00 00 00 00     nop
-# REVERSE-NEXT:    20064:       00 00 00 00     nop
-# REVERSE-NEXT:    20068:       00 00 00 00     nop
-# REVERSE-NEXT:    2006c:       00 00 00 00     nop
+# REVERSE-NEXT:    20064:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    20068:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    2006c:       ef ef ef ef     <unknown>
 # REVERSE: fnpic:
 # REVERSE-NEXT:    20070:       00 00 00 00     nop
 # REVERSE-NEXT: Disassembly of section differentos:

Modified: lld/trunk/test/ELF/mips-npic-call-pic-script.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-npic-call-pic-script.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-npic-call-pic-script.s (original)
+++ lld/trunk/test/ELF/mips-npic-call-pic-script.s Mon Jun 26 12:45:53 2017
@@ -33,77 +33,77 @@
 # CHECK-NEXT:    2002c:       08 00 80 10     j       131136 <foo2>
 # CHECK-NEXT:    20030:       27 39 00 40     addiu   $25, $25, 64
 # CHECK-NEXT:    20034:       00 00 00 00     nop
-# CHECK-NEXT:    20038:       00 00 00 00     nop
-# CHECK-NEXT:    2003c:       00 00 00 00     nop
+# CHECK-NEXT:    20038:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2003c:       ef ef ef ef     <unknown>
 # CHECK: foo2:
 # CHECK-NEXT:    20040:       00 00 00 00     nop
-# CHECK-NEXT:    20044:       00 00 00 00     nop
-# CHECK-NEXT:    20048:       00 00 00 00     nop
-# CHECK-NEXT:    2004c:       00 00 00 00     nop
-# CHECK-NEXT:    20050:       00 00 00 00     nop
-# CHECK-NEXT:    20054:       00 00 00 00     nop
-# CHECK-NEXT:    20058:       00 00 00 00     nop
-# CHECK-NEXT:    2005c:       00 00 00 00     nop
-# CHECK-NEXT:    20060:       00 00 00 00     nop
-# CHECK-NEXT:    20064:       00 00 00 00     nop
-# CHECK-NEXT:    20068:       00 00 00 00     nop
-# CHECK-NEXT:    2006c:       00 00 00 00     nop
-# CHECK-NEXT:    20070:       00 00 00 00     nop
-# CHECK-NEXT:    20074:       00 00 00 00     nop
-# CHECK-NEXT:    20078:       00 00 00 00     nop
-# CHECK-NEXT:    2007c:       00 00 00 00     nop
-# CHECK-NEXT:    20080:       00 00 00 00     nop
-# CHECK-NEXT:    20084:       00 00 00 00     nop
-# CHECK-NEXT:    20088:       00 00 00 00     nop
-# CHECK-NEXT:    2008c:       00 00 00 00     nop
-# CHECK-NEXT:    20090:       00 00 00 00     nop
-# CHECK-NEXT:    20094:       00 00 00 00     nop
-# CHECK-NEXT:    20098:       00 00 00 00     nop
-# CHECK-NEXT:    2009c:       00 00 00 00     nop
-# CHECK-NEXT:    200a0:       00 00 00 00     nop
-# CHECK-NEXT:    200a4:       00 00 00 00     nop
-# CHECK-NEXT:    200a8:       00 00 00 00     nop
-# CHECK-NEXT:    200ac:       00 00 00 00     nop
-# CHECK-NEXT:    200b0:       00 00 00 00     nop
-# CHECK-NEXT:    200b4:       00 00 00 00     nop
-# CHECK-NEXT:    200b8:       00 00 00 00     nop
-# CHECK-NEXT:    200bc:       00 00 00 00     nop
-# CHECK-NEXT:    200c0:       00 00 00 00     nop
-# CHECK-NEXT:    200c4:       00 00 00 00     nop
-# CHECK-NEXT:    200c8:       00 00 00 00     nop
-# CHECK-NEXT:    200cc:       00 00 00 00     nop
-# CHECK-NEXT:    200d0:       00 00 00 00     nop
-# CHECK-NEXT:    200d4:       00 00 00 00     nop
-# CHECK-NEXT:    200d8:       00 00 00 00     nop
-# CHECK-NEXT:    200dc:       00 00 00 00     nop
-# CHECK-NEXT:    200e0:       00 00 00 00     nop
-# CHECK-NEXT:    200e4:       00 00 00 00     nop
-# CHECK-NEXT:    200e8:       00 00 00 00     nop
-# CHECK-NEXT:    200ec:       00 00 00 00     nop
-# CHECK-NEXT:    200f0:       00 00 00 00     nop
-# CHECK-NEXT:    200f4:       00 00 00 00     nop
-# CHECK-NEXT:    200f8:       00 00 00 00     nop
-# CHECK-NEXT:    200fc:       00 00 00 00     nop
-# CHECK-NEXT:    20100:       00 00 00 00     nop
-# CHECK-NEXT:    20104:       00 00 00 00     nop
-# CHECK-NEXT:    20108:       00 00 00 00     nop
-# CHECK-NEXT:    2010c:       00 00 00 00     nop
-# CHECK-NEXT:    20110:       00 00 00 00     nop
-# CHECK-NEXT:    20114:       00 00 00 00     nop
-# CHECK-NEXT:    20118:       00 00 00 00     nop
-# CHECK-NEXT:    2011c:       00 00 00 00     nop
-# CHECK-NEXT:    20120:       00 00 00 00     nop
-# CHECK-NEXT:    20124:       00 00 00 00     nop
-# CHECK-NEXT:    20128:       00 00 00 00     nop
-# CHECK-NEXT:    2012c:       00 00 00 00     nop
-# CHECK-NEXT:    20130:       00 00 00 00     nop
-# CHECK-NEXT:    20134:       00 00 00 00     nop
-# CHECK-NEXT:    20138:       00 00 00 00     nop
-# CHECK-NEXT:    2013c:       00 00 00 00     nop
-# CHECK-NEXT:    20140:       00 00 00 00     nop
-# CHECK-NEXT:    20144:       00 00 00 00     nop
-# CHECK-NEXT:    20148:       00 00 00 00     nop
-# CHECK-NEXT:    2014c:       00 00 00 00     nop
+# CHECK-NEXT:    20044:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20048:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2004c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20050:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20054:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20058:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2005c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20060:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20064:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20068:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2006c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20070:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20074:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20078:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2007c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20080:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20084:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20088:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2008c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20090:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20094:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20098:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2009c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200a0:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200a4:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200a8:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200ac:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200b0:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200b4:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200b8:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200bc:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200c0:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200c4:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200c8:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200cc:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200d0:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200d4:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200d8:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200dc:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200e0:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200e4:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200e8:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200ec:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200f0:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200f4:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200f8:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    200fc:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20100:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20104:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20108:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2010c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20110:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20114:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20118:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2011c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20120:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20124:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20128:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2012c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20130:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20134:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20138:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2013c:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20140:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20144:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20148:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2014c:       ef ef ef ef     <unknown>
 # CHECK: __start:
 # CHECK-NEXT:    20150:       0c 00 80 00     jal     131072 <__LA25Thunk_foo1a>
 # CHECK-NEXT:    20154:       00 00 00 00     nop
@@ -124,9 +124,9 @@
 # CHECK-NEXT:    2018c:       00 00 00 00     nop
 # CHECK: fpic:
 # CHECK-NEXT:    20190:       00 00 00 00     nop
-# CHECK-NEXT:    20194:       00 00 00 00     nop
-# CHECK-NEXT:    20198:       00 00 00 00     nop
-# CHECK-NEXT:    2019c:       00 00 00 00     nop
+# CHECK-NEXT:    20194:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20198:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2019c:       ef ef ef ef     <unknown>
 # CHECK: fnpic:
 # CHECK-NEXT:    201a0:       00 00 00 00     nop
 
@@ -166,9 +166,9 @@ __start:
 # ORPH1-NEXT:    2003c:       00 00 00 00     nop
 # ORPH1: fpic:
 # ORPH1-NEXT:    20040:       00 00 00 00     nop
-# ORPH1-NEXT:    20044:       00 00 00 00     nop
-# ORPH1-NEXT:    20048:       00 00 00 00     nop
-# ORPH1-NEXT:    2004c:       00 00 00 00     nop
+# ORPH1-NEXT:    20044:       ef ef ef ef     <unknown>
+# ORPH1-NEXT:    20048:       ef ef ef ef     <unknown>
+# ORPH1-NEXT:    2004c:       ef ef ef ef     <unknown>
 # ORPH1: fnpic:
 # ORPH1-NEXT:    20050:       00 00 00 00     nop
 # ORPH1: __LA25Thunk_foo1a:
@@ -181,9 +181,9 @@ __start:
 # ORPH1-NEXT:    20068:       08 00 80 21     j       131204 <foo1b>
 # ORPH1-NEXT:    2006c:       27 39 00 84     addiu   $25, $25, 132
 # ORPH1-NEXT:    20070:       00 00 00 00     nop
-# ORPH1-NEXT:    20074:       00 00 00 00     nop
-# ORPH1-NEXT:    20078:       00 00 00 00     nop
-# ORPH1-NEXT:    2007c:       00 00 00 00     nop
+# ORPH1-NEXT:    20074:       ef ef ef ef     <unknown>
+# ORPH1-NEXT:    20078:       ef ef ef ef     <unknown>
+# ORPH1-NEXT:    2007c:       ef ef ef ef     <unknown>
 # ORPH1: foo1a:
 # ORPH1-NEXT:    20080:       00 00 00 00     nop
 # ORPH1: foo1b:
@@ -193,8 +193,8 @@ __start:
 # ORPH1-NEXT:    2008c:       08 00 80 28     j       131232 <foo2>
 # ORPH1-NEXT:    20090:       27 39 00 a0     addiu   $25, $25, 160
 # ORPH1-NEXT:    20094:       00 00 00 00     nop
-# ORPH1-NEXT:    20098:       00 00 00 00     nop
-# ORPH1-NEXT:    2009c:       00 00 00 00     nop
+# ORPH1-NEXT:    20098:       ef ef ef ef     <unknown>
+# ORPH1-NEXT:    2009c:       ef ef ef ef     <unknown>
 # ORPH1: foo2:
 # ORPH1-NEXT:    200a0:       00 00 00 00     nop
 
@@ -224,9 +224,9 @@ __start:
 # ORPH2-NEXT:    2003c:       00 00 00 00     nop
 # ORPH2: fpic:
 # ORPH2-NEXT:    20040:       00 00 00 00     nop
-# ORPH2-NEXT:    20044:       00 00 00 00     nop
-# ORPH2-NEXT:    20048:       00 00 00 00     nop
-# ORPH2-NEXT:    2004c:       00 00 00 00     nop
+# ORPH2-NEXT:    20044:       ef ef ef ef     <unknown>
+# ORPH2-NEXT:    20048:       ef ef ef ef     <unknown>
+# ORPH2-NEXT:    2004c:       ef ef ef ef     <unknown>
 # ORPH2: fnpic:
 # ORPH2-NEXT:    20050:       00 00 00 00     nop
 # ORPH2-NEXT: Disassembly of section .text:
@@ -249,7 +249,7 @@ __start:
 # ORPH2-NEXT:    2008c:       08 00 80 28     j       131232 <foo2>
 # ORPH2-NEXT:    20090:       27 39 00 a0     addiu   $25, $25, 160
 # ORPH2-NEXT:    20094:       00 00 00 00     nop
-# ORPH2-NEXT:    20098:       00 00 00 00     nop
-# ORPH2-NEXT:    2009c:       00 00 00 00     nop
+# ORPH2-NEXT:    20098:       ef ef ef ef     <unknown>
+# ORPH2-NEXT:    2009c:       ef ef ef ef     <unknown>
 # ORPH2: foo2:
 # ORPH2-NEXT:    200a0:       00 00 00 00     nop

Modified: lld/trunk/test/ELF/mips-npic-call-pic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-npic-call-pic.s?rev=306322&r1=306321&r2=306322&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-npic-call-pic.s (original)
+++ lld/trunk/test/ELF/mips-npic-call-pic.s Mon Jun 26 12:45:53 2017
@@ -51,8 +51,8 @@
 # CHECK-NEXT:    2005c:       08 00 80 1c     j       131184 <foo2>
 # CHECK-NEXT:    20060:       27 39 00 70     addiu   $25, $25, 112
 # CHECK-NEXT:    20064:       00 00 00 00     nop
-# CHECK-NEXT:    20068:       00 00 00 00     nop
-# CHECK-NEXT:    2006c:       00 00 00 00     nop
+# CHECK-NEXT:    20068:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2006c:       ef ef ef ef     <unknown>
 
 # CHECK: foo2:
 # CHECK-NEXT:    20070:       00 00 00 00     nop
@@ -62,15 +62,15 @@
 # CHECK-NEXT:    20078:       08 00 80 24     j       131216 <fpic>
 # CHECK-NEXT:    2007c:       27 39 00 90     addiu   $25, $25, 144
 # CHECK-NEXT:    20080:       00 00 00 00     nop
-# CHECK-NEXT:    20084:       00 00 00 00     nop
-# CHECK-NEXT:    20088:       00 00 00 00     nop
-# CHECK-NEXT:    2008c:       00 00 00 00     nop
+# CHECK-NEXT:    20084:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20088:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2008c:       ef ef ef ef     <unknown>
 
 # CHECK: fpic:
 # CHECK-NEXT:    20090:       00 00 00 00     nop
-# CHECK-NEXT:    20094:       00 00 00 00     nop
-# CHECK-NEXT:    20098:       00 00 00 00     nop
-# CHECK-NEXT:    2009c:       00 00 00 00     nop
+# CHECK-NEXT:    20094:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    20098:       ef ef ef ef     <unknown>
+# CHECK-NEXT:    2009c:       ef ef ef ef     <unknown>
 
 # CHECK: fnpic:
 # CHECK-NEXT:    200a0:       00 00 00 00     nop
@@ -101,13 +101,13 @@
 # REVERSE-NEXT:    2002c:       08 00 80 10     j       131136 <foo2>
 # REVERSE-NEXT:    20030:       27 39 00 40     addiu   $25, $25, 64
 # REVERSE-NEXT:    20034:       00 00 00 00     nop
-# REVERSE-NEXT:    20038:       00 00 00 00     nop
-# REVERSE-NEXT:    2003c:       00 00 00 00     nop
+# REVERSE-NEXT:    20038:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    2003c:       ef ef ef ef     <unknown>
 # REVERSE: foo2:
 # REVERSE-NEXT:    20040:       00 00 00 00     nop
-# REVERSE-NEXT:    20044:       00 00 00 00     nop
-# REVERSE-NEXT:    20048:       00 00 00 00     nop
-# REVERSE-NEXT:    2004c:       00 00 00 00     nop
+# REVERSE-NEXT:    20044:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    20048:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    2004c:       ef ef ef ef     <unknown>
 # REVERSE: __start:
 # REVERSE-NEXT:    20050:       0c 00 80 00     jal     131072 <__LA25Thunk_foo1a>
 # REVERSE-NEXT:    20054:       00 00 00 00     nop
@@ -128,9 +128,9 @@
 # REVERSE-NEXT:    2008c:       00 00 00 00     nop
 # REVERSE: fpic:
 # REVERSE-NEXT:    20090:       00 00 00 00     nop
-# REVERSE-NEXT:    20094:       00 00 00 00     nop
-# REVERSE-NEXT:    20098:       00 00 00 00     nop
-# REVERSE-NEXT:    2009c:       00 00 00 00     nop
+# REVERSE-NEXT:    20094:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    20098:       ef ef ef ef     <unknown>
+# REVERSE-NEXT:    2009c:       ef ef ef ef     <unknown>
 # REVERSE: fnpic:
 # REVERSE-NEXT:    200a0:       00 00 00 00     nop
 




More information about the llvm-commits mailing list