[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / ARM / eh-directive-text-section-multiple-func.s
blobfe1e6622f07d7e18cf96dedb7a1a45f5f6d5f1f0
1 @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2 @ RUN: | llvm-readobj -S --sd --sr -r --symbols | FileCheck %s
4 @ Check whether the section is switched back or not.
6 @ The assembler should emit the machine code of "func2" in .text section.
7 @ It is incorrect if the machine code is emitted in .ARM.exidx or .ARM.extab.
8 @ Besides, there should be two entries in .ARM.exidx section.
10 .syntax unified
12 .text
13 .globl func1
14 .align 2
15 .type func1,%function
16 .fnstart
17 func1:
18 bx lr
19 .fnend
21 .globl func2
22 .align 2
23 .type func2,%function
24 .fnstart
25 func2:
26 bx lr
27 .fnend
30 @-------------------------------------------------------------------------------
31 @ Check the .text section. There should be two "bx lr" instructions.
32 @-------------------------------------------------------------------------------
33 @ CHECK: Sections [
34 @ CHECK: Section {
35 @ CHECK: Name: .text
36 @ CHECK: SectionData (
37 @ CHECK: 0000: 1EFF2FE1 1EFF2FE1 |../.../.|
38 @ CHECK: )
39 @ CHECK: }
42 @-------------------------------------------------------------------------------
43 @ Check the .ARM.exidx section.
44 @ There should be two entries (two words per entry.)
45 @-------------------------------------------------------------------------------
46 @ CHECK: Section {
47 @ CHECK: Name: .ARM.exidx
48 @ CHECK: SectionData (
49 @-------------------------------------------------------------------------------
50 @ The first word should be the offset to .text. The second word should be
51 @ 0xB0B0B080, which means compact model 0 is used (0x80) and the rest of the
52 @ word is filled with FINISH opcode (0xB0).
53 @-------------------------------------------------------------------------------
54 @ CHECK: 0000: 00000000 B0B0B080 04000000 B0B0B080 |................|
55 @ CHECK: )
56 @ CHECK: }
57 @ CHECK: ]
59 @-------------------------------------------------------------------------------
60 @ The first word of each entry should be relocated to .text section.
61 @-------------------------------------------------------------------------------
62 @ CHECK: Relocations [
63 @ CHECK: 0x0 R_ARM_PREL31 .text 0x0
64 @ CHECK: 0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
65 @ CHECK: 0x8 R_ARM_PREL31 .text 0x0
66 @ CHECK: ]
69 @-------------------------------------------------------------------------------
70 @ Check the symbols "func1" and "func2". They should belong to .text section.
71 @-------------------------------------------------------------------------------
72 @ CHECK: Symbols [
73 @ CHECK: Symbol {
74 @ CHECK: Name: func1
75 @ CHECK: Section: .text
76 @ CHECK: }
77 @ CHECK: Symbol {
78 @ CHECK: Name: func2
79 @ CHECK: Section: .text
80 @ CHECK: }
81 @ CHECK: ]