mirror of
https://github.com/intel/llvm.git
synced 2026-01-19 09:31:59 +08:00
[ELF][MIPS] Improve tests
* Add --no-show-raw-insn to llvm-objdump -d tests * When linking an executable with %t.so, the path %t.so will be recorded in the DT_NEEDED entry if %t.so doesn't have DT_SONAME. .dynstr will have varying lengths on different systems. Add -soname to make tests more robust. llvm-svn: 366988
This commit is contained in:
@@ -3,12 +3,12 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn --print-imm-hex %t.exe | FileCheck %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK: __start:
|
||||
# CHECK-NEXT: 20000: 0e 00 80 00 jal 134348800
|
||||
# CHECK-NEXT: 20000: jal 0x8020000
|
||||
|
||||
.text
|
||||
.global __start
|
||||
|
||||
@@ -6,41 +6,41 @@
|
||||
# RUN: %S/Inputs/mips-dynamic.s -o %t2.o
|
||||
# RUN: ld.lld %t2.o -shared -o %t.so
|
||||
# RUN: ld.lld %t1.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s
|
||||
# RUN: llvm-readobj --dynamic-table -S -r --mips-plt-got %t.exe \
|
||||
# RUN: | FileCheck -check-prefix=REL %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: bar:
|
||||
# CHECK-NEXT: 20000: 0c 00 80 06 jal 131096 <loc>
|
||||
# CHECK-NEXT: 20004: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: jal 131096 <loc>
|
||||
# CHECK-NEXT: 20004: nop
|
||||
#
|
||||
# CHECK: __start:
|
||||
# CHECK-NEXT: 20008: 0c 00 80 00 jal 131072 <bar>
|
||||
# CHECK-NEXT: 2000c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20010: 0c 00 80 10 jal 131136
|
||||
# ^-- 0x20040 gotplt[foo0]
|
||||
# CHECK-NEXT: 20014: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20008: jal 131072 <bar>
|
||||
# CHECK-NEXT: 2000c: nop
|
||||
# CHECK-NEXT: 20010: jal 131136
|
||||
# ^-- 0x20040 gotplt[foo0]
|
||||
# CHECK-NEXT: 20014: nop
|
||||
#
|
||||
# CHECK: loc:
|
||||
# CHECK-NEXT: 20018: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20018: nop
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: Disassembly of section .plt:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: .plt:
|
||||
# CHECK-NEXT: 20020: 3c 1c 00 03 lui $gp, 3
|
||||
# CHECK-NEXT: 20024: 8f 99 00 04 lw $25, 4($gp)
|
||||
# CHECK-NEXT: 20028: 27 9c 00 04 addiu $gp, $gp, 4
|
||||
# CHECK-NEXT: 2002c: 03 1c c0 23 subu $24, $24, $gp
|
||||
# CHECK-NEXT: 20030: 03 e0 78 25 move $15, $ra
|
||||
# CHECK-NEXT: 20034: 00 18 c0 82 srl $24, $24, 2
|
||||
# CHECK-NEXT: 20038: 03 20 f8 09 jalr $25
|
||||
# CHECK-NEXT: 2003c: 27 18 ff fe addiu $24, $24, -2
|
||||
# CHECK-NEXT: 20040: 3c 0f 00 03 lui $15, 3
|
||||
# CHECK-NEXT: 20044: 8d f9 00 0c lw $25, 12($15)
|
||||
# CHECK-NEXT: 20048: 03 20 00 08 jr $25
|
||||
# CHECK-NEXT: 2004c: 25 f8 00 0c addiu $24, $15, 12
|
||||
# CHECK-NEXT: 20020: lui $gp, 3
|
||||
# CHECK-NEXT: 20024: lw $25, 4($gp)
|
||||
# CHECK-NEXT: 20028: addiu $gp, $gp, 4
|
||||
# CHECK-NEXT: 2002c: subu $24, $24, $gp
|
||||
# CHECK-NEXT: 20030: move $15, $ra
|
||||
# CHECK-NEXT: 20034: srl $24, $24, 2
|
||||
# CHECK-NEXT: 20038: jalr $25
|
||||
# CHECK-NEXT: 2003c: addiu $24, $24, -2
|
||||
# CHECK-NEXT: 20040: lui $15, 3
|
||||
# CHECK-NEXT: 20044: lw $25, 12($15)
|
||||
# CHECK-NEXT: 20048: jr $25
|
||||
# CHECK-NEXT: 2004c: addiu $24, $15, 12
|
||||
|
||||
# REL: Name: .plt
|
||||
# REL-NEXT: Type: SHT_PROGBITS
|
||||
|
||||
@@ -4,17 +4,17 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
|
||||
# RUN: %p/Inputs/mips-pic.s -o %t.so.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.exe.o
|
||||
# RUN: ld.lld %t.so.o -shared -o %t.so
|
||||
# RUN: ld.lld %t.so.o -shared -soname=t.so -o %t.so
|
||||
# RUN: ld.lld %t.exe.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.exe | FileCheck %s
|
||||
# RUN: llvm-readelf -r --mips-plt-got %t.exe | FileCheck -check-prefix=GOT %s
|
||||
|
||||
# CHECK: __start:
|
||||
# CHECK-NEXT: 20000: 24 42 80 40 addiu $2, $2, -32704
|
||||
# CHECK-NEXT: 20004: 24 42 80 20 addiu $2, $2, -32736
|
||||
# CHECK-NEXT: 20008: 24 42 80 28 addiu $2, $2, -32728
|
||||
# CHECK-NEXT: 2000c: 24 42 80 30 addiu $2, $2, -32720
|
||||
# CHECK-NEXT: 20010: 24 42 80 38 addiu $2, $2, -32712
|
||||
# CHECK-NEXT: 20000: addiu $2, $2, -32704
|
||||
# CHECK-NEXT: 20004: addiu $2, $2, -32736
|
||||
# CHECK-NEXT: 20008: addiu $2, $2, -32728
|
||||
# CHECK-NEXT: 2000c: addiu $2, $2, -32720
|
||||
# CHECK-NEXT: 20010: addiu $2, $2, -32712
|
||||
|
||||
# CHECK: 0000000000020014 .text 00000000 foo
|
||||
# CHECK: 0000000000020000 .text 00000000 __start
|
||||
|
||||
@@ -4,18 +4,18 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
|
||||
# RUN: %p/Inputs/mips-pic.s -o %t.so.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.exe.o
|
||||
# RUN: ld.lld %t.so.o -shared -o %t.so
|
||||
# RUN: ld.lld %t.so.o -shared -soname=t.so -o %t.so
|
||||
# RUN: ld.lld %t.exe.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.exe | FileCheck %s
|
||||
# RUN: llvm-readelf -r --mips-plt-got %t.exe | FileCheck -check-prefix=GOT %s
|
||||
|
||||
# CHECK: __start:
|
||||
|
||||
# CHECK-NEXT: 20000: df 82 80 20 ld $2, -32736($gp)
|
||||
# CHECK-NEXT: 20004: 64 42 00 18 daddiu $2, $2, 24
|
||||
# CHECK-NEXT: 20008: 24 42 80 40 addiu $2, $2, -32704
|
||||
# CHECK-NEXT: 2000c: 24 42 80 30 addiu $2, $2, -32720
|
||||
# CHECK-NEXT: 20010: 24 42 80 38 addiu $2, $2, -32712
|
||||
# CHECK-NEXT: 20000: ld $2, -32736($gp)
|
||||
# CHECK-NEXT: 20004: daddiu $2, $2, 24
|
||||
# CHECK-NEXT: 20008: addiu $2, $2, -32704
|
||||
# CHECK-NEXT: 2000c: addiu $2, $2, -32720
|
||||
# CHECK-NEXT: 20010: addiu $2, $2, -32712
|
||||
|
||||
# CHECK: 0000000000020018 .text 00000000 foo
|
||||
# CHECK: 0000000000020000 .text 00000000 __start
|
||||
|
||||
@@ -4,19 +4,19 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe
|
||||
# RUN: llvm-objdump -d -s -t %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d -s -t --no-show-raw-insn %t.exe | FileCheck %s
|
||||
# RUN: llvm-readobj -r %t.exe | FileCheck -check-prefix=REL %s
|
||||
|
||||
# CHECK: __start:
|
||||
# CHECK-NEXT: 20000: 3c 1c 00 01 lui $gp, 1
|
||||
# ^-- 0x20000 - 0x37ff0
|
||||
# ^-- 0 - 0xfffffffffffe8010
|
||||
# ^-- %hi(0x17ff0)
|
||||
# CHECK-NEXT: 20000: lui $gp, 1
|
||||
# ^-- 0x20000 - 0x37ff0
|
||||
# ^-- 0 - 0xfffffffffffe8010
|
||||
# ^-- %hi(0x17ff0)
|
||||
# CHECK: loc:
|
||||
# CHECK-NEXT: 20004: 67 9c 7f f0 daddiu $gp, $gp, 32752
|
||||
# ^-- 0x20000 - 0x37ff0
|
||||
# ^-- 0 - 0xfffffffffffe8010
|
||||
# ^-- %lo(0x17ff0)
|
||||
# CHECK-NEXT: 20004: daddiu $gp, $gp, 32752
|
||||
# ^-- 0x20000 - 0x37ff0
|
||||
# ^-- 0 - 0xfffffffffffe8010
|
||||
# ^-- %lo(0x17ff0)
|
||||
|
||||
# CHECK: Contents of section .rodata:
|
||||
# CHECK-NEXT: {{[0-9a-f]+}} ffffffff fffe8014
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
# Check R_MIPS_CALL16 relocation calculation.
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -shared -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s
|
||||
# RUN: llvm-readobj --mips-plt-got --symbols %t.exe \
|
||||
# RUN: ld.lld %t.o -shared -o %t.so
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.so | FileCheck %s
|
||||
# RUN: llvm-readobj --mips-plt-got --symbols %t.so \
|
||||
# RUN: | FileCheck -check-prefix=GOT %s
|
||||
|
||||
.text
|
||||
@@ -20,7 +20,7 @@ g1:
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 10000: 8f 88 80 18 lw $8, -32744
|
||||
# CHECK-NEXT: 10000: lw $8, -32744
|
||||
|
||||
# GOT: Name: g1
|
||||
# GOT-NEXT: Value: 0x[[ADDR:[0-9A-F]+]]
|
||||
|
||||
@@ -4,29 +4,29 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -o %t.o %s
|
||||
# RUN: ld.lld -r -o %t %t.o %t.o
|
||||
# RUN: llvm-objdump -d -r %t | FileCheck -check-prefix=OBJ %s
|
||||
# RUN: llvm-objdump -d -r --no-show-raw-insn %t | FileCheck -check-prefix=OBJ %s
|
||||
# RUN: ld.lld -shared -o %t.so %t
|
||||
# RUN: llvm-objdump -d %t.so | FileCheck -check-prefix=SO %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.so | FileCheck -check-prefix=SO %s
|
||||
|
||||
# OBJ: Disassembly of section .text:
|
||||
# OBJ-EMPTY:
|
||||
# OBJ-NEXT: .text:
|
||||
# OBJ-NEXT: 0: 8f 99 00 00 lw $25, 0($gp)
|
||||
# OBJ-NEXT: 0: lw $25, 0($gp)
|
||||
# OBJ-NEXT: 00000000: R_MIPS_GOT16 .data
|
||||
# OBJ-NEXT: 4: 27 24 00 00 addiu $4, $25, 0
|
||||
# OBJ-NEXT: 4: addiu $4, $25, 0
|
||||
# OBJ-NEXT: 00000004: R_MIPS_LO16 .data
|
||||
# OBJ: 10: 8f 99 00 00 lw $25, 0($gp)
|
||||
# OBJ: 10: lw $25, 0($gp)
|
||||
# OBJ-NEXT: 00000010: R_MIPS_GOT16 .data
|
||||
# OBJ-NEXT: 14: 27 24 00 10 addiu $4, $25, 16
|
||||
# OBJ-NEXT: 14: addiu $4, $25, 16
|
||||
# OBJ-NEXT: 00000014: R_MIPS_LO16 .data
|
||||
|
||||
# SO: Disassembly of section .text:
|
||||
# SO-EMPTY:
|
||||
# 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: 10010: 8f 99 80 18 lw $25, -32744($gp)
|
||||
# SO-NEXT: 10014: 27 24 00 10 addiu $4, $25, 16
|
||||
# SO-NEXT: 10000: lw $25, -32744($gp)
|
||||
# SO-NEXT: 10004: addiu $4, $25, 0
|
||||
# SO: 10010: lw $25, -32744($gp)
|
||||
# SO-NEXT: 10014: addiu $4, $25, 16
|
||||
|
||||
.text
|
||||
lw $t9, %got(.data)($gp)
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -shared -o %t.so
|
||||
# RUN: llvm-objdump -d -t %t.so | FileCheck %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.so | FileCheck %s
|
||||
# RUN: llvm-readelf -r --mips-plt-got %t.so | FileCheck -check-prefix=GOT %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 10000: 8f 88 80 18 lw $8, -32744($gp)
|
||||
# CHECK-NEXT: 10004: 21 08 00 2c addi $8, $8, 44
|
||||
# CHECK-NEXT: 10008: 8f 88 80 24 lw $8, -32732($gp)
|
||||
# CHECK-NEXT: 1000c: 21 08 90 00 addi $8, $8, -28672
|
||||
# CHECK-NEXT: 10010: 8f 88 80 28 lw $8, -32728($gp)
|
||||
# CHECK-NEXT: 10014: 21 08 90 04 addi $8, $8, -28668
|
||||
# CHECK-NEXT: 10018: 8f 88 80 28 lw $8, -32728($gp)
|
||||
# CHECK-NEXT: 1001c: 21 08 10 04 addi $8, $8, 4100
|
||||
# CHECK-NEXT: 10020: 8f 88 80 30 lw $8, -32720($gp)
|
||||
# CHECK-NEXT: 10024: 21 08 10 08 addi $8, $8, 4104
|
||||
# CHECK-NEXT: 10028: 8f 88 80 34 lw $8, -32716($gp)
|
||||
# CHECK-NEXT: 10000: lw $8, -32744($gp)
|
||||
# CHECK-NEXT: 10004: addi $8, $8, 44
|
||||
# CHECK-NEXT: 10008: lw $8, -32732($gp)
|
||||
# CHECK-NEXT: 1000c: addi $8, $8, -28672
|
||||
# CHECK-NEXT: 10010: lw $8, -32728($gp)
|
||||
# CHECK-NEXT: 10014: addi $8, $8, -28668
|
||||
# CHECK-NEXT: 10018: lw $8, -32728($gp)
|
||||
# CHECK-NEXT: 1001c: addi $8, $8, 4100
|
||||
# CHECK-NEXT: 10020: lw $8, -32720($gp)
|
||||
# CHECK-NEXT: 10024: addi $8, $8, 4104
|
||||
# CHECK-NEXT: 10028: lw $8, -32716($gp)
|
||||
#
|
||||
# CHECK: SYMBOL TABLE:
|
||||
# CHECK: 00041008 .data 00000000 .hidden bar
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# RUN: llvm-readobj --symbols %t.so | FileCheck -check-prefix=INT-SO %s
|
||||
# RUN: llvm-readobj --symbols %S/Inputs/mips-gp-disp.so \
|
||||
# RUN: | FileCheck -check-prefix=EXT-SO %s
|
||||
# RUN: llvm-objdump -d -t %t.so | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.so | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s
|
||||
|
||||
# INT-SO: Name: _gp_disp
|
||||
@@ -21,9 +21,9 @@
|
||||
# DIS: Disassembly of section .text:
|
||||
# DIS-EMPTY:
|
||||
# DIS-NEXT: __start:
|
||||
# DIS-NEXT: 10000: 3c 08 00 01 lui $8, 1
|
||||
# DIS-NEXT: 10004: 21 08 7f f0 addi $8, $8, 32752
|
||||
# ^-- 0x37ff0 & 0xffff
|
||||
# DIS-NEXT: 10000: lui $8, 1
|
||||
# DIS-NEXT: 10004: addi $8, $8, 32752
|
||||
# ^-- 0x37ff0 & 0xffff
|
||||
# DIS: 00027ff0 .got 00000000 .hidden _gp
|
||||
|
||||
# REL: Relocations [
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld -o %t.exe %t.o
|
||||
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 3c 08 00 03 lui $8, 3
|
||||
# CHECK-NEXT: 20004: 21 08 7f f0 addi $8, $8, 32752
|
||||
# CHECK-NEXT: 20000: lui $8, 3
|
||||
# CHECK-NEXT: 20004: addi $8, $8, 32752
|
||||
|
||||
# CHECK: 00037ff0 .got 00000000 .hidden _gp
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
|
||||
# RUN: %S/Inputs/mips-dynamic.s -o %t2.o
|
||||
# RUN: ld.lld %t1.o %t2.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
.global __start
|
||||
__start:
|
||||
@@ -14,7 +14,7 @@ __start:
|
||||
lui $7, %highest(_foo+0x300047FFF7FF8)
|
||||
ld $7, %higher (_foo+0x300047FFF7FF8)($7)
|
||||
|
||||
# CHECK: 20000: 3c 06 00 03 lui $6, 3
|
||||
# CHECK-NEXT: 20004: 64 c6 00 05 daddiu $6, $6, 5
|
||||
# CHECK-NEXT: 20008: 3c 07 00 03 lui $7, 3
|
||||
# CHECK-NEXT: 2000c: dc e7 00 05 ld $7, 5($7)
|
||||
# CHECK: 20000: lui $6, 3
|
||||
# CHECK-NEXT: 20004: daddiu $6, $6, 5
|
||||
# CHECK-NEXT: 20008: lui $7, 3
|
||||
# CHECK-NEXT: 2000c: ld $7, 5($7)
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: %S/Inputs/mips-dynamic.s -o %t2.o
|
||||
# RUN: ld.lld %t1.o %t2.o -o %t.exe
|
||||
# RUN: llvm-objdump -d -t %t.exe | FileCheck -check-prefix=EXE %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.exe | FileCheck -check-prefix=EXE %s
|
||||
# RUN: ld.lld %t1.o %t2.o -shared -o %t.so
|
||||
# RUN: llvm-objdump -d -t %t.so | FileCheck -check-prefix=SO %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.so | FileCheck -check-prefix=SO %s
|
||||
|
||||
.text
|
||||
.globl __start
|
||||
@@ -22,15 +22,15 @@ bar:
|
||||
# EXE: Disassembly of section .text:
|
||||
# EXE-EMPTY:
|
||||
# EXE-NEXT: __start:
|
||||
# EXE-NEXT: 20000: 3c 08 00 02 lui $8, 2
|
||||
# ^-- %hi(0x47ff0-0x20000)
|
||||
# EXE-NEXT: 20004: 21 08 80 00 addi $8, $8, -32768
|
||||
# ^-- %lo(0x38000-0x20004+4)
|
||||
# EXE-NEXT: 20000: lui $8, 2
|
||||
# ^-- %hi(0x47ff0-0x20000)
|
||||
# EXE-NEXT: 20004: addi $8, $8, -32768
|
||||
# ^-- %lo(0x38000-0x20004+4)
|
||||
# EXE: bar:
|
||||
# EXE-NEXT: 2000c: 3c 08 00 01 lui $8, 1
|
||||
# ^-- %hi(0x38000-0x2000c)
|
||||
# EXE-NEXT: 20010: 21 08 7f f4 addi $8, $8, 32756
|
||||
# ^-- %lo(0x38000-0x20010+4)
|
||||
# EXE-NEXT: 2000c: lui $8, 1
|
||||
# ^-- %hi(0x38000-0x2000c)
|
||||
# EXE-NEXT: 20010: addi $8, $8, 32756
|
||||
# ^-- %lo(0x38000-0x20010+4)
|
||||
|
||||
# EXE: SYMBOL TABLE:
|
||||
# EXE: 0002000c .text 00000000 bar
|
||||
@@ -40,15 +40,15 @@ bar:
|
||||
# SO: Disassembly of section .text:
|
||||
# SO-EMPTY:
|
||||
# SO-NEXT: __start:
|
||||
# SO-NEXT: 10000: 3c 08 00 02 lui $8, 2
|
||||
# ^-- %hi(0x28000-0x10000)
|
||||
# SO-NEXT: 10004: 21 08 80 00 addi $8, $8, -32768
|
||||
# ^-- %lo(0x28000-0x10004+4)
|
||||
# SO-NEXT: 10000: lui $8, 2
|
||||
# ^-- %hi(0x28000-0x10000)
|
||||
# SO-NEXT: 10004: addi $8, $8, -32768
|
||||
# ^-- %lo(0x28000-0x10004+4)
|
||||
# SO: bar:
|
||||
# SO-NEXT: 1000c: 3c 08 00 01 lui $8, 1
|
||||
# ^-- %hi(0x28000-0x1000c)
|
||||
# SO-NEXT: 10010: 21 08 7f f4 addi $8, $8, 32756
|
||||
# ^-- %lo(0x28000-0x10010+4)
|
||||
# SO-NEXT: 1000c: lui $8, 1
|
||||
# ^-- %hi(0x28000-0x1000c)
|
||||
# SO-NEXT: 10010: addi $8, $8, 32756
|
||||
# ^-- %lo(0x28000-0x10010+4)
|
||||
|
||||
# SO: SYMBOL TABLE:
|
||||
# SO: 0001000c .text 00000000 bar
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe 2>&1 | FileCheck -check-prefix=WARN %s
|
||||
# RUN: llvm-objdump -d -t %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
.text
|
||||
.globl __start
|
||||
@@ -18,10 +18,10 @@ _label:
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 3c 08 00 03 lui $8, 3
|
||||
# ^-- %hi(__start) w/o addend
|
||||
# CHECK-NEXT 20004: 21 08 00 08 addi $8, $8, 8
|
||||
# ^-- %lo(_label)
|
||||
# CHECK-NEXT: 20000: lui $8, 3
|
||||
# ^-- %hi(__start) w/o addend
|
||||
# CHECK-NEXT 20004: addi $8, $8, 8
|
||||
# ^-- %lo(_label)
|
||||
|
||||
# CHECK: SYMBOL TABLE:
|
||||
# CHECK: 00020008 .text 00000000 _label
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
# RUN: yaml2obj %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.so -shared
|
||||
# RUN: llvm-objdump -d %t.so | FileCheck %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.so | FileCheck %s
|
||||
# RUN: llvm-readobj -r %t.so | FileCheck -check-prefix=REL %s
|
||||
|
||||
# REQUIRES: mips
|
||||
|
||||
# CHECK: 10000: 09 f8 20 03 jalr $25
|
||||
# CHECK: 10000: jalr $25
|
||||
|
||||
# REL: Relocations [
|
||||
# REL-NEXT: ]
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips %S/Inputs/mips-micro.s -o %t1eb.o
|
||||
# RUN: ld.lld -shared -o %teb.so %t1eb.o
|
||||
# RUN: ld.lld -shared -soname=teb.so -o %teb.so %t1eb.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips %s -o %t2eb.o
|
||||
# RUN: ld.lld -o %teb.exe %t2eb.o %teb.so
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux \
|
||||
# RUN: -mattr=micromips %S/Inputs/mips-micro.s -o %t1el.o
|
||||
# RUN: ld.lld -shared -o %tel.so %t1el.o
|
||||
# RUN: ld.lld -shared -soname=tel.so -o %tel.so %t1el.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux \
|
||||
# RUN: -mattr=micromips %s -o %t2el.o
|
||||
# RUN: ld.lld -o %tel.exe %t2el.o %tel.so
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips -mcpu=mips32r6 %S/Inputs/mips-micro.s -o %t1eb.o
|
||||
# RUN: ld.lld -shared -o %teb.so %t1eb.o
|
||||
# RUN: ld.lld -shared -soname=teb.so -o %teb.so %t1eb.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips -mcpu=mips32r6 %s -o %t2eb.o
|
||||
# RUN: ld.lld -o %teb.exe %t2eb.o %teb.so
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux \
|
||||
# RUN: -mattr=micromips -mcpu=mips32r6 %S/Inputs/mips-micro.s -o %t1el.o
|
||||
# RUN: ld.lld -shared -o %tel.so %t1el.o
|
||||
# RUN: ld.lld -shared -soname=tel.so -o %tel.so %t1el.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux \
|
||||
# RUN: -mattr=micromips -mcpu=mips32r6 %s -o %t2el.o
|
||||
# RUN: ld.lld -o %tel.exe %t2el.o %tel.so
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips %S/Inputs/mips-micro.s -o %t1eb.o
|
||||
# RUN: ld.lld -shared -o %teb.so %t1eb.o
|
||||
# RUN: ld.lld -shared -soname=teb.so -o %teb.so %t1eb.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: %S/Inputs/mips-fpic.s -o %t-reg.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips %S/Inputs/mips-dynamic.s -o %t-dso.o
|
||||
# RUN: ld.lld %t-dso.o -shared -o %t.so
|
||||
# RUN: ld.lld %t-dso.o -shared -soname=t.so -o %t.so
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mattr=micromips %s -o %t-exe.o
|
||||
# RUN: ld.lld %t-exe.o %t.so -o %t.exe
|
||||
|
||||
@@ -11,127 +11,127 @@
|
||||
# RUN: %p/Inputs/mips-pic.s -o %t-pic.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-npic.o
|
||||
# RUN: ld.lld %t-npic.o %t-pic.o %t-sto-pic.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __LA25Thunk_foo1a:
|
||||
# CHECK-NEXT: 20000: 3c 19 00 02 lui $25, 2
|
||||
# CHECK-NEXT: 20004: 08 00 80 08 j 131104 <foo1a>
|
||||
# CHECK-NEXT: 20008: 27 39 00 20 addiu $25, $25, 32
|
||||
# CHECK-NEXT: 2000c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: lui $25, 2
|
||||
# CHECK-NEXT: 20004: j 131104 <foo1a>
|
||||
# CHECK-NEXT: 20008: addiu $25, $25, 32
|
||||
# CHECK-NEXT: 2000c: nop
|
||||
|
||||
# CHECK: __LA25Thunk_foo1b:
|
||||
# CHECK-NEXT: 20010: 3c 19 00 02 lui $25, 2
|
||||
# CHECK-NEXT: 20014: 08 00 80 09 j 131108 <foo1b>
|
||||
# CHECK-NEXT: 20018: 27 39 00 24 addiu $25, $25, 36
|
||||
# CHECK-NEXT: 2001c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20010: lui $25, 2
|
||||
# CHECK-NEXT: 20014: j 131108 <foo1b>
|
||||
# CHECK-NEXT: 20018: addiu $25, $25, 36
|
||||
# CHECK-NEXT: 2001c: nop
|
||||
|
||||
# CHECK: foo1a:
|
||||
# CHECK-NEXT: 20020: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20020: nop
|
||||
|
||||
# CHECK: foo1b:
|
||||
# CHECK-NEXT: 20024: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20024: nop
|
||||
|
||||
# CHECK: __LA25Thunk_foo2:
|
||||
# CHECK-NEXT: 20028: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20028: lui $25, 2
|
||||
# CHECK-NEXT: 2002c: j 131136 <foo2>
|
||||
# CHECK-NEXT: 20030: addiu $25, $25, 64
|
||||
# CHECK-NEXT: 20034: nop
|
||||
|
||||
# CHECK: foo2:
|
||||
# CHECK-NEXT: 20040: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20040: nop
|
||||
|
||||
# CHECK: __LA25Thunk_fpic:
|
||||
# CHECK-NEXT: 20044: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20044: lui $25, 2
|
||||
# CHECK-NEXT: 20048: j 131168 <fpic>
|
||||
# CHECK-NEXT: 2004c: addiu $25, $25, 96
|
||||
# CHECK-NEXT: 20050: nop
|
||||
|
||||
# CHECK: fpic:
|
||||
# CHECK-NEXT: 20060: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20060: nop
|
||||
|
||||
# CHECK: fnpic:
|
||||
# CHECK-NEXT: 20070: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20070: nop
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: Disassembly of section differentos:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20074: 0c 00 80 00 jal 131072 <__LA25Thunk_foo1a>
|
||||
# CHECK-NEXT: 20078: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 2007c: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 20080: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20084: 0c 00 80 04 jal 131088 <__LA25Thunk_foo1b>
|
||||
# CHECK-NEXT: 20088: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 2008c: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 20090: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20094: 0c 00 80 11 jal 131140 <__LA25Thunk_fpic>
|
||||
# CHECK-NEXT: 20098: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 2009c: 0c 00 80 1c jal 131184 <fnpic>
|
||||
# CHECK-NEXT: 200a0: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20074: jal 131072 <__LA25Thunk_foo1a>
|
||||
# CHECK-NEXT: 20078: nop
|
||||
# CHECK-NEXT: 2007c: jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 20080: nop
|
||||
# CHECK-NEXT: 20084: jal 131088 <__LA25Thunk_foo1b>
|
||||
# CHECK-NEXT: 20088: nop
|
||||
# CHECK-NEXT: 2008c: jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 20090: nop
|
||||
# CHECK-NEXT: 20094: jal 131140 <__LA25Thunk_fpic>
|
||||
# CHECK-NEXT: 20098: nop
|
||||
# CHECK-NEXT: 2009c: jal 131184 <fnpic>
|
||||
# CHECK-NEXT: 200a0: nop
|
||||
|
||||
# Make sure the thunks are created properly no matter how
|
||||
# objects are laid out.
|
||||
#
|
||||
# RUN: ld.lld %t-pic.o %t-npic.o %t-sto-pic.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck -check-prefix=REVERSE %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck -check-prefix=REVERSE %s
|
||||
|
||||
# REVERSE: Disassembly of section .text:
|
||||
# REVERSE-EMPTY:
|
||||
# REVERSE-NEXT: __LA25Thunk_foo1a:
|
||||
# REVERSE-NEXT: 20000: 3c 19 00 02 lui $25, 2
|
||||
# REVERSE-NEXT: 20004: 08 00 80 08 j 131104 <foo1a>
|
||||
# REVERSE-NEXT: 20008: 27 39 00 20 addiu $25, $25, 32
|
||||
# REVERSE-NEXT: 2000c: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20000: lui $25, 2
|
||||
# REVERSE-NEXT: 20004: j 131104 <foo1a>
|
||||
# REVERSE-NEXT: 20008: addiu $25, $25, 32
|
||||
# REVERSE-NEXT: 2000c: nop
|
||||
|
||||
# REVERSE: __LA25Thunk_foo1b:
|
||||
# REVERSE-NEXT: 20010: 3c 19 00 02 lui $25, 2
|
||||
# REVERSE-NEXT: 20014: 08 00 80 09 j 131108 <foo1b>
|
||||
# REVERSE-NEXT: 20018: 27 39 00 24 addiu $25, $25, 36
|
||||
# REVERSE-NEXT: 2001c: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20010: lui $25, 2
|
||||
# REVERSE-NEXT: 20014: j 131108 <foo1b>
|
||||
# REVERSE-NEXT: 20018: addiu $25, $25, 36
|
||||
# REVERSE-NEXT: 2001c: nop
|
||||
|
||||
# REVERSE: foo1a:
|
||||
# REVERSE-NEXT: 20020: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20020: nop
|
||||
|
||||
# REVERSE: foo1b:
|
||||
# REVERSE-NEXT: 20024: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20024: nop
|
||||
|
||||
# REVERSE: __LA25Thunk_foo2:
|
||||
# REVERSE-NEXT: 20028: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20028: lui $25, 2
|
||||
# REVERSE-NEXT: 2002c: j 131136 <foo2>
|
||||
# REVERSE-NEXT: 20030: addiu $25, $25, 64
|
||||
# REVERSE-NEXT: 20034: nop
|
||||
|
||||
# REVERSE: foo2:
|
||||
# REVERSE-NEXT: 20040: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20040: nop
|
||||
|
||||
# REVERSE: __LA25Thunk_fpic:
|
||||
# REVERSE-NEXT: 20050: 3c 19 00 02 lui $25, 2
|
||||
# REVERSE-NEXT: 20054: 08 00 80 18 j 131168 <fpic>
|
||||
# REVERSE-NEXT: 20058: 27 39 00 60 addiu $25, $25, 96
|
||||
# REVERSE-NEXT: 2005c: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20050: lui $25, 2
|
||||
# REVERSE-NEXT: 20054: j 131168 <fpic>
|
||||
# REVERSE-NEXT: 20058: addiu $25, $25, 96
|
||||
# REVERSE-NEXT: 2005c: nop
|
||||
|
||||
# REVERSE: fpic:
|
||||
# REVERSE-NEXT: 20060: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20060: nop
|
||||
|
||||
# REVERSE: fnpic:
|
||||
# REVERSE-NEXT: 20070: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20070: nop
|
||||
|
||||
# REVERSE: Disassembly of section differentos:
|
||||
# REVERSE-EMPTY:
|
||||
# REVERSE-NEXT: __start:
|
||||
# REVERSE-NEXT: 20074: 0c 00 80 00 jal 131072 <__LA25Thunk_foo1a>
|
||||
# REVERSE-NEXT: 20078: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 2007c: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 20080: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20084: 0c 00 80 04 jal 131088 <__LA25Thunk_foo1b>
|
||||
# REVERSE-NEXT: 20088: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 2008c: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 20090: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20094: 0c 00 80 14 jal 131152 <__LA25Thunk_fpic>
|
||||
# REVERSE-NEXT: 20098: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 2009c: 0c 00 80 1c jal 131184 <fnpic>
|
||||
# REVERSE-NEXT: 200a0: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20074: jal 131072 <__LA25Thunk_foo1a>
|
||||
# REVERSE-NEXT: 20078: nop
|
||||
# REVERSE-NEXT: 2007c: jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 20080: nop
|
||||
# REVERSE-NEXT: 20084: jal 131088 <__LA25Thunk_foo1b>
|
||||
# REVERSE-NEXT: 20088: nop
|
||||
# REVERSE-NEXT: 2008c: jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 20090: nop
|
||||
# REVERSE-NEXT: 20094: jal 131152 <__LA25Thunk_fpic>
|
||||
# REVERSE-NEXT: 20098: nop
|
||||
# REVERSE-NEXT: 2009c: jal 131184 <fnpic>
|
||||
# REVERSE-NEXT: 200a0: nop
|
||||
|
||||
.section differentos, "ax", %progbits
|
||||
.globl __start
|
||||
|
||||
@@ -11,62 +11,62 @@
|
||||
# RUN: %p/Inputs/mips-pic.s -o %t-pic.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-npic.o
|
||||
# RUN: ld.lld --script %t1.script %t-npic.o %t-pic.o %t-sto-pic.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
# CHECK: Disassembly of section .out:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __LA25Thunk_foo1a:
|
||||
# CHECK-NEXT: 20000: 3c 19 00 02 lui $25, 2
|
||||
# CHECK-NEXT: 20004: 08 00 80 08 j 131104 <foo1a>
|
||||
# CHECK-NEXT: 20008: 27 39 00 20 addiu $25, $25, 32
|
||||
# CHECK-NEXT: 2000c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: lui $25, 2
|
||||
# CHECK-NEXT: 20004: j 131104 <foo1a>
|
||||
# CHECK-NEXT: 20008: addiu $25, $25, 32
|
||||
# CHECK-NEXT: 2000c: nop
|
||||
|
||||
# CHECK: __LA25Thunk_foo1b:
|
||||
# CHECK-NEXT: 20010: 3c 19 00 02 lui $25, 2
|
||||
# CHECK-NEXT: 20014: 08 00 80 09 j 131108 <foo1b>
|
||||
# CHECK-NEXT: 20018: 27 39 00 24 addiu $25, $25, 36
|
||||
# CHECK-NEXT: 2001c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20010: lui $25, 2
|
||||
# CHECK-NEXT: 20014: j 131108 <foo1b>
|
||||
# CHECK-NEXT: 20018: addiu $25, $25, 36
|
||||
# CHECK-NEXT: 2001c: nop
|
||||
|
||||
# CHECK: foo1a:
|
||||
# CHECK-NEXT: 20020: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20020: nop
|
||||
|
||||
# CHECK: foo1b:
|
||||
# CHECK-NEXT: 20024: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20024: nop
|
||||
|
||||
# CHECK: __LA25Thunk_foo2:
|
||||
# CHECK-NEXT: 20028: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20028: lui $25, 2
|
||||
# CHECK-NEXT: 2002c: j 131136 <foo2>
|
||||
# CHECK-NEXT: 20030: addiu $25, $25, 64
|
||||
# CHECK-NEXT: 20034: nop
|
||||
|
||||
# CHECK: foo2:
|
||||
# CHECK-NEXT: 20040: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20040: nop
|
||||
|
||||
# CHECK: __start:
|
||||
# CHECK-NEXT: 20150: 0c 00 80 00 jal 131072 <__LA25Thunk_foo1a>
|
||||
# CHECK-NEXT: 20154: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20158: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2015c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20160: 0c 00 80 04 jal 131088 <__LA25Thunk_foo1b>
|
||||
# CHECK-NEXT: 20164: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20168: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2016c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20170: 0c 00 80 60 jal 131456 <__LA25Thunk_fpic>
|
||||
# CHECK-NEXT: 20174: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20178: 0c 00 80 68 jal 131488 <fnpic>
|
||||
# CHECK-NEXT: 2017c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20150: jal 131072 <__LA25Thunk_foo1a>
|
||||
# CHECK-NEXT: 20154: nop
|
||||
# CHECK-NEXT: 20158: jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2015c: nop
|
||||
# CHECK-NEXT: 20160: jal 131088 <__LA25Thunk_foo1b>
|
||||
# CHECK-NEXT: 20164: nop
|
||||
# CHECK-NEXT: 20168: jal 131112 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2016c: nop
|
||||
# CHECK-NEXT: 20170: jal 131456 <__LA25Thunk_fpic>
|
||||
# CHECK-NEXT: 20174: nop
|
||||
# CHECK-NEXT: 20178: jal 131488 <fnpic>
|
||||
# CHECK-NEXT: 2017c: nop
|
||||
|
||||
# CHECK: __LA25Thunk_fpic:
|
||||
# CHECK-NEXT: 20180: 3c 19 00 02 lui $25, 2
|
||||
# CHECK-NEXT: 20184: 08 00 80 64 j 131472 <fpic>
|
||||
# CHECK-NEXT: 20188: 27 39 01 90 addiu $25, $25, 400
|
||||
# CHECK-NEXT: 2018c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20180: lui $25, 2
|
||||
# CHECK-NEXT: 20184: j 131472 <fpic>
|
||||
# CHECK-NEXT: 20188: addiu $25, $25, 400
|
||||
# CHECK-NEXT: 2018c: nop
|
||||
|
||||
# CHECK: fpic:
|
||||
# CHECK-NEXT: 20190: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20190: nop
|
||||
|
||||
# CHECK: fnpic:
|
||||
# CHECK-NEXT: 201a0: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 201a0: nop
|
||||
|
||||
.text
|
||||
.globl __start
|
||||
@@ -82,123 +82,123 @@ __start:
|
||||
# .text.2 sections will be added to .text
|
||||
# RUN: echo "SECTIONS { .text 0x20000 : { *(.text) } }" > %t2.script
|
||||
# RUN: ld.lld --script %t2.script %t-npic.o %t-pic.o %t-sto-pic.o -o %t2.exe
|
||||
# RUN: llvm-objdump -d %t2.exe | FileCheck -check-prefix=ORPH1 %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t2.exe | FileCheck -check-prefix=ORPH1 %s
|
||||
|
||||
# ORPH1: Disassembly of section .text:
|
||||
# ORPH1-EMPTY:
|
||||
# ORPH1-NEXT: __start:
|
||||
# ORPH1-NEXT: 20000: 0c 00 80 15 jal 131156 <__LA25Thunk_foo1a>
|
||||
# ORPH1-NEXT: 20004: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20008: 0c 00 80 22 jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH1-NEXT: 2000c: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20010: 0c 00 80 19 jal 131172 <__LA25Thunk_foo1b>
|
||||
# ORPH1-NEXT: 20014: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20018: 0c 00 80 22 jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH1-NEXT: 2001c: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20020: 0c 00 80 0c jal 131120 <__LA25Thunk_fpic>
|
||||
# ORPH1-NEXT: 20024: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20028: 0c 00 80 14 jal 131152 <fnpic>
|
||||
# ORPH1-NEXT: 2002c: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20000: jal 131156 <__LA25Thunk_foo1a>
|
||||
# ORPH1-NEXT: 20004: nop
|
||||
# ORPH1-NEXT: 20008: jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH1-NEXT: 2000c: nop
|
||||
# ORPH1-NEXT: 20010: jal 131172 <__LA25Thunk_foo1b>
|
||||
# ORPH1-NEXT: 20014: nop
|
||||
# ORPH1-NEXT: 20018: jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH1-NEXT: 2001c: nop
|
||||
# ORPH1-NEXT: 20020: jal 131120 <__LA25Thunk_fpic>
|
||||
# ORPH1-NEXT: 20024: nop
|
||||
# ORPH1-NEXT: 20028: jal 131152 <fnpic>
|
||||
# ORPH1-NEXT: 2002c: nop
|
||||
|
||||
# ORPH1: __LA25Thunk_fpic:
|
||||
# ORPH1-NEXT: 20030: 3c 19 00 02 lui $25, 2
|
||||
# ORPH1-NEXT: 20034: 08 00 80 10 j 131136 <fpic>
|
||||
# ORPH1-NEXT: 20038: 27 39 00 40 addiu $25, $25, 64
|
||||
# ORPH1-NEXT: 2003c: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20030: lui $25, 2
|
||||
# ORPH1-NEXT: 20034: j 131136 <fpic>
|
||||
# ORPH1-NEXT: 20038: addiu $25, $25, 64
|
||||
# ORPH1-NEXT: 2003c: nop
|
||||
|
||||
# ORPH1: fpic:
|
||||
# ORPH1-NEXT: 20040: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20040: nop
|
||||
|
||||
# ORPH1: fnpic:
|
||||
# ORPH1-NEXT: 20050: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20050: nop
|
||||
|
||||
# ORPH1: __LA25Thunk_foo1a:
|
||||
# ORPH1-NEXT: 20054: 3c 19 00 02 lui $25, 2
|
||||
# ORPH1-NEXT: 20058: 08 00 80 20 j 131200 <foo1a>
|
||||
# ORPH1-NEXT: 2005c: 27 39 00 80 addiu $25, $25, 128
|
||||
# ORPH1-NEXT: 20060: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20054: lui $25, 2
|
||||
# ORPH1-NEXT: 20058: j 131200 <foo1a>
|
||||
# ORPH1-NEXT: 2005c: addiu $25, $25, 128
|
||||
# ORPH1-NEXT: 20060: nop
|
||||
|
||||
# ORPH1: __LA25Thunk_foo1b:
|
||||
# ORPH1-NEXT: 20064: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20064: lui $25, 2
|
||||
# ORPH1-NEXT: 20068: j 131204 <foo1b>
|
||||
# ORPH1-NEXT: 2006c: addiu $25, $25, 132
|
||||
# ORPH1-NEXT: 20070: nop
|
||||
|
||||
# ORPH1: foo1a:
|
||||
# ORPH1-NEXT: 20080: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20080: nop
|
||||
|
||||
# ORPH1: foo1b:
|
||||
# ORPH1-NEXT: 20084: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 20084: nop
|
||||
|
||||
# ORPH1: __LA25Thunk_foo2:
|
||||
# ORPH1-NEXT: 20088: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20088: lui $25, 2
|
||||
# ORPH1-NEXT: 2008c: j 131232 <foo2>
|
||||
# ORPH1-NEXT: 20090: addiu $25, $25, 160
|
||||
# ORPH1-NEXT: 20094: nop
|
||||
|
||||
# ORPH1: foo2:
|
||||
# ORPH1-NEXT: 200a0: 00 00 00 00 nop
|
||||
# ORPH1-NEXT: 200a0: nop
|
||||
|
||||
# Test script with orphans added to new OutputSection, the .text.1 and
|
||||
# .text.2 sections will form a new OutputSection .text
|
||||
# RUN: echo "SECTIONS { .out 0x20000 : { *(.text) } }" > %t3.script
|
||||
# RUN: ld.lld --script %t3.script %t-npic.o %t-pic.o %t-sto-pic.o -o %t3.exe
|
||||
# RUN: llvm-objdump -d %t3.exe | FileCheck -check-prefix=ORPH2 %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t3.exe | FileCheck -check-prefix=ORPH2 %s
|
||||
|
||||
# ORPH2: Disassembly of section .out:
|
||||
# ORPH2-EMPTY:
|
||||
# ORPH2-NEXT: __start:
|
||||
# ORPH2-NEXT: 20000: 0c 00 80 18 jal 131168 <__LA25Thunk_foo1a>
|
||||
# ORPH2-NEXT: 20004: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20008: 0c 00 80 22 jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH2-NEXT: 2000c: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20010: 0c 00 80 1c jal 131184 <__LA25Thunk_foo1b>
|
||||
# ORPH2-NEXT: 20014: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20018: 0c 00 80 22 jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH2-NEXT: 2001c: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20020: 0c 00 80 0c jal 131120 <__LA25Thunk_fpic>
|
||||
# ORPH2-NEXT: 20024: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20028: 0c 00 80 14 jal 131152 <fnpic>
|
||||
# ORPH2-NEXT: 2002c: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20000: jal 131168 <__LA25Thunk_foo1a>
|
||||
# ORPH2-NEXT: 20004: nop
|
||||
# ORPH2-NEXT: 20008: jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH2-NEXT: 2000c: nop
|
||||
# ORPH2-NEXT: 20010: jal 131184 <__LA25Thunk_foo1b>
|
||||
# ORPH2-NEXT: 20014: nop
|
||||
# ORPH2-NEXT: 20018: jal 131208 <__LA25Thunk_foo2>
|
||||
# ORPH2-NEXT: 2001c: nop
|
||||
# ORPH2-NEXT: 20020: jal 131120 <__LA25Thunk_fpic>
|
||||
# ORPH2-NEXT: 20024: nop
|
||||
# ORPH2-NEXT: 20028: jal 131152 <fnpic>
|
||||
# ORPH2-NEXT: 2002c: nop
|
||||
|
||||
# ORPH2: __LA25Thunk_fpic:
|
||||
# ORPH2-NEXT: 20030: 3c 19 00 02 lui $25, 2
|
||||
# ORPH2-NEXT: 20034: 08 00 80 10 j 131136 <fpic>
|
||||
# ORPH2-NEXT: 20038: 27 39 00 40 addiu $25, $25, 64
|
||||
# ORPH2-NEXT: 2003c: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20030: lui $25, 2
|
||||
# ORPH2-NEXT: 20034: j 131136 <fpic>
|
||||
# ORPH2-NEXT: 20038: addiu $25, $25, 64
|
||||
# ORPH2-NEXT: 2003c: nop
|
||||
|
||||
# ORPH2: fpic:
|
||||
# ORPH2-NEXT: 20040: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20040: nop
|
||||
|
||||
# ORPH2: fnpic:
|
||||
# ORPH2-NEXT: 20050: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20050: nop
|
||||
# ORPH2-EMPTY:
|
||||
# ORPH2-NEXT: Disassembly of section .text:
|
||||
# ORPH2-EMPTY:
|
||||
|
||||
# ORPH2-NEXT: __LA25Thunk_foo1a:
|
||||
# ORPH2-NEXT: 20060: 3c 19 00 02 lui $25, 2
|
||||
# ORPH2-NEXT: 20064: 08 00 80 20 j 131200 <foo1a>
|
||||
# ORPH2-NEXT: 20068: 27 39 00 80 addiu $25, $25, 128
|
||||
# ORPH2-NEXT: 2006c: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20060: lui $25, 2
|
||||
# ORPH2-NEXT: 20064: j 131200 <foo1a>
|
||||
# ORPH2-NEXT: 20068: addiu $25, $25, 128
|
||||
# ORPH2-NEXT: 2006c: nop
|
||||
|
||||
# ORPH2: __LA25Thunk_foo1b:
|
||||
# ORPH2-NEXT: 20070: 3c 19 00 02 lui $25, 2
|
||||
# ORPH2-NEXT: 20074: 08 00 80 21 j 131204 <foo1b>
|
||||
# ORPH2-NEXT: 20078: 27 39 00 84 addiu $25, $25, 132
|
||||
# ORPH2-NEXT: 2007c: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20070: lui $25, 2
|
||||
# ORPH2-NEXT: 20074: j 131204 <foo1b>
|
||||
# ORPH2-NEXT: 20078: addiu $25, $25, 132
|
||||
# ORPH2-NEXT: 2007c: nop
|
||||
|
||||
# ORPH2: foo1a:
|
||||
# ORPH2-NEXT: 20080: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20080: nop
|
||||
|
||||
# ORPH2: foo1b:
|
||||
# ORPH2-NEXT: 20084: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 20084: nop
|
||||
|
||||
# ORPH2: __LA25Thunk_foo2:
|
||||
# ORPH2-NEXT: 20088: 3c 19 00 02 lui $25, 2
|
||||
# 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: 20088: lui $25, 2
|
||||
# ORPH2-NEXT: 2008c: j 131232 <foo2>
|
||||
# ORPH2-NEXT: 20090: addiu $25, $25, 160
|
||||
# ORPH2-NEXT: 20094: nop
|
||||
|
||||
# ORPH2: foo2:
|
||||
# ORPH2-NEXT: 200a0: 00 00 00 00 nop
|
||||
# ORPH2-NEXT: 200a0: nop
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -mcpu=mips32r2 \
|
||||
# RUN: %s -o %t-npic-r2.o
|
||||
# RUN: ld.lld %t-npic-r2.o %t-pic-r2.o %t-sto-pic-r2.o -o %t-r2.exe
|
||||
# RUN: llvm-objdump -d %t-r2.exe | FileCheck --check-prefixes=CHECK,R2 %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t-r2.exe | FileCheck --check-prefixes=CHECK,R2 %s
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -mcpu=mips32r6 \
|
||||
# RUN: %p/Inputs/mips-fpic.s -o %t-fpic.o
|
||||
@@ -24,134 +24,134 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -mcpu=mips32r6 \
|
||||
# RUN: %s -o %t-npic-r6.o
|
||||
# RUN: ld.lld %t-npic-r6.o %t-pic-r6.o %t-sto-pic-r6.o -o %t-r6.exe
|
||||
# RUN: llvm-objdump -d %t-r6.exe | FileCheck --check-prefixes=CHECK,R6 %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t-r6.exe | FileCheck --check-prefixes=CHECK,R6 %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 0c 00 80 0c jal 131120 <__LA25Thunk_foo1a>
|
||||
# CHECK-NEXT: 20004: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20008: 0c 00 80 16 jal 131160 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2000c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20010: 0c 00 80 10 jal 131136 <__LA25Thunk_foo1b>
|
||||
# CHECK-NEXT: 20014: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20018: 0c 00 80 16 jal 131160 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2001c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20020: 0c 00 80 1d jal 131188 <__LA25Thunk_fpic>
|
||||
# CHECK-NEXT: 20024: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20028: 0c 00 80 28 jal 131232 <fnpic>
|
||||
# CHECK-NEXT: 2002c: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: jal 131120 <__LA25Thunk_foo1a>
|
||||
# CHECK-NEXT: 20004: nop
|
||||
# CHECK-NEXT: 20008: jal 131160 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2000c: nop
|
||||
# CHECK-NEXT: 20010: jal 131136 <__LA25Thunk_foo1b>
|
||||
# CHECK-NEXT: 20014: nop
|
||||
# CHECK-NEXT: 20018: jal 131160 <__LA25Thunk_foo2>
|
||||
# CHECK-NEXT: 2001c: nop
|
||||
# CHECK-NEXT: 20020: jal 131188 <__LA25Thunk_fpic>
|
||||
# CHECK-NEXT: 20024: nop
|
||||
# CHECK-NEXT: 20028: jal 131232 <fnpic>
|
||||
# CHECK-NEXT: 2002c: nop
|
||||
#
|
||||
# CHECK: __LA25Thunk_foo1a:
|
||||
# R2: 20030: 3c 19 00 02 lui $25, 2
|
||||
# R6: 20030: 3c 19 00 02 aui $25, $zero, 2
|
||||
# CHECK: 20034: 08 00 80 14 j 131152 <foo1a>
|
||||
# CHECK-NEXT: 20038: 27 39 00 50 addiu $25, $25, 80
|
||||
# CHECK-NEXT: 2003c: 00 00 00 00 nop
|
||||
# R2: 20030: lui $25, 2
|
||||
# R6: 20030: aui $25, $zero, 2
|
||||
# CHECK: 20034: j 131152 <foo1a>
|
||||
# CHECK-NEXT: 20038: addiu $25, $25, 80
|
||||
# CHECK-NEXT: 2003c: nop
|
||||
|
||||
# CHECK: __LA25Thunk_foo1b:
|
||||
# R2: 20040: 3c 19 00 02 lui $25, 2
|
||||
# R6: 20040: 3c 19 00 02 aui $25, $zero, 2
|
||||
# CHECK-NEXT: 20044: 08 00 80 15 j 131156 <foo1b>
|
||||
# CHECK-NEXT: 20048: 27 39 00 54 addiu $25, $25, 84
|
||||
# CHECK-NEXT: 2004c: 00 00 00 00 nop
|
||||
# R2: 20040: lui $25, 2
|
||||
# R6: 20040: aui $25, $zero, 2
|
||||
# CHECK-NEXT: 20044: j 131156 <foo1b>
|
||||
# CHECK-NEXT: 20048: addiu $25, $25, 84
|
||||
# CHECK-NEXT: 2004c: nop
|
||||
|
||||
# CHECK: foo1a:
|
||||
# CHECK-NEXT: 20050: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20050: nop
|
||||
|
||||
# CHECK: foo1b:
|
||||
# CHECK-NEXT: 20054: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20054: nop
|
||||
|
||||
# CHECK: __LA25Thunk_foo2:
|
||||
# R2: 20058: 3c 19 00 02 lui $25, 2
|
||||
# R6: 20058: 3c 19 00 02 aui $25, $zero, 2
|
||||
# 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
|
||||
# R2: 20058: lui $25, 2
|
||||
# R6: 20058: aui $25, $zero, 2
|
||||
# CHECK-NEXT: 2005c: j 131184 <foo2>
|
||||
# CHECK-NEXT: 20060: addiu $25, $25, 112
|
||||
# CHECK-NEXT: 20064: nop
|
||||
|
||||
# CHECK: foo2:
|
||||
# CHECK-NEXT: 20070: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20070: nop
|
||||
|
||||
# CHECK: __LA25Thunk_fpic:
|
||||
# R2: 20074: 3c 19 00 02 lui $25, 2
|
||||
# R6: 20074: 3c 19 00 02 aui $25, $zero, 2
|
||||
# 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
|
||||
# R2: 20074: lui $25, 2
|
||||
# R6: 20074: aui $25, $zero, 2
|
||||
# CHECK-NEXT: 20078: j 131216 <fpic>
|
||||
# CHECK-NEXT: 2007c: addiu $25, $25, 144
|
||||
# CHECK-NEXT: 20080: nop
|
||||
|
||||
# CHECK: fpic:
|
||||
# CHECK-NEXT: 20090: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20090: nop
|
||||
|
||||
# CHECK: fnpic:
|
||||
# CHECK-NEXT: 200a0: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 200a0: nop
|
||||
|
||||
# Make sure the thunks are created properly no matter how
|
||||
# objects are laid out.
|
||||
#
|
||||
# RUN: ld.lld %t-pic-r2.o %t-npic-r2.o %t-sto-pic-r2.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck -check-prefixes=REVERSE,REV-R2 %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck -check-prefixes=REVERSE,REV-R2 %s
|
||||
#
|
||||
# RUN: ld.lld %t-pic-r6.o %t-npic-r6.o %t-sto-pic-r6.o -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck -check-prefixes=REVERSE,REV-R6 %s
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck -check-prefixes=REVERSE,REV-R6 %s
|
||||
|
||||
# REVERSE: Disassembly of section .text:
|
||||
# REVERSE-EMPTY:
|
||||
# REVERSE-NEXT: __LA25Thunk_foo1a:
|
||||
# REV-R2: 20000: 3c 19 00 02 lui $25, 2
|
||||
# REV-R6: 20000: 3c 19 00 02 aui $25, $zero, 2
|
||||
# REVERSE: 20004: 08 00 80 08 j 131104 <foo1a>
|
||||
# REVERSE-NEXT: 20008: 27 39 00 20 addiu $25, $25, 32
|
||||
# REVERSE-NEXT: 2000c: 00 00 00 00 nop
|
||||
# REV-R2: 20000: lui $25, 2
|
||||
# REV-R6: 20000: aui $25, $zero, 2
|
||||
# REVERSE: 20004: j 131104 <foo1a>
|
||||
# REVERSE-NEXT: 20008: addiu $25, $25, 32
|
||||
# REVERSE-NEXT: 2000c: nop
|
||||
|
||||
# REVERSE: __LA25Thunk_foo1b:
|
||||
# REV-R2: 20010: 3c 19 00 02 lui $25, 2
|
||||
# REV-R6: 20010: 3c 19 00 02 aui $25, $zero, 2
|
||||
# REVERSE: 20014: 08 00 80 09 j 131108 <foo1b>
|
||||
# REVERSE-NEXT: 20018: 27 39 00 24 addiu $25, $25, 36
|
||||
# REVERSE-NEXT: 2001c: 00 00 00 00 nop
|
||||
# REV-R2: 20010: lui $25, 2
|
||||
# REV-R6: 20010: aui $25, $zero, 2
|
||||
# REVERSE: 20014: j 131108 <foo1b>
|
||||
# REVERSE-NEXT: 20018: addiu $25, $25, 36
|
||||
# REVERSE-NEXT: 2001c: nop
|
||||
|
||||
# REVERSE: foo1a:
|
||||
# REVERSE-NEXT: 20020: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20020: nop
|
||||
|
||||
# REVERSE: foo1b:
|
||||
# REVERSE-NEXT: 20024: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20024: nop
|
||||
|
||||
# REVERSE: __LA25Thunk_foo2:
|
||||
# REV-R2: 20028: 3c 19 00 02 lui $25, 2
|
||||
# REV-R6: 20028: 3c 19 00 02 aui $25, $zero, 2
|
||||
# REVERSE: 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
|
||||
# REV-R2: 20028: lui $25, 2
|
||||
# REV-R6: 20028: aui $25, $zero, 2
|
||||
# REVERSE: 2002c: j 131136 <foo2>
|
||||
# REVERSE-NEXT: 20030: addiu $25, $25, 64
|
||||
# REVERSE-NEXT: 20034: nop
|
||||
|
||||
# REVERSE: foo2:
|
||||
# REVERSE-NEXT: 20040: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20040: nop
|
||||
|
||||
# REVERSE: __start:
|
||||
# REVERSE-NEXT: 20050: 0c 00 80 00 jal 131072 <__LA25Thunk_foo1a>
|
||||
# REVERSE-NEXT: 20054: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20058: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 2005c: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20060: 0c 00 80 04 jal 131088 <__LA25Thunk_foo1b>
|
||||
# REVERSE-NEXT: 20064: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20068: 0c 00 80 0a jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 2006c: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20070: 0c 00 80 20 jal 131200 <__LA25Thunk_fpic>
|
||||
# REVERSE-NEXT: 20074: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20078: 0c 00 80 28 jal 131232 <fnpic>
|
||||
# REVERSE-NEXT: 2007c: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20050: jal 131072 <__LA25Thunk_foo1a>
|
||||
# REVERSE-NEXT: 20054: nop
|
||||
# REVERSE-NEXT: 20058: jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 2005c: nop
|
||||
# REVERSE-NEXT: 20060: jal 131088 <__LA25Thunk_foo1b>
|
||||
# REVERSE-NEXT: 20064: nop
|
||||
# REVERSE-NEXT: 20068: jal 131112 <__LA25Thunk_foo2>
|
||||
# REVERSE-NEXT: 2006c: nop
|
||||
# REVERSE-NEXT: 20070: jal 131200 <__LA25Thunk_fpic>
|
||||
# REVERSE-NEXT: 20074: nop
|
||||
# REVERSE-NEXT: 20078: jal 131232 <fnpic>
|
||||
# REVERSE-NEXT: 2007c: nop
|
||||
|
||||
# REVERSE: __LA25Thunk_fpic:
|
||||
# REV-R2: 20080: 3c 19 00 02 lui $25, 2
|
||||
# REV-R6: 20080: 3c 19 00 02 aui $25, $zero, 2
|
||||
# REVERSE: 20084: 08 00 80 24 j 131216 <fpic>
|
||||
# REVERSE-NEXT: 20088: 27 39 00 90 addiu $25, $25, 144
|
||||
# REVERSE-NEXT: 2008c: 00 00 00 00 nop
|
||||
# REV-R2: 20080: lui $25, 2
|
||||
# REV-R6: 20080: aui $25, $zero, 2
|
||||
# REVERSE: 20084: j 131216 <fpic>
|
||||
# REVERSE-NEXT: 20088: addiu $25, $25, 144
|
||||
# REVERSE-NEXT: 2008c: nop
|
||||
|
||||
# REVERSE: fpic:
|
||||
# REVERSE-NEXT: 20090: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 20090: nop
|
||||
|
||||
# REVERSE: fnpic:
|
||||
# REVERSE-NEXT: 200a0: 00 00 00 00 nop
|
||||
# REVERSE-NEXT: 200a0: nop
|
||||
|
||||
.text
|
||||
.globl __start
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mcpu=mips32r6 %S/Inputs/mips-dynamic.s -o %t2.o
|
||||
# RUN: ld.lld %t1.o %t2.o -o %t.exe
|
||||
# RUN: llvm-objdump -mcpu=mips32r6 -d -t -s %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -mcpu=mips32r6 -d -t -s --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
.text
|
||||
.globl __start
|
||||
@@ -24,17 +24,17 @@ __start:
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: ec c8 00 08 lwpc $6, 32
|
||||
# CHECK-NEXT: 20000: lwpc $6, 32
|
||||
# ^-- (0x20020-0x20000)>>2
|
||||
# CHECK-NEXT: 20004: 20 a6 00 06 beqc $5, $6, 28
|
||||
# CHECK-NEXT: 20004: beqc $5, $6, 28
|
||||
# ^-- (0x20020-4-0x20004)>>2
|
||||
# CHECK-NEXT: 20008: d9 20 00 05 beqzc $9, 24
|
||||
# CHECK-NEXT: 20008: beqzc $9, 24
|
||||
# ^-- (0x20020-4-0x20008)>>2
|
||||
# CHECK-NEXT: 2000c: c8 00 00 04 bc 20
|
||||
# CHECK-NEXT: 2000c: bc 20
|
||||
# ^-- (0x20020-4-0x2000c)>>2
|
||||
# CHECK-NEXT: 20010: ec 5f 00 00 aluipc $2, 0
|
||||
# CHECK-NEXT: 20010: aluipc $2, 0
|
||||
# ^-- %hi(0x20020-0x20010)
|
||||
# CHECK-NEXT: 20014: 24 42 00 0c addiu $2, $2, 12
|
||||
# CHECK-NEXT: 20014: addiu $2, $2, 12
|
||||
# ^-- %lo(0x20020-0x20014)
|
||||
|
||||
# CHECK: Contents of section .data:
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: %S/Inputs/mips-dynamic.s -o %t.so.o
|
||||
# RUN: ld.lld %t.so.o -shared -o %t.so
|
||||
# RUN: ld.lld %t.so.o -shared -soname=t.so -o %t.so
|
||||
# RUN: ld.lld %t.o %t.so -o %t.exe
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t.exe | FileCheck %s
|
||||
|
||||
|
||||
@@ -6,39 +6,39 @@
|
||||
# RUN: -target-abi n32 %s -o %t1.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
|
||||
# RUN: -target-abi n32 %S/Inputs/mips-dynamic.s -o %t2.o
|
||||
# RUN: ld.lld %t2.o -shared -o %t.so
|
||||
# RUN: ld.lld %t2.o -shared -soname=t.so -o %t.so
|
||||
# RUN: ld.lld %t1.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=DEFAULT,CHECK
|
||||
# RUN: ld.lld %t2.o -shared -o %t.so -z hazardplt
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s --check-prefixes=DEFAULT,CHECK
|
||||
# RUN: ld.lld %t2.o -shared -soname=t.so -o %t.so -z hazardplt
|
||||
# RUN: ld.lld %t1.o %t.so -o %t.exe -z hazardplt
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=HAZARDPLT,CHECK
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s --check-prefixes=HAZARDPLT,CHECK
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 0c 00 80 0c jal 131120
|
||||
# ^-- 0x20030 gotplt[foo0]
|
||||
# CHECK-NEXT: 20004: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: jal 131120
|
||||
# ^-- 0x20030 gotplt[foo0]
|
||||
# CHECK-NEXT: 20004: nop
|
||||
#
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: Disassembly of section .plt:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: .plt:
|
||||
# CHECK-NEXT: 20010: 3c 0e 00 03 lui $14, 3
|
||||
# CHECK-NEXT: 20014: 8d d9 00 04 lw $25, 4($14)
|
||||
# CHECK-NEXT: 20018: 25 ce 00 04 addiu $14, $14, 4
|
||||
# CHECK-NEXT: 2001c: 03 0e c0 23 subu $24, $24, $14
|
||||
# CHECK-NEXT: 20020: 03 e0 78 25 move $15, $ra
|
||||
# CHECK-NEXT: 20024: 00 18 c0 82 srl $24, $24, 2
|
||||
# DEFAULT: 20028: 03 20 f8 09 jalr $25
|
||||
# HAZARDPLT: 20028: 03 20 fc 09 jalr.hb $25
|
||||
# CHECK-NEXT: 2002c: 27 18 ff fe addiu $24, $24, -2
|
||||
# CHECK-NEXT: 20010: lui $14, 3
|
||||
# CHECK-NEXT: 20014: lw $25, 4($14)
|
||||
# CHECK-NEXT: 20018: addiu $14, $14, 4
|
||||
# CHECK-NEXT: 2001c: subu $24, $24, $14
|
||||
# CHECK-NEXT: 20020: move $15, $ra
|
||||
# CHECK-NEXT: 20024: srl $24, $24, 2
|
||||
# DEFAULT: 20028: jalr $25
|
||||
# HAZARDPLT: 20028: jalr.hb $25
|
||||
# CHECK-NEXT: 2002c: addiu $24, $24, -2
|
||||
|
||||
# CHECK-NEXT: 20030: 3c 0f 00 03 lui $15, 3
|
||||
# CHECK-NEXT: 20034: 8d f9 00 0c lw $25, 12($15)
|
||||
# DEFAULT: 20038: 03 20 00 08 jr $25
|
||||
# HAZARDPLT: 20038: 03 20 04 08 jr.hb $25
|
||||
# CHECK-NEXT: 2003c: 25 f8 00 0c addiu $24, $15, 12
|
||||
# CHECK-NEXT: 20030: lui $15, 3
|
||||
# CHECK-NEXT: 20034: lw $25, 12($15)
|
||||
# DEFAULT: 20038: jr $25
|
||||
# HAZARDPLT: 20038: jr.hb $25
|
||||
# CHECK-NEXT: 2003c: addiu $24, $15, 12
|
||||
|
||||
.text
|
||||
.global __start
|
||||
|
||||
@@ -3,37 +3,37 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
|
||||
# RUN: %S/Inputs/mips-dynamic.s -o %t-so.o
|
||||
# RUN: ld.lld %t-so.o -shared -o %t.so
|
||||
# RUN: ld.lld %t-so.o -shared -soname=t.so -o %t.so
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=CHECK,DEFAULT
|
||||
# RUN: ld.lld %t-so.o -shared -o %t.so -z hazardplt
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s --check-prefixes=CHECK,DEFAULT
|
||||
# RUN: ld.lld %t-so.o -shared -soname=t.so -o %t.so -z hazardplt
|
||||
# RUN: ld.lld %t.o %t.so -o %t.exe -z hazardplt
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=CHECK,HAZARDPLT
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s --check-prefixes=CHECK,HAZARDPLT
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 0c 00 80 0c jal 131120
|
||||
# CHECK-NEXT: 20004: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: jal 131120
|
||||
# CHECK-NEXT: 20004: nop
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: Disassembly of section .plt:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: .plt:
|
||||
# CHECK-NEXT: 20010: 3c 0e 00 03 lui $14, 3
|
||||
# CHECK-NEXT: 20014: dd d9 00 08 ld $25, 8($14)
|
||||
# CHECK-NEXT: 20018: 25 ce 00 08 addiu $14, $14, 8
|
||||
# CHECK-NEXT: 2001c: 03 0e c0 23 subu $24, $24, $14
|
||||
# CHECK-NEXT: 20020: 03 e0 78 25 move $15, $ra
|
||||
# CHECK-NEXT: 20024: 00 18 c0 c2 srl $24, $24, 3
|
||||
# DEFAULT: 20028: 03 20 f8 09 jalr $25
|
||||
# HAZARDPLT: 20028: 03 20 fc 09 jalr.hb $25
|
||||
# CHECK-NEXT: 2002c: 27 18 ff fe addiu $24, $24, -2
|
||||
# CHECK-NEXT: 20030: 3c 0f 00 03 lui $15, 3
|
||||
# CHECK-NEXT: 20034: dd f9 00 18 ld $25, 24($15)
|
||||
# DEFAULT: 20038: 03 20 00 08 jr $25
|
||||
# HAZARDPLT: 20038: 03 20 04 08 jr.hb $25
|
||||
# CHECK-NEXT: 2003c: 65 f8 00 18 daddiu $24, $15, 24
|
||||
# CHECK-NEXT: 20010: lui $14, 3
|
||||
# CHECK-NEXT: 20014: ld $25, 8($14)
|
||||
# CHECK-NEXT: 20018: addiu $14, $14, 8
|
||||
# CHECK-NEXT: 2001c: subu $24, $24, $14
|
||||
# CHECK-NEXT: 20020: move $15, $ra
|
||||
# CHECK-NEXT: 20024: srl $24, $24, 3
|
||||
# DEFAULT: 20028: jalr $25
|
||||
# HAZARDPLT: 20028: jalr.hb $25
|
||||
# CHECK-NEXT: 2002c: addiu $24, $24, -2
|
||||
# CHECK-NEXT: 20030: lui $15, 3
|
||||
# CHECK-NEXT: 20034: ld $25, 24($15)
|
||||
# DEFAULT: 20038: jr $25
|
||||
# HAZARDPLT: 20038: jr.hb $25
|
||||
# CHECK-NEXT: 2003c: daddiu $24, $15, 24
|
||||
|
||||
.text
|
||||
.option pic0
|
||||
|
||||
@@ -5,39 +5,39 @@
|
||||
# RUN: -mcpu=mips32r6 %s -o %t1.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: -mcpu=mips32r6 %S/Inputs/mips-dynamic.s -o %t2.o
|
||||
# RUN: ld.lld %t2.o -shared -o %t.so
|
||||
# RUN: ld.lld %t2.o -shared -soname=t.so -o %t.so
|
||||
# RUN: ld.lld %t1.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=DEFAULT,CHECK
|
||||
# RUN: ld.lld %t2.o -shared -o %t.so -z hazardplt
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s --check-prefixes=DEFAULT,CHECK
|
||||
# RUN: ld.lld %t2.o -shared -soname=t.so -o %t.so -z hazardplt
|
||||
# RUN: ld.lld %t1.o %t.so -o %t.exe -z hazardplt
|
||||
# RUN: llvm-objdump -d %t.exe | FileCheck %s --check-prefixes=HAZARDPLT,CHECK
|
||||
# RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s --check-prefixes=HAZARDPLT,CHECK
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 0c 00 80 0c jal 131120
|
||||
# ^-- 0x20030 gotplt[foo0]
|
||||
# CHECK-NEXT: 20004: 00 00 00 00 nop
|
||||
# CHECK-NEXT: 20000: jal 131120
|
||||
# ^-- 0x20030 gotplt[foo0]
|
||||
# CHECK-NEXT: 20004: nop
|
||||
#
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: Disassembly of section .plt:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: .plt:
|
||||
# CHECK-NEXT: 20010: 3c 1c 00 03 aui $gp, $zero, 3
|
||||
# CHECK-NEXT: 20014: 8f 99 00 04 lw $25, 4($gp)
|
||||
# CHECK-NEXT: 20018: 27 9c 00 04 addiu $gp, $gp, 4
|
||||
# CHECK-NEXT: 2001c: 03 1c c0 23 subu $24, $24, $gp
|
||||
# CHECK-NEXT: 20020: 03 e0 78 25 move $15, $ra
|
||||
# CHECK-NEXT: 20024: 00 18 c0 82 srl $24, $24, 2
|
||||
# DEFAULT: 20028: 03 20 f8 09 jalr $25
|
||||
# HAZARDPLT: 20028: 03 20 fc 09 jalr.hb $25
|
||||
# CHECK-NEXT: 2002c: 27 18 ff fe addiu $24, $24, -2
|
||||
# CHECK-NEXT: 20010: aui $gp, $zero, 3
|
||||
# CHECK-NEXT: 20014: lw $25, 4($gp)
|
||||
# CHECK-NEXT: 20018: addiu $gp, $gp, 4
|
||||
# CHECK-NEXT: 2001c: subu $24, $24, $gp
|
||||
# CHECK-NEXT: 20020: move $15, $ra
|
||||
# CHECK-NEXT: 20024: srl $24, $24, 2
|
||||
# DEFAULT: 20028: jalr $25
|
||||
# HAZARDPLT: 20028: jalr.hb $25
|
||||
# CHECK-NEXT: 2002c: addiu $24, $24, -2
|
||||
|
||||
# CHECK-NEXT: 20030: 3c 0f 00 03 aui $15, $zero, 3
|
||||
# CHECK-NEXT: 20034: 8d f9 00 0c lw $25, 12($15)
|
||||
# DEFAULT: 20038: 03 20 00 09 jr $25
|
||||
# HAZARDPLT: 20038: 03 20 04 09 jr.hb $25
|
||||
# CHECK-NEXT: 2003c: 25 f8 00 0c addiu $24, $15, 12
|
||||
# CHECK-NEXT: 20030: aui $15, $zero, 3
|
||||
# CHECK-NEXT: 20034: lw $25, 12($15)
|
||||
# DEFAULT: 20038: jr $25
|
||||
# HAZARDPLT: 20038: jr.hb $25
|
||||
# CHECK-NEXT: 2003c: addiu $24, $15, 12
|
||||
|
||||
.text
|
||||
.global __start
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
|
||||
# RUN: %p/Inputs/mips-tls.s -o %t.so.o
|
||||
# RUN: ld.lld -shared %t.so.o -o %t.so
|
||||
# RUN: ld.lld -shared %t.so.o -soname=t.so -o %t.so
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux %s -o %t.o
|
||||
|
||||
# RUN: ld.lld %t.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d -s -t %t.exe | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-objdump -d -s -t --no-show-raw-insn %t.exe | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t.exe | FileCheck %s
|
||||
|
||||
# RUN: ld.lld -shared %t.o %t.so -o %t-out.so
|
||||
# RUN: llvm-objdump -d -s -t %t-out.so | FileCheck -check-prefix=DIS-SO %s
|
||||
# RUN: llvm-objdump -d -s -t --no-show-raw-insn %t-out.so | FileCheck -check-prefix=DIS-SO %s
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t-out.so | FileCheck -check-prefix=SO %s
|
||||
|
||||
# DIS: __start:
|
||||
# DIS-NEXT: 20000: 24 62 80 30 addiu $2, $3, -32720
|
||||
# DIS-NEXT: 20004: 24 62 80 20 addiu $2, $3, -32736
|
||||
# DIS-NEXT: 20008: 24 62 80 40 addiu $2, $3, -32704
|
||||
# DIS-NEXT: 2000c: 24 62 80 50 addiu $2, $3, -32688
|
||||
# DIS-NEXT: 20010: 24 62 80 28 addiu $2, $3, -32728
|
||||
# DIS-NEXT: 20000: addiu $2, $3, -32720
|
||||
# DIS-NEXT: 20004: addiu $2, $3, -32736
|
||||
# DIS-NEXT: 20008: addiu $2, $3, -32704
|
||||
# DIS-NEXT: 2000c: addiu $2, $3, -32688
|
||||
# DIS-NEXT: 20010: addiu $2, $3, -32728
|
||||
|
||||
# DIS: Contents of section .got:
|
||||
# DIS-NEXT: 40010 00000000 00000000 80000000 00000000
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe
|
||||
# RUN: llvm-objdump -d -t %t.exe | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-objdump -d -t --no-show-raw-insn %t.exe | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t.exe | FileCheck %s
|
||||
|
||||
# RUN: ld.lld %t.o -shared -o %t.so
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t.so | FileCheck -check-prefix=SO %s
|
||||
|
||||
# DIS: __start:
|
||||
# DIS-NEXT: 20000: 24 62 00 00 addiu $2, $3, 0
|
||||
# DIS-NEXT: 20000: addiu $2, $3, 0
|
||||
# %hi(loc0 - .tdata - 0x8000) --^
|
||||
# DIS-NEXT: 20004: 24 62 80 00 addiu $2, $3, -32768
|
||||
# DIS-NEXT: 20004: addiu $2, $3, -32768
|
||||
# %lo(loc0 - .tdata - 0x8000) --^
|
||||
# DIS-NEXT: 20008: 24 62 00 00 addiu $2, $3, 0
|
||||
# DIS-NEXT: 20008: addiu $2, $3, 0
|
||||
# %hi(loc0 - .tdata - 0x7000) --^
|
||||
# DIS-NEXT: 2000c: 24 62 90 00 addiu $2, $3, -28672
|
||||
# DIS-NEXT: 2000c: addiu $2, $3, -28672
|
||||
# %lo(loc0 - .tdata - 0x7000) --^
|
||||
|
||||
# DIS: 00000000 l O .tdata 00000000 loc0
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
|
||||
# RUN: %p/Inputs/mips-tls.s -o %t.so.o
|
||||
# RUN: ld.lld -shared %t.so.o -o %t.so
|
||||
# RUN: ld.lld -shared %t.so.o -soname=t.so -o %t.so
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
|
||||
# RUN: ld.lld %t.o %t.so -o %t.exe
|
||||
# RUN: llvm-objdump -d -s -t %t.exe | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-objdump -d -s -t --no-show-raw-insn %t.exe | FileCheck -check-prefix=DIS %s
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t.exe | FileCheck %s
|
||||
|
||||
# RUN: ld.lld -shared %t.o %t.so -o %t-out.so
|
||||
# RUN: llvm-objdump -d -s -t %t-out.so | FileCheck -check-prefix=DIS-SO %s
|
||||
# RUN: llvm-objdump -d -s -t --no-show-raw-insn %t-out.so | FileCheck -check-prefix=DIS-SO %s
|
||||
# RUN: llvm-readobj -r --mips-plt-got %t-out.so | FileCheck -check-prefix=SO %s
|
||||
|
||||
# DIS: __start:
|
||||
# DIS-NEXT: 20000: 24 62 80 20 addiu $2, $3, -32736
|
||||
# DIS-NEXT: 20004: 24 62 80 18 addiu $2, $3, -32744
|
||||
# DIS-NEXT: 20008: 24 62 80 28 addiu $2, $3, -32728
|
||||
# DIS-NEXT: 2000c: 24 62 80 30 addiu $2, $3, -32720
|
||||
# DIS-NEXT: 20010: 24 62 80 1c addiu $2, $3, -32740
|
||||
# DIS-NEXT: 20000: addiu $2, $3, -32736
|
||||
# DIS-NEXT: 20004: addiu $2, $3, -32744
|
||||
# DIS-NEXT: 20008: addiu $2, $3, -32728
|
||||
# DIS-NEXT: 2000c: addiu $2, $3, -32720
|
||||
# DIS-NEXT: 20010: addiu $2, $3, -32740
|
||||
|
||||
# DIS: Contents of section .got:
|
||||
# DIS-NEXT: 40010 00000000 80000000 00000000 ffff9004
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux -mcpu=mips32r6 -o %t.o %s
|
||||
# RUN: ld.lld -r -o %t %t.o %t.o
|
||||
# RUN: llvm-objdump -d -r %t | FileCheck --check-prefix=EB %s
|
||||
# RUN: llvm-objdump -d -r --no-show-raw-insn %t | FileCheck --check-prefix=EB %s
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mipsel-unknown-linux -mcpu=mips32r6 -o %t.o %s
|
||||
# RUN: ld.lld -r -o %t %t.o %t.o
|
||||
# RUN: llvm-objdump -d -r %t | FileCheck --check-prefix=EL %s
|
||||
# RUN: llvm-objdump -d -r --no-show-raw-insn %t | FileCheck --check-prefix=EL %s
|
||||
|
||||
# EB: 8: 04 17 00 01 sigrie 1
|
||||
# EL: 8: 01 00 17 04 sigrie 1
|
||||
# EB: 8: sigrie 1
|
||||
# EL: 8: sigrie 1
|
||||
|
||||
.text
|
||||
lw $t9, %got(.data)($gp)
|
||||
|
||||
@@ -4,20 +4,20 @@
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld %t.o -o %t.exe
|
||||
# RUN: llvm-objdump -d -s -t %t.exe | FileCheck %s
|
||||
# RUN: llvm-objdump -d -s -t --no-show-raw-insn %t.exe | FileCheck %s
|
||||
|
||||
# CHECK: Disassembly of section .text:
|
||||
# CHECK-EMPTY:
|
||||
# CHECK-NEXT: __start:
|
||||
# CHECK-NEXT: 20000: 3c 02 00 00 lui $2, 0
|
||||
# CHECK-NEXT: 20004: 8c 42 80 24 lw $2, -32732($2)
|
||||
# CHECK-NEXT: 20008: 3c 02 00 00 lui $2, 0
|
||||
# CHECK-NEXT: 2000c: 8c 42 80 28 lw $2, -32728($2)
|
||||
# CHECK-NEXT: 20000: lui $2, 0
|
||||
# CHECK-NEXT: 20004: lw $2, -32732($2)
|
||||
# CHECK-NEXT: 20008: lui $2, 0
|
||||
# CHECK-NEXT: 2000c: lw $2, -32728($2)
|
||||
#
|
||||
# CHECK: bar:
|
||||
# CHECK-NEXT: 20010: 8c 42 80 20 lw $2, -32736($2)
|
||||
# CHECK-NEXT: 20014: 8c 42 80 18 lw $2, -32744($2)
|
||||
# CHECK-NEXT: 20018: 20 42 00 00 addi $2, $2, 0
|
||||
# CHECK-NEXT: 20010: lw $2, -32736($2)
|
||||
# CHECK-NEXT: 20014: lw $2, -32744($2)
|
||||
# CHECK-NEXT: 20018: addi $2, $2, 0
|
||||
|
||||
# CHECK: Contents of section .got:
|
||||
# CHECK-NEXT: 30010 00000000 80000000 00030000 00040000
|
||||
|
||||
Reference in New Issue
Block a user