diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-11-06 18:51:14 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-11-06 18:51:14 +0000 |
commit | 1c8f86b00d13343399a2ed9238eb6f0d37fbd13e (patch) | |
tree | 3d0bc033f122e707a2c88890d598d93031457414 | |
parent | 469e63c3eb782b664dd75f0c464812b0bf1eba20 (diff) | |
download | nuttx-1c8f86b00d13343399a2ed9238eb6f0d37fbd13e.tar.gz nuttx-1c8f86b00d13343399a2ed9238eb6f0d37fbd13e.tar.bz2 nuttx-1c8f86b00d13343399a2ed9238eb6f0d37fbd13e.zip |
SH-1 updates
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1142 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r-- | nuttx/arch/sh/include/irq.h | 67 | ||||
-rw-r--r-- | nuttx/arch/sh/include/types.h | 2 |
2 files changed, 11 insertions, 58 deletions
diff --git a/nuttx/arch/sh/include/irq.h b/nuttx/arch/sh/include/irq.h index cc847567d..65821e653 100644 --- a/nuttx/arch/sh/include/irq.h +++ b/nuttx/arch/sh/include/irq.h @@ -51,17 +51,7 @@ * Definitions ****************************************************************************/ -/* IRQ Stack Frame Format: - * - * Context is always saved/restored in the same way: - * - * (1) stmia rx, {r0-r14} - * (2) then the PC and CPSR - * - * This results in the following set of indices that - * can be used to access individual registers in the - * xcp.regs array: - */ +/* IRQ Stack Frame Format: */ #define REG_R0 (0) #define REG_R1 (1) @@ -79,71 +69,34 @@ #define REG_R13 (13) #define REG_R14 (14) #define REG_R15 (15) -#define REG_CPSR (16) +#define REG_SP REG_R15 +#define REG_SR (16) +#define REG_PC (17) -#define XCPTCONTEXT_REGS (17) +#define XCPTCONTEXT_REGS (18) #define XCPTCONTEXT_SIZE (4 * XCPTCONTEXT_REGS) -#define REG_A1 REG_R0 -#define REG_A2 REG_R1 -#define REG_A3 REG_R2 -#define REG_A4 REG_R3 -#define REG_V1 REG_R4 -#define REG_V2 REG_R5 -#define REG_V3 REG_R6 -#define REG_V4 REG_R7 -#define REG_V5 REG_R8 -#define REG_V6 REG_R9 -#define REG_V7 REG_R10 -#define REG_SB REG_R9 -#define REG_SL REG_R10 -#define REG_FP REG_R11 -#define REG_IP REG_R12 -#define REG_SP REG_R13 -#define REG_LR REG_R14 -#define REG_PC REG_R15 - /**************************************************************************** * Public Types ****************************************************************************/ -/* This struct defines the way the registers are stored. We - * need to save: - * - * 1 CPSR - * 7 Static registers, v1-v7 (aka r4-r10) - * 1 Frame pointer, fp (aka r11) - * 1 Stack pointer, sp (aka r13) - * 1 Return address, lr (aka r14) - * --- - * 11 (XCPTCONTEXT_USER_REG) - * - * On interrupts, we also need to save: - * 4 Volatile registers, a1-a4 (aka r0-r3) - * 1 Scratch Register, ip (aka r12) - *--- - * 5 (XCPTCONTEXT_IRQ_REGS) - * - * For a total of 17 (XCPTCONTEXT_REGS) - */ +/* This struct defines the way the registers are stored. We need to save: */ #ifndef __ASSEMBLY__ struct xcptcontext { - /* The following function pointer is non-zero if there - * are pending signals to be processed. + /* The following function pointer is non-zero if there are pending signals + * to be processed. */ #ifndef CONFIG_DISABLE_SIGNALS void *sigdeliver; /* Actual type is sig_deliver_t */ #endif - /* These are saved copies of LR and CPSR used during - * signal processing. - */ + /* These are saved copies of LR and SR used during signal processing. */ uint32 saved_pc; - uint32 saved_cpsr; + uint32 saved_sr; /* Register save area */ diff --git a/nuttx/arch/sh/include/types.h b/nuttx/arch/sh/include/types.h index 531632620..139cee2c4 100644 --- a/nuttx/arch/sh/include/types.h +++ b/nuttx/arch/sh/include/types.h @@ -71,7 +71,7 @@ typedef unsigned long long uint64; * irqsave() */ -typedef unsigned int irqstate_t; +typedef unsigned long irqstate_t; #endif /* __ASSEMBLY__ */ |