summaryrefslogtreecommitdiff
path: root/nuttx/arch/sh
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-11-06 18:51:14 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2008-11-06 18:51:14 +0000
commit1c8f86b00d13343399a2ed9238eb6f0d37fbd13e (patch)
tree3d0bc033f122e707a2c88890d598d93031457414 /nuttx/arch/sh
parent469e63c3eb782b664dd75f0c464812b0bf1eba20 (diff)
downloadpx4-nuttx-1c8f86b00d13343399a2ed9238eb6f0d37fbd13e.tar.gz
px4-nuttx-1c8f86b00d13343399a2ed9238eb6f0d37fbd13e.tar.bz2
px4-nuttx-1c8f86b00d13343399a2ed9238eb6f0d37fbd13e.zip
SH-1 updates
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1142 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/sh')
-rw-r--r--nuttx/arch/sh/include/irq.h67
-rw-r--r--nuttx/arch/sh/include/types.h2
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__ */