Subversion Repositories HelenOS

Rev

Rev 1852 | Rev 1860 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1852 Rev 1855
Line 79... Line 79...
79
 
79
 
80
/*
80
/*
81
 * The following needs to be in sync with the
81
 * The following needs to be in sync with the
82
 * definition of the istate structure.
82
 * definition of the istate structure.
83
 */
83
 */
84
#define PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE    (STACK_WINDOW_SAVE_AREA_SIZE+(4*8))
84
#define PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE    (STACK_WINDOW_SAVE_AREA_SIZE+(12*8))
85
#define SAVED_TSTATE    -(1*8)
85
#define SAVED_TSTATE    -(1*8)
86
#define SAVED_TPC   -(2*8)
86
#define SAVED_TPC   -(2*8)
-
 
87
#define SAVED_TNPC  -(3*8)      /* <-- istate_t begins here */
-
 
88
/* alignment gap */
-
 
89
#define SAVED_I0    -(5*8)
87
#define SAVED_TNPC  -(3*8)
90
#define SAVED_I1    -(6*8)
-
 
91
#define SAVED_I2    -(7*8)
-
 
92
#define SAVED_I3    -(8*8)
-
 
93
#define SAVED_I4    -(9*8)
-
 
94
#define SAVED_I5    -(10*8)
-
 
95
#define SAVED_I6    -(11*8)
-
 
96
#define SAVED_I7    -(12*8)
88
 
97
 
89
.macro PREEMPTIBLE_HANDLER f
98
.macro PREEMPTIBLE_HANDLER f
90
    sethi %hi(\f), %g1
99
    sethi %hi(\f), %g1
91
    b preemptible_handler
100
    b preemptible_handler
92
    or %g1, %lo(\f), %g1
101
    or %g1, %lo(\f), %g1