1c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ RUN:   | llvm-readobj -s -sd -sr | FileCheck %s
3c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
4c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ Check the compact pr1 model
5c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
6c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.syntax unified
7c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
8c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.section .TEST1
9c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.globl	func1
10c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.align	2
11c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.type	func1,%function
12c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chienfunc1:
13c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.fnstart
14c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.save	{r4, r5, r11, lr}
15c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	push	{r4, r5, r11, lr}
16c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	add	r0, r1, r0
17c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.setfp	r11, sp, #8
18c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	add	r11, sp, #8
19c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	pop	{r4, r5, r11, pc}
20c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.fnend
21c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
22c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
23c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
24c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
25c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ Check .TEST1 section
26c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
27c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK: Sections [
28c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:   Section {
29c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     Name: .TEST1
30c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     SectionData (
31c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:       0000: 30482DE9 000081E0 08B08DE2 3088BDE8  |0H-.........0...|
32c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     )
33c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:   }
34c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
35c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
36c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
37c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ Check .ARM.extab.TEST1 section
38c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
39c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:   Section {
40c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     Name: .ARM.extab.TEST1
41c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
42c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ 0x81   = Compact model 1, personality routine: __aeabi_unwind_cpp_pr1
43c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ 0x9B   = $sp can be found in $r11
44c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ 0x41   = $sp = $sp - 8
45c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ 0x8483 = pop {r4, r5, r11, r14}
46c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ 0xB0   = finish
47c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
48c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     SectionData (
490a39e264330c5f6eb9e5e9e60d276613985e178dLogan Chien@ CHECK:       0000: 419B0181 B0B08384 00000000           |A...........|
50c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     )
51c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:   }
52c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
53c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
54c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
55c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ Check .ARM.exidx.TEST1 section
56c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
57c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:   Section {
58c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     Name: .ARM.exidx.TEST1
597486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola@ CHECK:     SectionData (
607486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola@ CHECK:       0000: 00000000 00000000                    |........|
617486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola@ CHECK:     )
627486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola@ CHECK:   }
637486d92a6c949a193bb75c0ffa0170eeb2fabb80Rafael Espindola@ CHECK: ]
64c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
65c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ The first word should be relocated to .TEST1 section, and the second word
66c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ should be relocated to .ARM.extab.TEST1 section.  Besides, there is
67c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ another relocation entry for __aeabi_unwind_cpp_pr1, so that the linker
68c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ will keep __aeabi_unwind_cpp_pr1.
69c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
70c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     Relocations [
71c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:       0x0 R_ARM_PREL31 .TEST1 0x0
72c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:       0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
73c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:       0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
74c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:     ]
75