blob: 8f530727a551e351b5ba8fbc2e032c5c50a69c67 [file] [log] [blame]
Chandler Carruthc58f2162018-01-22 22:05:251// REQUIRES: x86
2// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1.o
3// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %p/Inputs/shared.s -o %t2.o
Fangrui Song1eda21e2019-09-10 12:28:074// RUN: ld.lld -shared %t2.o -soname=so -o %t2.so
Chandler Carruthc58f2162018-01-22 22:05:255
6// RUN: ld.lld -shared %t1.o %t2.so -o %t.exe -z retpolineplt -z now
Daniel Thornburgh75cdab62022-10-29 03:04:087// RUN: llvm-objdump --no-print-imm-hex -d -s --no-show-raw-insn %t.exe | FileCheck %s
Chandler Carruthc58f2162018-01-22 22:05:258
Jordan Rupprecht9d4a6b12019-10-03 22:01:089// CHECK: Contents of section .got.plt:
10// CHECK-NEXT: 23f0 10230000 00000000 00000000 00000000
11// CHECK-NEXT: 2400 00000000 00000000 00000000 00000000
12// CHECK-NEXT: 2410 00000000 00000000
13
Chandler Carruthc58f2162018-01-22 22:05:2514// CHECK: Disassembly of section .plt:
Fangrui Song5387c2c2019-05-01 10:40:4815// CHECK-EMPTY:
Fangrui Song71e2ca62020-03-05 22:18:3816// CHECK-NEXT: <.plt>:
Fangrui Song87de9a02020-03-22 22:03:1017// CHECK-NEXT: 12d0: callq 0x12e0 <.plt+0x10>
Fangrui Song1eda21e2019-09-10 12:28:0718// CHECK-NEXT: pause
19// CHECK-NEXT: lfence
Fangrui Song87de9a02020-03-22 22:03:1020// CHECK-NEXT: jmp 0x12d5 <.plt+0x5>
Fangrui Song1eda21e2019-09-10 12:28:0721// CHECK-NEXT: int3
22// CHECK-NEXT: int3
23// CHECK-NEXT: int3
24// CHECK-NEXT: int3
Fangrui Songd4306e92019-09-16 07:05:3425// CHECK-NEXT: 12e0: movq %r11, (%rsp)
Fangrui Song1eda21e2019-09-10 12:28:0726// CHECK-NEXT: retq
27// CHECK-NEXT: int3
28// CHECK-NEXT: int3
29// CHECK-NEXT: int3
30// CHECK-NEXT: int3
31// CHECK-NEXT: int3
32// CHECK-NEXT: int3
33// CHECK-NEXT: int3
34// CHECK-NEXT: int3
35// CHECK-NEXT: int3
36// CHECK-NEXT: int3
37// CHECK-NEXT: int3
Fangrui Songd4306e92019-09-16 07:05:3438// CHECK-NEXT: 12f0: movq 4369(%rip), %r11
Fangrui Song87de9a02020-03-22 22:03:1039// CHECK-NEXT: jmp 0x12d0 <.plt>
Fangrui Song1eda21e2019-09-10 12:28:0740// CHECK-NEXT: int3
41// CHECK-NEXT: int3
42// CHECK-NEXT: int3
43// CHECK-NEXT: int3
Fangrui Songd4306e92019-09-16 07:05:3444// CHECK-NEXT: 1300: movq 4361(%rip), %r11
Fangrui Song87de9a02020-03-22 22:03:1045// CHECK-NEXT: jmp 0x12d0 <.plt>
Fangrui Song1eda21e2019-09-10 12:28:0746// CHECK-NEXT: int3
47// CHECK-NEXT: int3
48// CHECK-NEXT: int3
49// CHECK-NEXT: int3
Chandler Carruthc58f2162018-01-22 22:05:2550
Chandler Carruthc58f2162018-01-22 22:05:2551.global _start
52_start:
53 jmp bar@PLT
54 jmp zed@PLT