4 #; - function with a space on the stack
5 #; allocated for local variables
7 .type func_locvars,@function
11 #; alocate space for local vars
13 .cfi_adjust_cfa_offset 0x1234
18 #; release space of local vars and return
20 .cfi_adjust_cfa_offset -0x1234
25 #; - functions that begins with standard
26 #; prologue: "pushq %rbp; movq %rsp,%rbp"
28 .type func_prologue,@function
32 #; prologue, CFI is valid after
38 .cfi_def_cfa_register ebp
44 #; epilogue with valid CFI
45 #; (we're better than gcc :-)
47 .cfi_def_cfa_register esp
52 #; - function that moves frame pointer to
53 #; another register (ebx) and then allocates
54 #; a space for local variables
56 .type func_otherreg,@function
60 #; save frame pointer to ebx
62 .cfi_def_cfa_register ebx
64 #; alocate space for local vars
65 #; (no .cfi_{def,adjust}_cfa_offset here,
66 #; because CFA is computed from ebx!)
73 #; restore frame pointer from ebx
85 #; only function body that doesn't
86 #; touch the stack at all.
94 #; - standard entry point
96 .type _start,@function
107 #; func_all_registers
108 #; - test for all .cfi register numbers.
109 #; This function is never called and the CFI info doesn't make sense.
111 .type func_all_registers,@function
113 .cfi_startproc simple
115 .cfi_undefined eip ; nop
116 .cfi_undefined eax ; nop
117 .cfi_undefined ecx ; nop
118 .cfi_undefined edx ; nop
119 .cfi_undefined ebx ; nop
120 .cfi_undefined esp ; nop
121 .cfi_undefined ebp ; nop
122 .cfi_undefined esi ; nop
123 .cfi_undefined edi ; nop
124 .cfi_undefined eflags ; nop
126 .cfi_undefined es ; nop
127 .cfi_undefined cs ; nop
128 .cfi_undefined ds ; nop
129 .cfi_undefined ss ; nop
130 .cfi_undefined fs ; nop
131 .cfi_undefined gs ; nop
132 .cfi_undefined tr ; nop
133 .cfi_undefined ldtr ; nop
135 .cfi_undefined mxcsr ; nop
136 .cfi_undefined xmm0 ; nop
137 .cfi_undefined xmm1 ; nop
138 .cfi_undefined xmm2 ; nop
139 .cfi_undefined xmm3 ; nop
140 .cfi_undefined xmm4 ; nop
141 .cfi_undefined xmm5 ; nop
142 .cfi_undefined xmm6 ; nop
143 .cfi_undefined xmm7 ; nop
145 .cfi_undefined fcw ; nop
146 .cfi_undefined fsw ; nop
147 .cfi_undefined st ; nop
148 .cfi_undefined st(1) ; nop
149 .cfi_undefined st(2) ; nop
150 .cfi_undefined st(3) ; nop
151 .cfi_undefined st(4) ; nop
152 .cfi_undefined st(5) ; nop
153 .cfi_undefined st(6) ; nop
154 .cfi_undefined st(7) ; nop
156 .cfi_undefined mm0 ; nop
157 .cfi_undefined mm1 ; nop
158 .cfi_undefined mm2 ; nop
159 .cfi_undefined mm3 ; nop
160 .cfi_undefined mm4 ; nop
161 .cfi_undefined mm5 ; nop
162 .cfi_undefined mm6 ; nop
163 .cfi_undefined mm7 ; nop