]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
1 | .text |
2 | .globl func | |
3 | .def func; .scl 2; .type 32; .endef | |
4 | .seh_proc func | |
5 | func: | |
6 | .seh_pushframe @code | |
7 | subq $24, %rsp | |
8 | .seh_stackalloc 24 | |
9 | movq %rsi, 16(%rsp) | |
10 | .seh_savereg %rsi, 16 | |
11 | movups %xmm8, (%rsp) | |
12 | .seh_savexmm %xmm8, 0 | |
13 | pushq %rbx | |
14 | .seh_pushreg 3 | |
15 | mov %rsp, %rbx | |
16 | .seh_setframe 3, 0 | |
17 | .seh_endprologue | |
18 | .seh_handler __C_specific_handler, @except | |
19 | .seh_handlerdata | |
20 | .long 0 | |
21 | .text | |
22 | .seh_startchained | |
23 | .seh_endprologue | |
24 | .seh_endchained | |
25 | lea (%rbx), %rsp | |
26 | pop %rbx | |
27 | addq $24, %rsp | |
28 | ret | |
29 | .seh_endproc | |
30 | ||
31 | // Test emission of small functions. | |
32 | .globl smallFunc | |
33 | .def smallFunc; .scl 2; .type 32; .endef | |
34 | .seh_proc smallFunc | |
35 | smallFunc: | |
36 | ret | |
37 | .seh_endproc | |
38 | ||
39 | // Function with big stack allocation. | |
40 | .globl allocFunc | |
41 | .def allocFunc; .scl 2; .type 32; .endef | |
42 | .seh_proc allocFunc | |
43 | allocFunc: | |
44 | .seh_pushframe @code | |
45 | subq $65520, %rsp | |
46 | .seh_stackalloc 65520 | |
47 | sub $8454128, %rsp | |
48 | .seh_stackalloc 8454128 | |
49 | .seh_endprologue | |
50 | add $8454128, %rsp | |
51 | addq $65520, %rsp | |
52 | ret | |
53 | .seh_endproc |