Add mtpid/mfpid for BookE.
[oota-llvm.git] / test / MC / PowerPC / ppc64-localentry.s
1
2 # RUN: llvm-mc -triple powerpc64-unknown-unknown -filetype=obj %s | \
3 # RUN: llvm-readobj -h -r -symbols | FileCheck %s
4 # RUN: llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj %s | \
5 # RUN: llvm-readobj -h -r -symbols | FileCheck %s
6
7         .type callee1, @function
8 callee1:
9         nop
10         nop
11         .localentry callee1, .-callee1
12         nop
13         nop
14         .size callee1, .-callee1
15
16         .type callee2, @function
17 callee2:
18         nop
19         nop
20         .size callee2, .-callee2
21
22         .type caller, @function
23 caller:
24         bl callee1
25         nop
26         bl callee2
27         nop
28         .size caller, .-caller
29
30         .section .text.other
31 caller_other:
32         bl callee1
33         nop
34         bl callee2
35         nop
36         .size caller_other, .-caller_other
37
38 # Verify that use of .localentry implies ABI version 2
39 # CHECK: ElfHeader {
40 # CHECK: Flags [ (0x2)
41
42 # Verify that fixups to local function symbols are performed only
43 # if the target symbol does not use .localentry
44 # CHECK: Relocations [
45 # CHECK: Section ({{[0-9]*}}) .rela.text {
46 # CHECK-NEXT: R_PPC64_REL24 callee1
47 # CHECK-NEXT: }
48 # CHECK-NOT: R_PPC64_REL24 callee2
49 # CHECK: Section ({{[0-9]*}}) .rela.text.other {
50 # CHECK-NEXT: R_PPC64_REL24 callee1
51 # CHECK-NEXT: R_PPC64_REL24 .text
52 # CHECK-NEXT: }
53
54 # Verify that .localentry is encoded in the Other field.
55 # CHECK: Symbols [
56 # CHECK:       Name: callee1
57 # CHECK-NEXT:  Value:
58 # CHECK-NEXT:  Size: 16
59 # CHECK-NEXT:  Binding: Local
60 # CHECK-NEXT:  Type: Function
61 # CHECK-NEXT:  Other: 96
62 # CHECK-NEXT:  Section: .text
63 # CHECK:       Name: callee2
64 # CHECK-NEXT:  Value:
65 # CHECK-NEXT:  Size: 8
66 # CHECK-NEXT:  Binding: Local
67 # CHECK-NEXT:  Type: Function
68 # CHECK-NEXT:  Other: 0
69 # CHECK-NEXT:  Section: .text
70