forked from OSchip/llvm-project
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. llvm-svn: 306322
This commit is contained in:
parent
a21c8e14b6
commit
921d43fbb2
|
@ -57,6 +57,7 @@ ARM::ARM() {
|
|||
GotPltEntrySize = 4;
|
||||
PltEntrySize = 16;
|
||||
PltHeaderSize = 20;
|
||||
TrapInstr = 0xd4d4d4d4;
|
||||
// ARM uses Variant 1 TLS
|
||||
TcbSize = 8;
|
||||
NeedsThunks = true;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -65,13 +65,11 @@ template <class ELFT> X86_64<ELFT>::X86_64() {
|
|||
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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue