A handful of size optimizations for -DREALLY_TINY

This commit is contained in:
Micah Dowty 2011-03-03 19:37:13 +00:00
parent 2a7c8577f5
commit 962563d1e7
2 changed files with 27 additions and 2 deletions

View file

@ -102,7 +102,7 @@ target: $(TARGET) $(VMX_TARGET)
# optimization phase. # optimization phase.
$(ELF_TARGET): $(SOURCES) $(ELF_TARGET): $(SOURCES)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(SOURCES) $(CC) $(LDFLAGS) $(DEFS) $(CFLAGS) -o $@ $(SOURCES)
clean: clean:
rm -f $(TARGET) $(ELF_TARGET) $(LST_TARGET) $(VMX_TARGET) *.o rm -f $(TARGET) $(ELF_TARGET) $(LST_TARGET) $(VMX_TARGET) *.o

View file

@ -41,7 +41,15 @@
SVGADevice gSVGA; SVGADevice gSVGA;
static void SVGAFIFOFull(void); static void SVGAFIFOFull(void);
#ifndef REALLY_TINY
static void SVGAInterruptHandler(int vector); static void SVGAInterruptHandler(int vector);
#endif
#ifdef REALLY_TINY
#define Console_Panic(x)
#define SVGA_Panic(x)
#endif
/* /*
@ -148,6 +156,7 @@ SVGA_Init(void)
* device by the BIOS. * device by the BIOS.
*/ */
#ifndef REALLY_TINY
if (gSVGA.capabilities & SVGA_CAP_IRQMASK) { if (gSVGA.capabilities & SVGA_CAP_IRQMASK) {
uint8 irq = PCI_ConfigRead8(&gSVGA.pciAddr, offsetof(PCIConfigSpace, intrLine)); uint8 irq = PCI_ConfigRead8(&gSVGA.pciAddr, offsetof(PCIConfigSpace, intrLine));
@ -164,6 +173,7 @@ SVGA_Init(void)
Intr_SetHandler(IRQ_VECTOR(irq), SVGAInterruptHandler); Intr_SetHandler(IRQ_VECTOR(irq), SVGAInterruptHandler);
Intr_SetMask(irq, TRUE); Intr_SetMask(irq, TRUE);
} }
#endif
SVGA_Enable(); SVGA_Enable();
} }
@ -232,6 +242,7 @@ SVGA_Enable(void)
* then ensures that we received all applicable interrupts. * then ensures that we received all applicable interrupts.
*/ */
#ifndef REALLY_TINY
if (gSVGA.capabilities & SVGA_CAP_IRQMASK) { if (gSVGA.capabilities & SVGA_CAP_IRQMASK) {
SVGA_WriteReg(SVGA_REG_IRQMASK, SVGA_IRQFLAG_ANY_FENCE); SVGA_WriteReg(SVGA_REG_IRQMASK, SVGA_IRQFLAG_ANY_FENCE);
@ -251,6 +262,7 @@ SVGA_Enable(void)
SVGA_WaitForIRQ(); SVGA_WaitForIRQ();
} }
#endif
} }
@ -329,6 +341,7 @@ SVGA_SetMode(uint32 width, // IN
*----------------------------------------------------------------------------- *-----------------------------------------------------------------------------
*/ */
#ifndef REALLY_TINY
void void
SVGA_Panic(const char *msg) // IN SVGA_Panic(const char *msg) // IN
{ {
@ -336,6 +349,7 @@ SVGA_Panic(const char *msg) // IN
ConsoleVGA_Init(); ConsoleVGA_Init();
Console_Panic(msg); Console_Panic(msg);
} }
#endif
/* /*
@ -359,8 +373,10 @@ SVGA_Panic(const char *msg) // IN
void void
SVGA_DefaultFaultHandler(int vector) // IN SVGA_DefaultFaultHandler(int vector) // IN
{ {
#ifndef REALLY_TINY
SVGA_Disable(); SVGA_Disable();
Console_UnhandledFault(vector); Console_UnhandledFault(vector);
#endif
} }
@ -887,6 +903,7 @@ SVGA_FIFOReserveEscape(uint32 nsid, // IN
void void
SVGAFIFOFull(void) SVGAFIFOFull(void)
{ {
#ifndef REALLY_TINY
if (SVGA_IsFIFORegValid(SVGA_FIFO_FENCE_GOAL) && if (SVGA_IsFIFORegValid(SVGA_FIFO_FENCE_GOAL) &&
(gSVGA.capabilities & SVGA_CAP_IRQMASK)) { (gSVGA.capabilities & SVGA_CAP_IRQMASK)) {
@ -917,6 +934,7 @@ SVGAFIFOFull(void)
SVGA_WriteReg(SVGA_REG_SYNC, 1); SVGA_WriteReg(SVGA_REG_SYNC, 1);
SVGA_ReadReg(SVGA_REG_BUSY); SVGA_ReadReg(SVGA_REG_BUSY);
} }
#endif
} }
@ -1053,6 +1071,7 @@ SVGA_SyncToFence(uint32 fence) // IN
return; return;
} }
#ifndef REALLY_TINY
if (SVGA_IsFIFORegValid(SVGA_FIFO_FENCE_GOAL) && if (SVGA_IsFIFORegValid(SVGA_FIFO_FENCE_GOAL) &&
(gSVGA.capabilities & SVGA_CAP_IRQMASK)) { (gSVGA.capabilities & SVGA_CAP_IRQMASK)) {
@ -1104,7 +1123,9 @@ SVGA_SyncToFence(uint32 fence) // IN
SVGA_WriteReg(SVGA_REG_IRQMASK, 0); SVGA_WriteReg(SVGA_REG_IRQMASK, 0);
} else { } else
#endif // REALLY_TINY
{
/* /*
* Sync-to-fence mechanism for older hosts. Wake up the host, * Sync-to-fence mechanism for older hosts. Wake up the host,
* and spin on BUSY until we've reached the fence. This * and spin on BUSY until we've reached the fence. This
@ -1121,6 +1142,7 @@ SVGA_SyncToFence(uint32 fence) // IN
} }
} }
#ifndef REALLY_TINY
if (!SVGA_HasFencePassed(fence)) { if (!SVGA_HasFencePassed(fence)) {
/* /*
* This shouldn't happen. If it does, there might be a bug in * This shouldn't happen. If it does, there might be a bug in
@ -1128,6 +1150,7 @@ SVGA_SyncToFence(uint32 fence) // IN
*/ */
SVGA_Panic("SyncToFence failed!"); SVGA_Panic("SyncToFence failed!");
} }
#endif
} }
@ -1418,6 +1441,7 @@ SVGA_WaitForIRQ(void)
*----------------------------------------------------------------------------- *-----------------------------------------------------------------------------
*/ */
#ifndef REALLY_TINY
void void
SVGAInterruptHandler(int vector) // IN (unused) SVGAInterruptHandler(int vector) // IN (unused)
{ {
@ -1450,6 +1474,7 @@ SVGAInterruptHandler(int vector) // IN (unused)
gSVGA.irq.switchContext = FALSE; gSVGA.irq.switchContext = FALSE;
} }
} }
#endif
/* /*