summaryrefslogtreecommitdiff
path: root/test/MC/AArch64
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-10-28 20:59:41 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-10-28 20:59:41 +0000
commitade09c7fe7426dca21310911c8ebca17f738342f (patch)
tree35cd2c1425f4cf41c291cb232101fee54a6bb973 /test/MC/AArch64
parente2f60cf7f10d8e732031a519b321e324b5277210 (diff)
downloadllvm-ade09c7fe7426dca21310911c8ebca17f738342f.tar.gz
llvm-ade09c7fe7426dca21310911c8ebca17f738342f.tar.bz2
llvm-ade09c7fe7426dca21310911c8ebca17f738342f.tar.xz
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193537 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/MC/AArch64')
-rw-r--r--test/MC/AArch64/jump-table.s59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/MC/AArch64/jump-table.s b/test/MC/AArch64/jump-table.s
new file mode 100644
index 0000000000..578ebf4e66
--- /dev/null
+++ b/test/MC/AArch64/jump-table.s
@@ -0,0 +1,59 @@
+// RUN: llvm-mc < %s -triple=aarch64-none-linux-gnu -filetype=obj | llvm-readobj -r | FileCheck %s
+
+ .file "<stdin>"
+ .text
+ .globl test_jumptable
+ .type test_jumptable,@function
+test_jumptable: // @test_jumptable
+ .cfi_startproc
+// BB#0:
+ ubfx w1, w0, #0, #32
+ cmp w0, #4
+ b.hi .LBB0_3
+// BB#1:
+ adrp x0, .LJTI0_0
+ add x0, x0, #:lo12:.LJTI0_0
+ ldr x0, [x0, x1, lsl #3]
+ br x0
+.LBB0_2: // %lbl1
+ movz x0, #1
+ ret
+.LBB0_3: // %def
+ mov x0, xzr
+ ret
+.LBB0_4: // %lbl2
+ movz x0, #2
+ ret
+.LBB0_5: // %lbl3
+ movz x0, #4
+ ret
+.LBB0_6: // %lbl4
+ movz x0, #8
+ ret
+.Ltmp0:
+ .size test_jumptable, .Ltmp0-test_jumptable
+ .cfi_endproc
+ .section .rodata,"a",@progbits
+ .align 3
+.LJTI0_0:
+ .xword .LBB0_2
+ .xword .LBB0_4
+ .xword .LBB0_5
+ .xword .LBB0_3
+ .xword .LBB0_6
+
+
+
+// First make sure we get a page/lo12 pair in .text to pick up the jump-table
+
+// CHECK: Relocations [
+// CHECK: Section ({{[0-9]+}}) .rela.text {
+// CHECK-NEXT: 0x{{[0-9,A-F]+}} R_AARCH64_ADR_PREL_PG_HI21 .rodata
+// CHECK-NEXT: 0x{{[0-9,A-F]+}} R_AARCH64_ADD_ABS_LO12_NC .rodata
+// CHECK: }
+
+// Also check the targets in .rodata are relocated
+// CHECK: Section ({{[0-9]+}}) .rela.rodata {
+// CHECK-NEXT: 0x{{[0-9,A-F]+}} R_AARCH64_ABS64 .text
+// CHECK: }
+// CHECK: ]