| @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \ | 
 | @ RUN:   | llvm-readobj -s -sd | FileCheck %s | 
 |  | 
 | @ Check for different combination of .setfp, .pad, .save and .vsave. | 
 |  | 
 | 	.syntax	unified | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ TEST1: Check .pad before .setfp directive. | 
 | @------------------------------------------------------------------------------- | 
 | 	.section	.TEST1 | 
 | 	.globl	func1 | 
 | 	.type	func1,%function | 
 | 	.align	2 | 
 | 	.fnstart | 
 | func1: | 
 | 	.pad	#12 | 
 | 	sub	sp, sp, #12 | 
 | 	.setfp	fp, sp, #8 | 
 | 	add	fp, sp, #8 | 
 | 	sub	sp, fp, #8 | 
 | 	add	sp, sp, #12 | 
 | 	bx	lr | 
 | 	.personality	__gxx_personality_v0 | 
 | 	.handlerdata | 
 | 	.fnend | 
 |  | 
 | @ CHECK: Section { | 
 | @ CHECK:   Name: .ARM.extab.TEST1 | 
 | @ CHECK:   SectionData ( | 
 | @ CHECK:     0000: 00000000 B0009B00                    |........| | 
 | @ CHECK:   ) | 
 | @ CHECK: } | 
 |  | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ TEST2: Check .pad after .setfp directive. | 
 | @------------------------------------------------------------------------------- | 
 | 	.section	.TEST2 | 
 | 	.globl	func2 | 
 | 	.type	func2,%function | 
 | 	.align	2 | 
 | 	.fnstart | 
 | func2: | 
 | 	.setfp	fp, sp, #8 | 
 | 	add	fp, sp, #8 | 
 | 	.pad	#12 | 
 | 	sub	sp, sp, #12 | 
 | 	add	sp, sp, #12 | 
 | 	sub	sp, fp, #8 | 
 | 	bx	lr | 
 | 	.personality	__gxx_personality_v0 | 
 | 	.handlerdata | 
 | 	.fnend | 
 |  | 
 | @ CHECK: Section { | 
 | @ CHECK:   Name: .ARM.extab.TEST2 | 
 | @ CHECK:   SectionData ( | 
 | @ CHECK:     0000: 00000000 B0419B00                    |.....A..| | 
 | @ CHECK:   ) | 
 | @ CHECK: } | 
 |  | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ TEST3: Check .setfp, .pad, .setfp directive. | 
 | @------------------------------------------------------------------------------- | 
 | 	.section	.TEST3 | 
 | 	.globl	func3 | 
 | 	.type	func3,%function | 
 | 	.align	2 | 
 | 	.fnstart | 
 | func3: | 
 | 	@ prologue: | 
 | 	.setfp	fp, sp, #4 | 
 | 	add	fp, sp, #4 | 
 | 	.pad	#8 | 
 | 	sub	sp, sp, #8 | 
 | 	.setfp	fp, sp, #4 | 
 | 	add	fp, sp, #4 | 
 |  | 
 | 	@ epilogue: | 
 | 	add	sp, fp, #4 | 
 | 	bx	lr | 
 | 	.personality	__gxx_personality_v0 | 
 | 	.handlerdata | 
 | 	.fnend | 
 |  | 
 | @ CHECK: Section { | 
 | @ CHECK:   Name: .ARM.extab.TEST3 | 
 | @ CHECK:   SectionData ( | 
 | @ CHECK:     0000: 00000000 B0009B00                    |........| | 
 | @ CHECK:   ) | 
 | @ CHECK: } | 
 |  | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ TEST4: Check ".setfp fp, sp" and ".setfp fp, fp" directive. | 
 | @------------------------------------------------------------------------------- | 
 | 	.section	.TEST4 | 
 | 	.globl	func4 | 
 | 	.type	func4,%function | 
 | 	.align	2 | 
 | 	.fnstart | 
 | func4: | 
 | 	@ prologue: | 
 | 	.setfp	fp, sp, #8 | 
 | 	add	fp, sp, #8 | 
 | 	.setfp	fp, fp, #8 | 
 | 	add	fp, fp, #8 | 
 |  | 
 | 	@ epilogue: | 
 | 	sub	sp, fp, #16 | 
 | 	bx	lr | 
 | 	.personality	__gxx_personality_v0 | 
 | 	.handlerdata | 
 | 	.fnend | 
 |  | 
 | @ CHECK: Section { | 
 | @ CHECK:   Name: .ARM.extab.TEST4 | 
 | @ CHECK:   SectionData ( | 
 | @ CHECK:     0000: 00000000 B0439B00                    |.....C..| | 
 | @ CHECK:   ) | 
 | @ CHECK: } | 
 |  | 
 |  | 
 |  | 
 | @------------------------------------------------------------------------------- | 
 | @ TEST5: Check .setfp, .save, .setfp directive. | 
 | @------------------------------------------------------------------------------- | 
 | 	.section	.TEST5 | 
 | 	.globl	func5 | 
 | 	.type	func5,%function | 
 | 	.align	2 | 
 | 	.fnstart | 
 | func5: | 
 | 	@ prologue: | 
 | 	.setfp	fp, sp, #16 | 
 | 	add	fp, sp, #16 | 
 | 	.save	{r4, r5, r6, r7, r8} | 
 | 	push	{r4, r5, r6, r7, r8} | 
 | 	.pad	#8 | 
 | 	add	sp, sp, #8 | 
 | 	.pad	#8 | 
 | 	sub	sp, sp, #8 | 
 | 	.save	{r9, r10} | 
 | 	push	{r9, r10} | 
 | 	.setfp	fp, sp, #24 | 
 | 	add	fp, sp, #24 | 
 |  | 
 | 	@ epilogue: | 
 | 	sub	sp, fp, #24 | 
 | 	pop	{r9, r10} | 
 | 	add	sp, sp, #16 | 
 | 	pop	{r4, r5, r6, r7, r8} | 
 | 	bx	lr | 
 | 	.personality	__gxx_personality_v0 | 
 | 	.handlerdata | 
 | 	.fnend | 
 |  | 
 | @ CHECK: Section { | 
 | @ CHECK:   Name: .ARM.extab.TEST5 | 
 | @ CHECK:   SectionData ( | 
 | @ CHECK:     0000: 00000000 80459B01 B0A40360           |.....E.....`| | 
 | @ CHECK:   ) | 
 | @ CHECK: } |