summaryrefslogtreecommitdiff
path: root/test/mach-o/parse-text-relocs-x86_64.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'test/mach-o/parse-text-relocs-x86_64.yaml')
-rw-r--r--test/mach-o/parse-text-relocs-x86_64.yaml204
1 files changed, 0 insertions, 204 deletions
diff --git a/test/mach-o/parse-text-relocs-x86_64.yaml b/test/mach-o/parse-text-relocs-x86_64.yaml
deleted file mode 100644
index 76df030c69ed9..0000000000000
--- a/test/mach-o/parse-text-relocs-x86_64.yaml
+++ /dev/null
@@ -1,204 +0,0 @@
-# RUN: ld64.lld -arch x86_64 -r -print_atoms %s -o %t | FileCheck %s \
-# RUN: && ld64.lld -arch x86_64 -r -print_atoms %t -o %t2 | FileCheck %s
-#
-# Test parsing and writing of x86_64 text relocations.
-#
-# The first step tests if the supplied mach-o file is parsed into the correct
-# set of references. The second step verifies relocations can be round-tripped
-# by writing to a new .o file, then parsing that file which should result in
-# the same references.
-#
-#_test:
-# call _foo
-# call _foo+4
-# movq _foo@GOTPCREL(%rip), %rax
-# pushq _foo@GOTPCREL(%rip)
-# movl _foo(%rip), %eax
-# movl _foo+4(%rip), %eax
-# movb $0x12, _foo(%rip)
-# movw $0x1234, _foo(%rip)
-# movl $0x12345678, _foo(%rip)
-# movl L2(%rip), %eax
-# movb $0x12, L2(%rip)
-# movw $0x1234, L2(%rip)
-# movl $0x12345678, L2(%rip)
-#
-# .data
-#L2: .long 0
-
-
---- !mach-o
-arch: x86_64
-file-type: MH_OBJECT
-flags: [ ]
-sections:
- - segment: __TEXT
- section: __text
- type: S_REGULAR
- attributes: [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
- address: 0x0000000000000000
- content: [ 0xE8, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x04, 0x00,
- 0x00, 0x00, 0x48, 0x8B, 0x05, 0x04, 0x00, 0x00,
- 0x00, 0xFF, 0x35, 0x04, 0x00, 0x00, 0x00, 0x8B,
- 0x05, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x05, 0x04,
- 0x00, 0x00, 0x00, 0xC6, 0x05, 0xFF, 0xFF, 0xFF,
- 0xFF, 0x12, 0x66, 0xC7, 0x05, 0xFE, 0xFF, 0xFF,
- 0xFF, 0x34, 0x12, 0xC7, 0x05, 0xFC, 0xFF, 0xFF,
- 0xFF, 0x78, 0x56, 0x34, 0x12, 0x8B, 0x05, 0x1A,
- 0x00, 0x00, 0x00, 0xc6, 0x05, 0x13, 0x00, 0x00,
- 0x00, 0x12, 0x66, 0xc7, 0x05, 0x0a, 0x00, 0x00,
- 0x00, 0x34, 0x12, 0xc7, 0x05, 0x00, 0x00, 0x00,
- 0x00, 0x78, 0x56, 0x34, 0x12 ]
- relocations:
- - offset: 0x00000055
- type: X86_64_RELOC_SIGNED_4
- length: 2
- pc-rel: true
- extern: false
- symbol: 2
- - offset: 0x0000004d
- type: X86_64_RELOC_SIGNED_2
- length: 2
- pc-rel: true
- extern: false
- symbol: 2
- - offset: 0x00000045
- type: X86_64_RELOC_SIGNED_1
- length: 2
- pc-rel: true
- extern: false
- symbol: 2
- - offset: 0x0000003F
- type: X86_64_RELOC_SIGNED
- length: 2
- pc-rel: true
- extern: false
- symbol: 2
- - offset: 0x00000035
- type: X86_64_RELOC_SIGNED_4
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x0000002D
- type: X86_64_RELOC_SIGNED_2
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x00000025
- type: X86_64_RELOC_SIGNED_1
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x0000001F
- type: X86_64_RELOC_SIGNED
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x00000019
- type: X86_64_RELOC_SIGNED
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x00000013
- type: X86_64_RELOC_GOT
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x0000000D
- type: X86_64_RELOC_GOT_LOAD
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x00000006
- type: X86_64_RELOC_BRANCH
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - offset: 0x00000001
- type: X86_64_RELOC_BRANCH
- length: 2
- pc-rel: true
- extern: true
- symbol: 1
- - segment: __DATA
- section: __data
- type: S_REGULAR
- attributes: [ ]
- address: 0x000000000000005D
- content: [ 0x00, 0x00, 0x00, 0x00 ]
-local-symbols:
- - name: _test
- type: N_SECT
- sect: 1
- value: 0x0000000000000000
-undefined-symbols:
- - name: _foo
- type: N_UNDF
- scope: [ N_EXT ]
- value: 0x0000000000000000
-...
-
-# CHECK: defined-atoms:
-# CHECK: - ref-name: [[LABEL:L[0-9]+]]
-# CHECK: type: data
-# CHECK: content: [ 00, 00, 00, 00 ]
-# CHECK: - name: _test
-# CHECK: references:
-# CHECK: - kind: branch32
-# CHECK: offset: 1
-# CHECK: target: _foo
-# CHECK: - kind: branch32
-# CHECK: offset: 6
-# CHECK: target: _foo
-# CHECK: addend: 4
-# CHECK: - kind: ripRel32GotLoad
-# CHECK: offset: 13
-# CHECK: target: _foo
-# CHECK: addend: 4
-# CHECK: - kind: ripRel32Got
-# CHECK: offset: 19
-# CHECK: target: _foo
-# CHECK: addend: 4
-# CHECK: - kind: ripRel32
-# CHECK: offset: 25
-# CHECK: target: _foo
-# CHECK: - kind: ripRel32
-# CHECK: offset: 31
-# CHECK: target: _foo
-# CHECK: addend: 4
-# CHECK: - kind: ripRel32Minus1
-# CHECK: offset: 37
-# CHECK: target: _foo
-# CHECK-NOT: addend:
-# CHECK: - kind: ripRel32Minus2
-# CHECK: offset: 45
-# CHECK: target: _foo
-# CHECK-NOT: addend:
-# CHECK: - kind: ripRel32Minus4
-# CHECK: offset: 53
-# CHECK: target: _foo
-# CHECK-NOT: addend:
-# CHECK: - kind: ripRel32Anon
-# CHECK: offset: 63
-# CHECK: target: [[LABEL]]
-# CHECK-NOT: addend:
-# CHECK: - kind: ripRel32Minus1Anon
-# CHECK: offset: 69
-# CHECK: target: [[LABEL]]
-# CHECK-NOT: addend:
-# CHECK: - kind: ripRel32Minus2Anon
-# CHECK: offset: 77
-# CHECK: target: [[LABEL]]
-# CHECK-NOT: addend:
-# CHECK: - kind: ripRel32Minus4Anon
-# CHECK: offset: 85
-# CHECK: target: [[LABEL]]
-# CHECK-NOT: addend: