From 3d4342d19389c433b85eaeb383ae924d918fa0c6 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Tue, 26 May 2015 15:21:52 -0400 Subject: [PATCH] Fix exception stack frame for or1k - We do not need a red zone here, as we do not operate on the current stack, but always use the clear exception stack. Also reserve two extra words for the context to store EPCR and ESR. * or1k/crt0.S: Fix exception stack frame * or1k/exception-asm.S: ditto --- libgloss/ChangeLog | 5 +++++ libgloss/or1k/crt0.S | 4 ++-- libgloss/or1k/exceptions-asm.S | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libgloss/ChangeLog b/libgloss/ChangeLog index 1ca803fcb..adda15512 100644 --- a/libgloss/ChangeLog +++ b/libgloss/ChangeLog @@ -1,3 +1,8 @@ +2015-05-26 Stefan Wallentowitz + + * or1k/crt0.S: Fix exception stack frame + * or1k/exception-asm.S: ditto + 2015-05-26 Stefan Wallentowitz * or1k/interruts-asm.S: Change registers to callee-saved. diff --git a/libgloss/or1k/crt0.S b/libgloss/or1k/crt0.S index f1753d0d7..ecaf9172f 100644 --- a/libgloss/or1k/crt0.S +++ b/libgloss/or1k/crt0.S @@ -61,10 +61,10 @@ // Reserved stack size for exceptions (can usually be smaller than normal stack) #define EXCEPTION_STACK_SIZE 8192 -// Size of redzone + size of space required to store state +// Size of space required to store state // This value must match that in the support library or1k_exception_handler // function -#define EXCEPTION_STACK_FRAME (128+128) +#define EXCEPTION_STACK_FRAME 136 .extern _or1k_stack_top /* points to the next address after the stack */ .extern _or1k_stack_bottom /* points to the last address in the stack */ diff --git a/libgloss/or1k/exceptions-asm.S b/libgloss/or1k/exceptions-asm.S index 7248683f5..762a509a9 100644 --- a/libgloss/or1k/exceptions-asm.S +++ b/libgloss/or1k/exceptions-asm.S @@ -24,7 +24,7 @@ */ /* -------------------------------------------------------------------------- */ // Warning - this must be the same as specified in crt0.S -#define EXCEPTION_STACK_SIZE 128+128 +#define EXCEPTION_STACK_SIZE 136 .extern _or1k_exception_handler_table