Path: blob/master/tools/testing/selftests/kvm/lib/x86/handlers.S
51074 views
handle_exception:1push %r152push %r143push %r134push %r125push %r116push %r107push %r98push %r8910push %rdi11push %rsi12push %rbp13push %rbx14push %rdx15push %rcx16push %rax17mov %rsp, %rdi1819call route_exception2021pop %rax22pop %rcx23pop %rdx24pop %rbx25pop %rbp26pop %rsi27pop %rdi28pop %r829pop %r930pop %r1031pop %r1132pop %r1233pop %r1334pop %r1435pop %r153637/* Discard vector and error code. */38add $16, %rsp39iretq4041/*42* Build the handle_exception wrappers which push the vector/error code on the43* stack and an array of pointers to those wrappers.44*/45.pushsection .rodata46.globl idt_handlers47idt_handlers:48.popsection4950.macro HANDLERS has_error from to51vector = \from52.rept \to - \from + 153.align 85455/* Fetch current address and append it to idt_handlers. */56666 :57.pushsection .rodata58.quad 666b59.popsection6061.if ! \has_error62pushq $063.endif64pushq $vector65jmp handle_exception66vector = vector + 167.endr68.endm6970.global idt_handler_code71idt_handler_code:72HANDLERS has_error=0 from=0 to=773HANDLERS has_error=1 from=8 to=874HANDLERS has_error=0 from=9 to=975HANDLERS has_error=1 from=10 to=1476HANDLERS has_error=0 from=15 to=1677HANDLERS has_error=1 from=17 to=1778HANDLERS has_error=0 from=18 to=2557980.section .note.GNU-stack, "", %progbits818283