52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
 | |
| @ RUN:   | llvm-readobj -s -sd -sr | FileCheck %s
 | |
| 
 | |
| @ Check the .cantunwind directive
 | |
| 
 | |
| @ When a function contains a .cantunwind directive, we should create an entry
 | |
| @ in corresponding .ARM.exidx, and its second word should be EXIDX_CANTUNWIND.
 | |
| 
 | |
| 	.syntax	unified
 | |
| 
 | |
| 	.text
 | |
| 	.globl	func1
 | |
| 	.align	2
 | |
| 	.type	func1,%function
 | |
| 	.fnstart
 | |
| func1:
 | |
| 	bx	lr
 | |
| 	.cantunwind
 | |
| 	.fnend
 | |
| 
 | |
| 
 | |
| 
 | |
| @-------------------------------------------------------------------------------
 | |
| @ Check .text section
 | |
| @-------------------------------------------------------------------------------
 | |
| @ CHECK: Sections [
 | |
| @ CHECK:   Section {
 | |
| @ CHECK:     Name: .text
 | |
| @ CHECK:     SectionData (
 | |
| @ CHECK:       0000: 1EFF2FE1                             |../.|
 | |
| @ CHECK:     )
 | |
| @ CHECK:   }
 | |
| 
 | |
| 
 | |
| @-------------------------------------------------------------------------------
 | |
| @ Check .ARM.exidx section
 | |
| @-------------------------------------------------------------------------------
 | |
| @ CHECK:   Section {
 | |
| @ CHECK:     Name: .ARM.exidx
 | |
| @-------------------------------------------------------------------------------
 | |
| @ The first word should be the offset to .text.
 | |
| @ The second word should be EXIDX_CANTUNWIND (01000000).
 | |
| @-------------------------------------------------------------------------------
 | |
| @ CHECK:     SectionData (
 | |
| @ CHECK:       0000: 00000000 01000000                    |........|
 | |
| @ CHECK:     )
 | |
| @ CHECK:   }
 | |
| @ CHECK: ]
 | |
| @ CHECK:     Relocations [
 | |
| @ CHECK:       0x0 R_ARM_PREL31 .text 0x0
 | |
| @ CHECK:     ]
 |