# HG changeset patch # User Paul Boddie # Date 1511047160 -3600 # Node ID 2bc674143b083a0ae234ab562f2e9d41bd837200 # Parent 6272f9be2733daaf034527f8e36a008754641096 Save and restore $gp so that the text blitting functions do not cause crashes. diff -r 6272f9be2733 -r 2bc674143b08 vga.S --- a/vga.S Sat Nov 18 22:38:46 2017 +0100 +++ b/vga.S Sun Nov 19 00:19:20 2017 +0100 @@ -71,6 +71,7 @@ lw $t8, -28($k0) lw $ra, -32($k0) lw $sp, -36($k0) + lw $gp, -40($k0) .endm .macro load_state @@ -78,6 +79,7 @@ lw $s1, -48($k0) lw $s2, -52($k0) lw $s3, -56($k0) + lw $gp, -60($k0) .endm .macro save_affected @@ -90,6 +92,7 @@ sw $t8, -28($k0) sw $ra, -32($k0) sw $sp, -36($k0) + sw $gp, -40($k0) .endm .macro save_state @@ -97,6 +100,7 @@ sw $s1, -48($k0) sw $s2, -52($k0) sw $s3, -56($k0) + sw $gp, -60($k0) .endm _start: diff -r 6272f9be2733 -r 2bc674143b08 vga.h --- a/vga.h Sat Nov 18 22:38:46 2017 +0100 +++ b/vga.h Sun Nov 19 00:19:20 2017 +0100 @@ -22,6 +22,6 @@ #define SCREEN_LIMIT_KSEG0 (KSEG0_BASE + SCREEN_LIMIT) #define IRQ_STACK_LIMIT SCREEN_BASE_KSEG0 -#define IRQ_STACK_TOP (IRQ_STACK_LIMIT - 56) +#define IRQ_STACK_TOP (IRQ_STACK_LIMIT - 64) #endif /* __VGA_H__ */