diff options
Diffstat (limited to 'test/MC/MachO')
-rw-r--r-- | test/MC/MachO/reloc-diff.s | 55 | ||||
-rw-r--r-- | test/MC/MachO/reloc-pcrel.s | 62 | ||||
-rw-r--r-- | test/MC/MachO/zerofill-4.s | 35 | ||||
-rw-r--r-- | test/MC/MachO/zerofill-sect-align.s | 15 |
4 files changed, 167 insertions, 0 deletions
diff --git a/test/MC/MachO/reloc-diff.s b/test/MC/MachO/reloc-diff.s new file mode 100644 index 0000000..601edba --- /dev/null +++ b/test/MC/MachO/reloc-diff.s @@ -0,0 +1,55 @@ +// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s + +// CHECK: # Relocation 0 +// CHECK: (('word-0', 0xa2000014), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 1 +// CHECK: (('word-0', 0xa1000000), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 2 +// CHECK: (('word-0', 0xa4000010), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 3 +// CHECK: (('word-0', 0xa1000000), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 4 +// CHECK: (('word-0', 0xa400000c), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 5 +// CHECK: (('word-0', 0xa1000000), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 6 +// CHECK: (('word-0', 0xa4000008), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 7 +// CHECK: (('word-0', 0xa1000000), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 8 +// CHECK: (('word-0', 0xa4000004), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 9 +// CHECK: (('word-0', 0xa1000000), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 10 +// CHECK: (('word-0', 0xa2000000), +// CHECK: ('word-1', 0x0)), +// CHECK: # Relocation 11 +// CHECK: (('word-0', 0xa1000000), +// CHECK: ('word-1', 0x0)), +// CHECK-NEXT: ]) + +_local_def: + .globl _external_def +_external_def: +Ltemp: + ret + + .data + .long _external_def - _local_def + .long Ltemp - _local_def + + .long _local_def - _external_def + .long Ltemp - _external_def + + .long _local_def - Ltemp + .long _external_def - Ltemp diff --git a/test/MC/MachO/reloc-pcrel.s b/test/MC/MachO/reloc-pcrel.s new file mode 100644 index 0000000..fff7cc0 --- /dev/null +++ b/test/MC/MachO/reloc-pcrel.s @@ -0,0 +1,62 @@ +// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s + +// CHECK: # Relocation 0 +// CHECK: (('word-0', 0xe4000045), +// CHECK: ('word-1', 0x4)), +// CHECK: # Relocation 1 +// CHECK: (('word-0', 0xe1000000), +// CHECK: ('word-1', 0x6)), +// CHECK: # Relocation 2 +// CHECK: (('word-0', 0x40), +// CHECK: ('word-1', 0xd000002)), +// CHECK: # Relocation 3 +// CHECK: (('word-0', 0x3b), +// CHECK: ('word-1', 0xd000002)), +// CHECK: # Relocation 4 +// CHECK: (('word-0', 0x36), +// CHECK: ('word-1', 0xd000002)), +// CHECK: # Relocation 5 +// CHECK: (('word-0', 0xe0000031), +// CHECK: ('word-1', 0x4)), +// CHECK: # Relocation 6 +// CHECK: (('word-0', 0xe000002c), +// CHECK: ('word-1', 0x4)), +// CHECK: # Relocation 7 +// CHECK: (('word-0', 0x27), +// CHECK: ('word-1', 0x5000001)), +// CHECK: # Relocation 8 +// CHECK: (('word-0', 0xe0000022), +// CHECK: ('word-1', 0x2)), +// CHECK: # Relocation 9 +// CHECK: (('word-0', 0xe000001d), +// CHECK: ('word-1', 0x2)), +// CHECK: # Relocation 10 +// CHECK: (('word-0', 0x18), +// CHECK: ('word-1', 0x5000001)), +// CHECK-NEXT: ]) + + xorl %eax,%eax + + .globl _a +_a: + xorl %eax,%eax +_b: + xorl %eax,%eax +L0: + xorl %eax,%eax +L1: + + call L0 + call L0 - 1 + call L0 + 1 + call _a + call _a - 1 + call _a + 1 + call _b + call _b - 1 + call _b + 1 + call _c + call _c - 1 + call _c + 1 +// call _a - L0 + call _b - L0 diff --git a/test/MC/MachO/zerofill-4.s b/test/MC/MachO/zerofill-4.s new file mode 100644 index 0000000..d9c987c --- /dev/null +++ b/test/MC/MachO/zerofill-4.s @@ -0,0 +1,35 @@ +// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s + +.zerofill __DATA,__bss,_fill0,1,0 +.zerofill __DATA,__bss,_a,4,2 +.zerofill __DATA,__bss,_fill1,1,0 +.zerofill __DATA,__bss,_b,4,3 +.zerofill __DATA,__bss,_fill2,1,0 +.zerofill __DATA,__bss,_c,4,4 +.zerofill __DATA,__bss,_fill3,1,0 +.zerofill __DATA,__bss,_d,4,5 + +// CHECK: # Symbol 0 +// CHECK: ('n_value', 0) +// CHECK: ('_string', '_fill0') +// CHECK: # Symbol 1 +// CHECK: ('n_value', 4) +// CHECK: ('_string', '_a') +// CHECK: # Symbol 2 +// CHECK: ('n_value', 8) +// CHECK: ('_string', '_fill1') +// CHECK: # Symbol 3 +// CHECK: ('n_value', 16) +// CHECK: ('_string', '_b') +// CHECK: # Symbol 4 +// CHECK: ('n_value', 20) +// CHECK: ('_string', '_fill2') +// CHECK: # Symbol 5 +// CHECK: ('n_value', 32) +// CHECK: ('_string', '_c') +// CHECK: # Symbol 6 +// CHECK: ('n_value', 36) +// CHECK: ('_string', '_fill3') +// CHECK: # Symbol 7 +// CHECK: ('n_value', 64) +// CHECK: ('_string', '_d') diff --git a/test/MC/MachO/zerofill-sect-align.s b/test/MC/MachO/zerofill-sect-align.s new file mode 100644 index 0000000..5d7730f --- /dev/null +++ b/test/MC/MachO/zerofill-sect-align.s @@ -0,0 +1,15 @@ +// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump | FileCheck %s +// +// Check that the section itself is aligned. + + .byte 0 + +.zerofill __DATA,__bss,_a,1,0 +.zerofill __DATA,__bss,_b,4,4 + +// CHECK: # Symbol 0 +// CHECK: ('n_value', 16) +// CHECK: ('_string', '_a') +// CHECK: # Symbol 1 +// CHECK: ('n_value', 32) +// CHECK: ('_string', '_b') |