diff options
author | dzwdz | 2021-07-24 19:19:34 +0200 |
---|---|---|
committer | dzwdz | 2021-07-24 19:19:34 +0200 |
commit | 5ea03fb258a9952846e73f3061bb4fca36ef9fd6 (patch) | |
tree | 2f55d684ada0ad962a61f1aaf65fcdc1ddcb5f7f /src/kernel/arch/i386/registers.h | |
parent | ae9c1d1b16061242068353ff9064c8c9ef63b577 (diff) |
merge the `register` and `register_pushad` structs
Diffstat (limited to 'src/kernel/arch/i386/registers.h')
-rw-r--r-- | src/kernel/arch/i386/registers.h | 12 |
1 files changed, 5 insertions, 7 deletions
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 <stdint.h> -// 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 |