You've already forked linux-packaging-mono
							
							
		
			
	
	
		
			88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
|   | @ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
 | ||
|  | @ RUN: FileCheck < %t %s
 | ||
|  | 
 | ||
|  | @ Check the diagnostics for .setfp directive.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | 	.syntax unified
 | ||
|  | 	.text | ||
|  | 
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | @ TEST1: .setfp before .fnstart
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | 	.globl	func1
 | ||
|  | 	.align	2
 | ||
|  | 	.type	func1,%function | ||
|  | 	.setfp	fp, sp, #0 | ||
|  | @ CHECK: error: .fnstart must precede .setfp directive
 | ||
|  | @ CHECK:        .setfp fp, sp, #0
 | ||
|  | @ CHECK:        ^
 | ||
|  | 	.fnstart | ||
|  | func1: | ||
|  | 	.fnend | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | @ TEST2: .setfp after .handlerdata
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | 	.globl	func2
 | ||
|  | 	.align	2
 | ||
|  | 	.type	func2,%function | ||
|  | 	.fnstart | ||
|  | func2: | ||
|  | 	.handlerdata | ||
|  | 	.setfp	fp, sp, #0 | ||
|  | @ CHECK: error: .setfp must precede .handlerdata directive
 | ||
|  | @ CHECK:        .setfp fp, sp, #0
 | ||
|  | @ CHECK:        ^
 | ||
|  | 	.fnend | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | @ TEST3: .setfp with bad fp register
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | 	.globl	func3
 | ||
|  | 	.align	2
 | ||
|  | 	.type	func3,%function | ||
|  | 	.fnstart | ||
|  | func3: | ||
|  | 	.setfp	0, r0, #0 | ||
|  | @ CHECK: error: frame pointer register expected
 | ||
|  | @ CHECK:        .setfp 0, r0, #0
 | ||
|  | @ CHECK:               ^
 | ||
|  | 	.fnend | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | @ TEST4: .setfp with bad sp register
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | 	.globl	func4
 | ||
|  | 	.align	2
 | ||
|  | 	.type	func4,%function | ||
|  | 	.fnstart | ||
|  | func4: | ||
|  | 	.setfp	fp, 0, #0 | ||
|  | @ CHECK: error: stack pointer register expected
 | ||
|  | @ CHECK:        .setfp fp, 0, #0
 | ||
|  | @ CHECK:                   ^
 | ||
|  | 	.fnend | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | @ TEST5: .setfp with non-sp register as second operand
 | ||
|  | @-------------------------------------------------------------------------------
 | ||
|  | 	.globl	func5
 | ||
|  | 	.align	2
 | ||
|  | 	.type	func5,%function | ||
|  | 	.fnstart | ||
|  | func5: | ||
|  | 	.setfp	fp, r0, #0 | ||
|  | @ CHECK: error: register should be either $sp or the latest fp register
 | ||
|  | @ CHECK:        .setfp fp, r0, #0
 | ||
|  | @ CHECK:                   ^
 | ||
|  | 	.fnend |