1 /* SPDX-License-Identifier: GPL-2.0-only */
3 .section ".text._idt", "ax", @progbits
9 .global vec0, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, vec9
10 .global vec10, vec11, vec12, vec13, vec14, vec15, vec16, vec17, vec18, vec19
12 push $0 /* error code */
16 push $0 /* error code */
21 push $0 /* error code */
26 push $0 /* error code */
31 push $0 /* error code */
36 push $0 /* error code */
41 push $0 /* error code */
46 push $0 /* error code */
56 push $0 /* error code */
86 push $0 /* error code */
91 push $0 /* error code */
101 push $0 /* error code */
102 push $18 /* vector */
106 push $0 /* error code */
107 push $19 /* vector */
113 /* At this point, on x86-64, on the stack there is:
140 /* Pass pointer to struct as first argument */
143 /* Back up stack pointer */
146 /* Align stack to 16 bytes. */
151 /* Restore stack pointer from backup */
172 add $16, %rsp /* pop of the vector and error code */
175 /* At this point, on x86-32, on the stack there is:
186 /* Original stack pointer */
194 /* Save pointer to eregs structure */
196 /* Align stack to 16 bytes. */
197 andl $0xfffffff0, %esp
198 /* Save original stack pointer while keeping stack alignment. This
199 value is also the eregs argument x86_exception(). */
201 pushl %ebp /* Pointer to structure on the stack */
203 pop %esp /* Unwind the stack alignment and argument passing. */
209 popl %ebp /* Ignore saved %esp value */
214 addl $8, %esp /* pop of the vector and error code */