• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
11
12	.text
13	.abiversion 2
14	.file	"test.c"
15	.globl	func
16	.p2align	4
17	.type	func,@function
18func:                                   # @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
32call_bl:
33	bl foo
34	nop
35
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
43call_b:
44	b foo
45	.long	0
46	.quad	0
47.Lfunc_end0:
48	.size	func, .Lfunc_end0-.Lfunc_begin0
49