summaryrefslogtreecommitdiff
path: root/src/libc/intr.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/libc/intr.s')
-rw-r--r--src/libc/intr.s13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/libc/intr.s b/src/libc/intr.s
index 008387d..dcc61fe 100644
--- a/src/libc/intr.s
+++ b/src/libc/intr.s
@@ -2,19 +2,12 @@
.global intr_trampoline
.type intr_trampoline, @function
intr_trampoline:
- push %rax
- push %rdx
+ mov %rsp, %rdi /* pass intr_data as the argument */
+ and $~0xF, %rsp
call *_intr(%rip)
- pop %rdx
- pop %rax
- pop tmprip(%rip)
- pop %rsp
- jmp *tmprip(%rip)
+ int3 /* you weren't supposed to return */
.section .bss
-tmprip:
- .skip 8
-
.global _intr
_intr:
.skip 8