From cff10164f36b97f8c7ec65096ac3e7f379ca805b Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Sun, 26 Jan 2014 21:26:40 +0100 Subject: [PATCH] Cleanup assembly --- kernel/src/common.s | 27 +++++++++++++++++++++++++++ kernel/src/irqs.s | 24 ++---------------------- kernel/src/syscalls.s | 24 ++---------------------- 3 files changed, 31 insertions(+), 44 deletions(-) diff --git a/kernel/src/common.s b/kernel/src/common.s index e500abd4..5aaa8451 100644 --- a/kernel/src/common.s +++ b/kernel/src/common.s @@ -27,3 +27,30 @@ mov gs, eax .endm +.macro save_context + push r12 + push r11 + push r10 + push r9 + push r8 + push rdi + push rsi + push rdx + push rcx + push rbx + push rax +.endm + +.macro restore_context + pop rax + pop rbx + pop rcx + pop rdx + pop rsi + pop rdi + pop r8 + pop r9 + pop r10 + pop r11 + pop r12 +.endm diff --git a/kernel/src/irqs.s b/kernel/src/irqs.s index 19d57df1..95800590 100644 --- a/kernel/src/irqs.s +++ b/kernel/src/irqs.s @@ -39,17 +39,7 @@ create_irq 15 // Common handler irq_common_handler: - push r12 - push r11 - push r10 - push r9 - push r8 - push rdi - push rsi - push rdx - push rcx - push rbx - push rax + save_context restore_kernel_segments @@ -57,17 +47,7 @@ irq_common_handler: restore_user_segments - pop rax - pop rbx - pop rcx - pop rdx - pop rsi - pop rdi - pop r8 - pop r9 - pop r10 - pop r11 - pop r12 + restore_context //Was pushed by the base handler code add rsp, 8 diff --git a/kernel/src/syscalls.s b/kernel/src/syscalls.s index 70d32ff8..14f2242f 100644 --- a/kernel/src/syscalls.s +++ b/kernel/src/syscalls.s @@ -33,17 +33,7 @@ create_syscall 8 create_syscall 9 syscall_common_handler: - push r12 - push r11 - push r10 - push r9 - push r8 - push rdi - push rsi - push rdx - push rcx - push rbx - push rax + save_context restore_kernel_segments @@ -51,17 +41,7 @@ syscall_common_handler: restore_user_segments - pop rax - pop rbx - pop rcx - pop rdx - pop rsi - pop rdi - pop r8 - pop r9 - pop r10 - pop r11 - pop r12 + restore_context //Was pushed by the base handler code add rsp, 8