Subversion Repositories HelenOS

Rev

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

Rev 2071 Rev 2610
Line 75... Line 75...
75
    mov %l6, %g6
75
    mov %l6, %g6
76
    mov %l7, %g7
76
    mov %l7, %g7
77
.endm
77
.endm
78
 
78
 
79
/*
79
/*
80
 * The following needs to be in sync with the
80
 * The following needs to be in sync with the definition of the istate
-
 
81
 * structure. The one STACK_ITEM_SIZE is counted for space holding the 7th
-
 
82
 * argument to syscall_handler (i.e. syscall number) and the other
81
 * definition of the istate structure.
83
 * STACK_ITEM_SIZE is counted because of the required alignment.
82
 */
84
 */
83
#define PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE    (STACK_WINDOW_SAVE_AREA_SIZE+(12*8))
85
#define PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE    \
-
 
86
    (STACK_WINDOW_SAVE_AREA_SIZE + STACK_ARG_SAVE_AREA_SIZE + \
-
 
87
    (2 * STACK_ITEM_SIZE) + (12 * 8))
84
#define SAVED_TSTATE    -(1*8)
88
#define SAVED_TSTATE    -(1 * 8)
85
#define SAVED_TPC   -(2*8)
89
#define SAVED_TPC   -(2 * 8)
86
#define SAVED_TNPC  -(3*8)      /* <-- istate_t begins here */
90
#define SAVED_TNPC  -(3 * 8)    /* <-- istate_t begins here */
87
#define SAVED_Y     -(4*8)
91
#define SAVED_Y     -(4 * 8)
88
#define SAVED_I0    -(5*8)
92
#define SAVED_I0    -(5 * 8)
89
#define SAVED_I1    -(6*8)
93
#define SAVED_I1    -(6 * 8)
90
#define SAVED_I2    -(7*8)
94
#define SAVED_I2    -(7 * 8)
91
#define SAVED_I3    -(8*8)
95
#define SAVED_I3    -(8 * 8)
92
#define SAVED_I4    -(9*8)
96
#define SAVED_I4    -(9 * 8)
93
#define SAVED_I5    -(10*8)
97
#define SAVED_I5    -(10 * 8)
94
#define SAVED_I6    -(11*8)
98
#define SAVED_I6    -(11 * 8)
95
#define SAVED_I7    -(12*8)
99
#define SAVED_I7    -(12 * 8)
96
 
100
 
97
.macro PREEMPTIBLE_HANDLER f
101
.macro PREEMPTIBLE_HANDLER f
98
    sethi %hi(\f), %g1
102
    sethi %hi(\f), %g1
99
    b preemptible_handler
103
    b preemptible_handler
100
    or %g1, %lo(\f), %g1
104
    or %g1, %lo(\f), %g1