aboutsummaryrefslogtreecommitdiffstats
path: root/src/biosvar.h
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-03-11 21:21:47 -0400
committerKevin O'Connor <kevin@koconnor.net>2008-03-11 21:21:47 -0400
commit1d01951aae985073e81a4332a7ad29ceb9294db7 (patch)
tree71e11674ed72f004c9cb9461ee234f7feabcdffe /src/biosvar.h
parent7a558e4417c74a0d7f2896178636b1d020d3fae9 (diff)
downloadseabios-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.h5
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);