1#; $ as -o test.o gas-cfi-test.s && gcc -nostdlib -o test test.o
2
3	.text
4	.align 4
5	.level 1.1
6
7.globl func_locvars
8	.type	func_locvars, @function
9func_locvars:
10	.PROC
11	.CALLINFO FRAME=0x1234,NO_CALLS,SAVE_SP,ENTRY_GR=3
12	.ENTRY
13	.cfi_startproc
14	copy %r3,%r1
15	copy %r30,%r3
16	.cfi_def_cfa_register r3
17	stwm %r1,0x1234(%r30)
18	.cfi_adjust_cfa_offset 0x1234
19	ldo 64(%r3),%r30
20	ldwm -64(%r30),%r3
21	.cfi_def_cfa_register sp
22	bv,n %r0(%r2)
23	.cfi_endproc
24	.EXIT
25	.PROCEND
26
27.globl func_prologue
28	.type	func_prologue, @function
29func_prologue:
30	.PROC
31	.CALLINFO FRAME=64,CALLS,SAVE_RP,SAVE_SP,ENTRY_GR=3
32	.ENTRY
33	.cfi_startproc
34#; This is not ABI-compliant but helps the test to run on both
35#; 32-bit and 64-bit targets
36	stw %r2,-24(%r30)
37	copy %r3,%r1
38	copy %r30,%r3
39	.cfi_def_cfa_register r3
40	.cfi_offset r2, -24
41	stwm %r1,64(%r30)
42	bl func_locvars,%r2
43	nop
44	ldw -20(%r3),%r2
45	ldo 64(%r3),%r30
46	ldwm -64(%r30),%r3
47	.cfi_def_cfa_register sp
48	bv,n %r0(%r2)
49	.cfi_endproc
50	.EXIT
51	.PROCEND
52
53	.align 4
54.globl main
55	.type	main, @function
56main:
57	.PROC
58	.CALLINFO CALLS
59	.ENTRY
60	#; tail call - simple function that doesn't touch the stack
61	.cfi_startproc
62	b func_prologue
63	nop
64	.cfi_endproc
65	.EXIT
66	.PROCEND
67