brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 0560fab Raw
94 lines · plain
1@ Integrated test for ARM unwind directive parser and assembler.2 3@ This is a simplified real world test case generated from this C++ code4@ (with and without -fomit-frame-pointer)5@6@   extern void print(int, int, int, int, int);7@   extern void print(double, double, double, double, double);8@9@   void test(int a, int b, int c, int d, int e,10@             double m, double n, double p, double q, double r) {11@     try {12@       print(a, b, c, d, e);13@     } catch (...) {14@       print(m, n, p, q, r);15@     }16@   }17@18@ This test case should check the unwind opcode to adjust the opcode and19@ restore the general-purpose and VFP registers.20 21 22@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \23@ RUN:   | llvm-readobj -S --sd - | FileCheck %s24 25 26@-------------------------------------------------------------------------------27@ Assembly without frame pointer elimination28@-------------------------------------------------------------------------------29	.syntax unified30	.section	.TEST131	.globl	func132	.align	233	.type	func1,%function34func1:35	.fnstart36	.save	{r4, r11, lr}37	push	{r4, r11, lr}38	.setfp	r11, sp, #439	add	r11, sp, #440	.vsave	{d8, d9, d10, d11, d12}41	vpush	{d8, d9, d10, d11, d12}42	.pad	#2843	sub	sp, sp, #2844	sub	sp, r11, #4445	vpop	{d8, d9, d10, d11, d12}46	pop	{r4, r11, pc}47.Ltmp1:48	.size	func1, .Ltmp1-func149	.globl	__gxx_personality_v050	.personality __gxx_personality_v051	.handlerdata52	.fnend53 54@ CHECK: Section {55@ CHECK:   Name: .ARM.extab.TEST156@ CHECK:   SectionData (57@ CHECK:     0000: 00000000 C94A9B01 B0818484           |.....J......|58@ CHECK:   )59@ CHECK: }60 61 62 63@-------------------------------------------------------------------------------64@ Assembly with frame pointer elimination65@-------------------------------------------------------------------------------66	.section	.TEST267	.globl	func268	.align	269	.type	func2,%function70func2:71	.fnstart72	.save	{r4, lr}73	push	{r4, lr}74	.vsave	{d8, d9, d10, d11, d12}75	vpush	{d8, d9, d10, d11, d12}76	.pad	#2477	sub	sp, sp, #2478	add	sp, sp, #2479	vpop	{d8, d9, d10, d11, d12}80	pop	{r4, pc}81.Ltmp2:82	.size	func2, .Ltmp2-func283	.globl	__gxx_personality_v084	.personality __gxx_personality_v085	.handlerdata86	.fnend87 88@ CHECK: Section {89@ CHECK:   Name: .ARM.extab.TEST290@ CHECK:   SectionData (91@ CHECK:     0000: 00000000 84C90501 B0B0B0A8           |............|92@ CHECK:   )93@ CHECK: }94