[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / ExecutionEngine / RuntimeDyld / PowerPC / ppc64_reloc.s
blob9a859ead22c7e10f14a36d91989f8dd075be194f
1 # test for little endian
2 # RUN: rm -rf %t && mkdir -p %t
3 # RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj -o %t/ppc64_reloc.o %s
4 # RUN: llvm-mc -triple=powerpc64le-unknown-linux-gnu -filetype=obj -o %t/ppc64_elf_module_b.o %S/Inputs/ppc64_elf_module_b.s
5 # RUN: llvm-rtdyld -triple=powerpc64le-unknown-linux-gnu -verify -check=%s %t/ppc64_reloc.o %t/ppc64_elf_module_b.o
6 # test for big endian
7 # RUN: rm -rf %t && mkdir -p %t
8 # RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj -o %t/ppc64_reloc.o %s
9 # RUN: llvm-mc -triple=powerpc64-unknown-linux-gnu -filetype=obj -o %t/ppc64_elf_module_b.o %S/Inputs/ppc64_elf_module_b.s
10 # RUN: llvm-rtdyld -triple=powerpc64-unknown-linux-gnu -verify -check=%s %t/ppc64_reloc.o %t/ppc64_elf_module_b.o
12 .text
13 .abiversion 2
14 .file "test.c"
15 .globl func
16 .p2align 4
17 .type func,@function
18 func: # @func
19 .Lfunc_begin0:
20 .Lfunc_gep0:
21 addis 2, 12, .TOC.-.Lfunc_gep0@ha
22 addi 2, 2, .TOC.-.Lfunc_gep0@l
23 .Lfunc_lep0:
24 .localentry func, .Lfunc_lep0-.Lfunc_gep0
25 mflr 0
26 std 31, -8(1)
27 std 0, 16(1)
28 stdu 1, -112(1)
29 mr 31, 1
30 # confirm that LK flag is set for bl
31 # rtdyld-check: (*{4}call_bl) & 1 = 1
32 call_bl:
33 bl foo
34 nop
36 li 3, 0
37 addi 1, 1, 112
38 ld 0, 16(1)
39 ld 31, -8(1)
40 mtlr 0
41 # confirm that LK flag is not set for b
42 # rtdyld-check: (*{4}call_b) & 1 = 0
43 call_b:
44 b foo
45 .long 0
46 .quad 0
47 .Lfunc_end0:
48 .size func, .Lfunc_end0-.Lfunc_begin0