trapasm64.S (597B)
1 2 # vectors.S sends all traps here. 3 .globl alltraps 4 alltraps: 5 # Build trap frame. 6 push %r15 7 push %r14 8 push %r13 9 push %r12 10 push %r11 11 push %r10 12 push %r9 13 push %r8 14 push %rdi 15 push %rsi 16 push %rbp 17 push %rdx 18 push %rcx 19 push %rbx 20 push %rax 21 22 mov %rsp, %rdi # frame in arg1 23 call trap 24 25 # Return falls through to trapret... 26 .globl trapret 27 trapret: 28 pop %rax 29 pop %rbx 30 pop %rcx 31 pop %rdx 32 pop %rbp 33 pop %rsi 34 pop %rdi 35 pop %r8 36 pop %r9 37 pop %r10 38 pop %r11 39 pop %r12 40 pop %r13 41 pop %r14 42 pop %r15 43 44 # discard trapnum and errorcode 45 add $16, %rsp 46 iretq