diff options
author | Tim Northover <tnorthover@apple.com> | 2016-04-21 23:00:17 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2016-04-21 23:00:17 +0000 |
commit | 361618ec682974b98a98e576872fd89a894935fc (patch) | |
tree | 2054f76fbb87dbc6a0f561e829c2d1b5d56a3e35 /test/MC | |
parent | 12098d3b4abbe94410f73f167895c06d903d0661 (diff) |
MachO: enable .data_region directives everywhere
We'd disabled them on x86 because back in the early days some host tools
couldn't handle the new load commands. This no longer holds: anyone capable of
deploying Clang should be able to deploy its copies of ar/ranlib/etc.
rdar://25254790
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267075 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC')
-rw-r--r-- | test/MC/MachO/AArch64/data-in-code.s | 49 | ||||
-rw-r--r-- | test/MC/MachO/x86-data-in-code.ll | 107 | ||||
-rw-r--r-- | test/MC/MachO/x86-data-in-code.s | 47 |
3 files changed, 96 insertions, 107 deletions
diff --git a/test/MC/MachO/AArch64/data-in-code.s b/test/MC/MachO/AArch64/data-in-code.s new file mode 100644 index 00000000000..cf7d860a622 --- /dev/null +++ b/test/MC/MachO/AArch64/data-in-code.s @@ -0,0 +1,49 @@ +// RUN: llvm-mc -triple arm64-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s + .text +_foo: +.data_region + .long 10 +.end_data_region +.data_region jt32 + .long 1 +.end_data_region +.data_region jt16 + .short 2 +.end_data_region +.data_region jt8 + .byte 3 +.end_data_region + +// CHECK: File: <stdin> +// CHECK: Format: Mach-O arm64 +// CHECK: Arch: aarch64 +// CHECK: AddressSize: 64bit +// CHECK: DataInCode { +// CHECK: Data size: 32 +// CHECK: Data entries [ +// CHECK: Entry { +// CHECK: Index: 0 +// CHECK: Offset: 0 +// CHECK: Length: 4 +// CHECK: Kind: 1 +// CHECK: } +// CHECK: Entry { +// CHECK: Index: 1 +// CHECK: Offset: 4 +// CHECK: Length: 4 +// CHECK: Kind: 4 +// CHECK: } +// CHECK: Entry { +// CHECK: Index: 2 +// CHECK: Offset: 8 +// CHECK: Length: 2 +// CHECK: Kind: 3 +// CHECK: } +// CHECK: Entry { +// CHECK: Index: 3 +// CHECK: Offset: 10 +// CHECK: Length: 1 +// CHECK: Kind: 2 +// CHECK: } +// CHECK: ] +// CHECK: } diff --git a/test/MC/MachO/x86-data-in-code.ll b/test/MC/MachO/x86-data-in-code.ll deleted file mode 100644 index b8d3a185cbd..00000000000 --- a/test/MC/MachO/x86-data-in-code.ll +++ /dev/null @@ -1,107 +0,0 @@ -; RUN: llc -O0 -mtriple=x86_64-apple-darwin -filetype=obj -o - %s | llvm-readobj -macho-data-in-code | FileCheck %s - -; There should not be a data-in-code load command (type 0x29) for x86_64 -; jump tables, even though they are in the text section. -; CHECK-NOT: DataInCode { - -define void @foo(i32* %ptr) nounwind ssp { - %tmp = load i32, i32* %ptr, align 4 - switch i32 %tmp, label %default [ - i32 11, label %bb0 - i32 10, label %bb1 - i32 8, label %bb2 - i32 4, label %bb3 - i32 2, label %bb4 - i32 6, label %bb5 - i32 9, label %bb6 - i32 15, label %bb7 - i32 1, label %bb8 - i32 3, label %bb9 - i32 5, label %bb10 - i32 30, label %bb11 - i32 31, label %bb12 - i32 13, label %bb13 - i32 14, label %bb14 - i32 20, label %bb15 - i32 19, label %bb16 - i32 17, label %bb17 - i32 18, label %bb18 - i32 21, label %bb19 - i32 22, label %bb20 - i32 16, label %bb21 - i32 24, label %bb22 - i32 25, label %bb23 - i32 26, label %bb24 - i32 27, label %bb25 - i32 28, label %bb26 - i32 23, label %bb27 - i32 12, label %bb28 - ] - -default: - br label %exit -bb0: - br label %exit -bb1: - br label %exit -bb2: - br label %exit -bb3: - br label %exit -bb4: - br label %exit -bb5: - br label %exit -bb6: - br label %exit -bb7: - br label %exit -bb8: - br label %exit -bb9: - br label %exit -bb10: - br label %exit -bb11: - br label %exit -bb12: - br label %exit -bb13: - br label %exit -bb14: - br label %exit -bb15: - br label %exit -bb16: - br label %exit -bb17: - br label %exit -bb18: - br label %exit -bb19: - br label %exit -bb20: - br label %exit -bb21: - br label %exit -bb22: - br label %exit -bb23: - br label %exit -bb24: - br label %exit -bb25: - br label %exit -bb26: - br label %exit -bb27: - br label %exit -bb28: - br label %exit - - -exit: - - ret void -} - diff --git a/test/MC/MachO/x86-data-in-code.s b/test/MC/MachO/x86-data-in-code.s new file mode 100644 index 00000000000..e7b2406e5d0 --- /dev/null +++ b/test/MC/MachO/x86-data-in-code.s @@ -0,0 +1,47 @@ +// RUN: llvm-mc -triple x86_64-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s +// RUN: llvm-mc -triple i686-apple-darwin10 -filetype=obj -o - < %s | llvm-readobj --macho-data-in-code | FileCheck %s + + .text +_foo: +.data_region + .long 10 +.end_data_region +.data_region jt32 + .long 1 +.end_data_region +.data_region jt16 + .short 2 +.end_data_region +.data_region jt8 + .byte 3 +.end_data_region + +// CHECK: DataInCode { +// CHECK: Data size: 32 +// CHECK: Data entries [ +// CHECK: Entry { +// CHECK: Index: 0 +// CHECK: Offset: 0 +// CHECK: Length: 4 +// CHECK: Kind: 1 +// CHECK: } +// CHECK: Entry { +// CHECK: Index: 1 +// CHECK: Offset: 4 +// CHECK: Length: 4 +// CHECK: Kind: 4 +// CHECK: } +// CHECK: Entry { +// CHECK: Index: 2 +// CHECK: Offset: 8 +// CHECK: Length: 2 +// CHECK: Kind: 3 +// CHECK: } +// CHECK: Entry { +// CHECK: Index: 3 +// CHECK: Offset: 10 +// CHECK: Length: 1 +// CHECK: Kind: 2 +// CHECK: } +// CHECK: ] +// CHECK: } |