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 |