From 5ea03fb258a9952846e73f3061bb4fca36ef9fd6 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sat, 24 Jul 2021 19:19:34 +0200 Subject: merge the `register` and `register_pushad` structs --- src/kernel/arch/i386/registers.h | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/kernel/arch/i386/registers.h') diff --git a/src/kernel/arch/i386/registers.h b/src/kernel/arch/i386/registers.h index 1264139..cca374d 100644 --- a/src/kernel/arch/i386/registers.h +++ b/src/kernel/arch/i386/registers.h @@ -1,15 +1,13 @@ #pragma once #include -// TODO merge registers and registers_pushad - struct registers { - uint32_t eax, ebx, ecx, edx, esi, edi; - void *ebp, *esp, *eip; -}; - -struct registers_pushad { + /* those are in the order of pushad/popad - so you can load/save this + * struct in (almost) one instruction */ uint32_t edi, esi, ebp, esp, ebx, edx, ecx, eax; + + // not part of pushad/popad, but still useful + uint32_t eip; } __attribute__((__packed__)); // saves a return value according to the SysV ABI -- cgit v1.2.3