diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2008-03-11 21:21:47 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2008-03-11 21:21:47 -0400 |
commit | 1d01951aae985073e81a4332a7ad29ceb9294db7 (patch) | |
tree | 71e11674ed72f004c9cb9461ee234f7feabcdffe /src/biosvar.h | |
parent | 7a558e4417c74a0d7f2896178636b1d020d3fae9 (diff) | |
download | seabios-1d01951aae985073e81a4332a7ad29ceb9294db7.tar.gz |
Don't pass in ebp/esp to irq handlers.
The C code won't clobber these registers, so backing them up isn't needed.
Removing them saves a few bytes on the stack.
Diffstat (limited to 'src/biosvar.h')
-rw-r--r-- | src/biosvar.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/biosvar.h b/src/biosvar.h index 4def7f39..36794c38 100644 --- a/src/biosvar.h +++ b/src/biosvar.h @@ -287,13 +287,14 @@ struct ipl_s { #define UREG(ER, R, RH, RL) union { u32 ER; struct { u16 R; u16 R ## _hi; }; struct { u8 RL; u8 RH; u8 R ## _hilo; u8 R ## _hihi; }; } +// Layout of registers passed in to irq handlers. Note that this +// layout corresponds to code in romlayout.S - don't change it here +// without also updating the assembler code. struct bregs { u16 ds; u16 es; UREG(edi, di, di_hi, di_lo); UREG(esi, si, si_hi, si_lo); - UREG(ebp, bp, bp_hi, bp_lo); - UREG(esp, sp, sp_hi, sp_lo); UREG(ebx, bx, bh, bl); UREG(edx, dx, dh, dl); UREG(ecx, cx, ch, cl); |