The PAL stack frame is 48 bytes, and entInt then allocates 19*8 = 152
bytes to save registers, leaving $sp 8 mod 16 at the call to
do_entInt. The Alpha calling convention requires 16-byte stack
alignment at calls.

Pad the save area to 20*8 bytes.

Signed-off-by: Matt Turner <[email protected]>
---
 console-low.S | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/console-low.S b/console-low.S
index 83adb2a..157a094 100644
--- a/console-low.S
+++ b/console-low.S
@@ -23,7 +23,8 @@
        .text
        .cfi_sections .debug_frame
 
-#define SAVE_ALL_SIZE  ((18+1)*8)
+/* 19 saved registers plus one pad slot to keep $sp 16-byte aligned. */
+#define SAVE_ALL_SIZE  (20*8)
 
        .globl  entInt
        .type   entInt, @function
-- 
2.54.0


Reply via email to