diff packages/hal/mn10300/am31/current/include/var_arch.h @ 76:435cced73e2f ecos-v1_3_1-release

eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
author jlarmour
date Tue, 28 Mar 2000 14:10:45 +0000
parents bf00f99aec69
children e0c0827131d1
line wrap: on
line diff
--- a/packages/hal/mn10300/am31/current/include/var_arch.h
+++ b/packages/hal/mn10300/am31/current/include/var_arch.h
@@ -50,5 +50,35 @@
 #include <cyg/infra/cyg_type.h>
 
 //--------------------------------------------------------------------------
+// Processor saved states:
+
+typedef struct HAL_SavedRegisters
+{
+    // These are common to all saved states and are in the order
+    // stored and loaded by the movm instruction.
+    CYG_ADDRWORD        vector;         /* Vector number/dummy          */
+    CYG_ADDRWORD        lar;            /* Loop address register        */
+    CYG_ADDRWORD        lir;            /* Loop instruction register    */
+    CYG_ADDRWORD        mdr;            /* Multiply/Divide register     */
+    CYG_ADDRWORD        a1;
+    CYG_ADDRWORD        a0;
+    CYG_ADDRWORD        d1;
+    CYG_ADDRWORD        d0;
+    CYG_ADDRWORD        a3;
+    CYG_ADDRWORD        a2;
+    CYG_ADDRWORD        d3;
+    CYG_ADDRWORD        d2;
+    
+    /* On interrupts the PC and PSW are pushed automatically by the     */
+    /* CPU and SP is pushed for debugging reasons. On a thread switch   */
+    /* the saved context is made to look the same.                      */
+
+    CYG_ADDRWORD  sp;             /* Saved copy of SP in some states      */
+    CYG_ADDRWORD  psw;            /* Status word                          */
+    CYG_ADDRWORD  pc;             /* Program Counter                      */
+    
+} HAL_SavedRegisters;
+
+//--------------------------------------------------------------------------
 #endif // CYGONCE_HAL_VAR_ARCH_H
 // End of var_arch.h