From fed402db9f07a884ada2c96768923fe70d39bbed Mon Sep 17 00:00:00 2001 From: dfr Date: Fri, 2 Feb 2001 10:20:30 +0000 Subject: * Move exception_return to exception.s which is a more logical home for it. * Optimise the return path for syscalls so that they only restore a minimal set of registers instead of performing a full exception_return. A new flag in the trapframe indicates that the frame only holds partial state. When it is necessary to perform a full state restore (e.g. after an execve or signal), the flag is cleared to force a full restore. --- sys/alpha/include/frame.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'sys/alpha/include') diff --git a/sys/alpha/include/frame.h b/sys/alpha/include/frame.h index 6d8cceb..7b25696 100644 --- a/sys/alpha/include/frame.h +++ b/sys/alpha/include/frame.h @@ -74,18 +74,16 @@ #define FRAME_T12 24 #define FRAME_AT 25 #define FRAME_SP 26 +#define FRAME_FLAGS 27 +#define FRAME_FLAGS_SYSCALL 1 /* partial frame for syscalls */ /* The following are set only when a signal is to be delivered to a process. */ -#define FRAME_TRAPARG_A0 27 -#define FRAME_TRAPARG_A1 28 -#define FRAME_TRAPARG_A2 29 -/* this is a flag area to see whether we need to restore all registers */ -#define FRAME_FLAGS 30 +#define FRAME_TRAPARG_A0 28 +#define FRAME_TRAPARG_A1 29 +#define FRAME_TRAPARG_A2 30 -#define FRAME_SW_SIZE (FRAME_FLAGS + 1) +#define FRAME_SW_SIZE (FRAME_TRAPARG_A2 + 1) #define FRAME_HW_OFFSET FRAME_SW_SIZE -#define FRAME_FLAGS_SYSCALL 0x1 - #define FRAME_PS (FRAME_HW_OFFSET + ALPHA_HWFRAME_PS) #define FRAME_PC (FRAME_HW_OFFSET + ALPHA_HWFRAME_PC) #define FRAME_GP (FRAME_HW_OFFSET + ALPHA_HWFRAME_GP) -- cgit v1.1