204 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| @ RUN: llvm-mc -triple armv7-linux-eabi -filetype obj -o - %s \
 | |
| @ RUN:   | llvm-readobj -s -sd -sr > %t
 | |
| @ RUN: FileCheck %s < %t
 | |
| @ RUN: FileCheck --check-prefix=RELOC %s < %t
 | |
| 
 | |
| 	.syntax unified
 | |
| 	.thumb
 | |
| 
 | |
| 
 | |
| 	.section .pr0
 | |
| 
 | |
| 	.global pr0
 | |
| 	.type pr0,%function
 | |
| 	.thumb_func
 | |
| pr0:
 | |
| 	.fnstart
 | |
| 	.personalityindex 0
 | |
| 	bx lr
 | |
| 	.fnend
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.exidx.pr0
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: 00000000 B0B0B080
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ RELOC: Section {
 | |
| @ RELOC:   Name: .rel.ARM.exidx.pr0
 | |
| @ RELOC:   Relocations [
 | |
| @ RELOC:     0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
 | |
| @ RELOC:     0x0 R_ARM_PREL31 .pr0 0x0
 | |
| @ RELOC:   ]
 | |
| @ RELOC: }
 | |
| 
 | |
| 	.section .pr0.nontrivial
 | |
| 
 | |
| 	.global pr0_nontrivial
 | |
| 	.type pr0_nontrivial,%function
 | |
| 	.thumb_func
 | |
| pr0_nontrivial:
 | |
| 	.fnstart
 | |
| 	.personalityindex 0
 | |
| 	.pad #0x10
 | |
| 	sub sp, sp, #0x10
 | |
| 	add sp, sp, #0x10
 | |
| 	bx lr
 | |
| 	.fnend
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.exidx.pr0.nontrivial
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: 00000000 B0B00380
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ RELOC: Section {
 | |
| @ RELOC:   Name: .rel.ARM.exidx.pr0.nontrivial
 | |
| @ RELOC:   Relocations [
 | |
| @ RELOC:     0x0 R_ARM_NONE __aeabi_unwind_cpp_pr0 0x0
 | |
| @ RELOC:     0x0 R_ARM_PREL31 .pr0.nontrivial 0x0
 | |
| @ RELOC:   ]
 | |
| @ RELOC: }
 | |
| 
 | |
| 	.section .pr1
 | |
| 
 | |
| 	.global pr1
 | |
| 	.type pr1,%function
 | |
| 	.thumb_func
 | |
| pr1:
 | |
| 	.fnstart
 | |
| 	.personalityindex 1
 | |
| 	bx lr
 | |
| 	.fnend
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.extab.pr1
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: B0B00081 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.exidx.pr1
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: 00000000 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ RELOC: Section {
 | |
| @ RELOC:   Name: .rel.ARM.exidx.pr1
 | |
| @ RELOC:   Relocations [
 | |
| @ RELOC:     0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
 | |
| @ RELOC:     0x0 R_ARM_PREL31 .pr1 0x0
 | |
| @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.pr1 0x0
 | |
| @ RELOC:   ]
 | |
| @ RELOC: }
 | |
| 
 | |
| 	.section .pr1.nontrivial
 | |
| 
 | |
| 	.global pr1_nontrivial
 | |
| 	.type pr1_nontrivial,%function
 | |
| 	.thumb_func
 | |
| pr1_nontrivial:
 | |
| 	.fnstart
 | |
| 	.personalityindex 1
 | |
| 	.pad #0x10
 | |
| 	sub sp, sp, #0x10
 | |
| 	add sp, sp, #0x10
 | |
| 	bx lr
 | |
| 	.fnend
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.extab.pr1.nontrivial
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: B0030081 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.exidx.pr1.nontrivial
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: 00000000 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ RELOC: Section {
 | |
| @ RELOC:   Name: .rel.ARM.exidx.pr1.nontrivial
 | |
| @ RELOC:   Relocations [
 | |
| @ RELOC:     0x0 R_ARM_NONE __aeabi_unwind_cpp_pr1 0x0
 | |
| @ RELOC:     0x0 R_ARM_PREL31 .pr1.nontrivial 0x0
 | |
| @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.pr1.nontrivial 0x0
 | |
| @ RELOC:   ]
 | |
| @ RELOC: }
 | |
| 
 | |
| 	.section .pr2
 | |
| 
 | |
| 	.global pr2
 | |
| 	.type pr2,%function
 | |
| 	.thumb_func
 | |
| pr2:
 | |
| 	.fnstart
 | |
| 	.personalityindex 2
 | |
| 	bx lr
 | |
| 	.fnend
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.extab.pr2
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: B0B00082 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.exidx.pr2
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: 00000000 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ RELOC: Section {
 | |
| @ RELOC:   Name: .rel.ARM.exidx.pr2
 | |
| @ RELOC:   Relocations [
 | |
| @ RELOC:     0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0
 | |
| @ RELOC:     0x0 R_ARM_PREL31 .pr2 0x0
 | |
| @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.pr2 0x0
 | |
| @ RELOC:   ]
 | |
| @ RELOC: }
 | |
| 
 | |
| 	.section .pr2.nontrivial
 | |
| 	.type pr2_nontrivial,%function
 | |
| 	.thumb_func
 | |
| pr2_nontrivial:
 | |
| 	.fnstart
 | |
| 	.personalityindex 2
 | |
| 	.pad #0x10
 | |
| 	sub sp, sp, #0x10
 | |
| 	add sp, sp, #0x10
 | |
| 	bx lr
 | |
| 	.fnend
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.extab.pr2.nontrivial
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: B0030082 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ CHECK: Section {
 | |
| @ CHECK:   Name: .ARM.exidx.pr2.nontrivial
 | |
| @ CHECK:   SectionData (
 | |
| @ CHECK:     0000: 00000000 00000000
 | |
| @ CHECK:   )
 | |
| @ CHECK: }
 | |
| 
 | |
| @ RELOC: Section {
 | |
| @ RELOC:   Name: .rel.ARM.exidx.pr2.nontrivial
 | |
| @ RELOC:   Relocations [
 | |
| @ RELOC:     0x0 R_ARM_NONE __aeabi_unwind_cpp_pr2 0x0
 | |
| @ RELOC:     0x0 R_ARM_PREL31 .pr2.nontrivial 0x0
 | |
| @ RELOC:     0x4 R_ARM_PREL31 .ARM.extab.pr2.nontrivial 0x0
 | |
| @ RELOC:   ]
 | |
| @ RELOC: }
 |