Subversion Repositories HelenOS

Rev

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

Rev 2131 Rev 2307
Line 127... Line 127...
127
0:
127
0:
128
.if (\tl > 0)
128
.if (\tl > 0)
129
    wrpr %g0, 1, %tl
129
    wrpr %g0, 1, %tl
130
.endif
130
.endif
131
 
131
 
-
 
132
    /*
-
 
133
     * Switch from the MM globals.
-
 
134
     */
132
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
135
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
-
 
136
 
-
 
137
    /*
-
 
138
     * Read the Tag Access register for the higher-level handler.
-
 
139
     * This is necessary to survive nested DTLB misses.
-
 
140
     */
-
 
141
    mov VA_DMMU_TAG_ACCESS, %g2
-
 
142
    ldxa [%g2] ASI_DMMU, %g2
-
 
143
 
-
 
144
    /*
-
 
145
     * g2 will be passed as an argument to fast_data_access_mmu_miss().
-
 
146
     */
133
    PREEMPTIBLE_HANDLER fast_data_access_mmu_miss
147
    PREEMPTIBLE_HANDLER fast_data_access_mmu_miss
134
.endm
148
.endm
135
 
149
 
136
.macro FAST_DATA_ACCESS_PROTECTION_HANDLER tl
150
.macro FAST_DATA_ACCESS_PROTECTION_HANDLER tl
137
    /*
151
    /*
Line 140... Line 154...
140
 
154
 
141
.if (\tl > 0)
155
.if (\tl > 0)
142
    wrpr %g0, 1, %tl
156
    wrpr %g0, 1, %tl
143
.endif
157
.endif
144
 
158
 
-
 
159
    /*
-
 
160
     * Switch from the MM globals.
-
 
161
     */
145
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
162
    wrpr %g0, PSTATE_PRIV_BIT | PSTATE_AG_BIT, %pstate
-
 
163
 
-
 
164
    /*
-
 
165
     * Read the Tag Access register for the higher-level handler.
-
 
166
     * This is necessary to survive nested DTLB misses.
-
 
167
     */
-
 
168
    mov VA_DMMU_TAG_ACCESS, %g2
-
 
169
    ldxa [%g2] ASI_DMMU, %g2
-
 
170
 
-
 
171
    /*
-
 
172
     * g2 will be passed as an argument to fast_data_access_mmu_miss().
-
 
173
     */
146
    PREEMPTIBLE_HANDLER fast_data_access_protection
174
    PREEMPTIBLE_HANDLER fast_data_access_protection
147
.endm
175
.endm
148
 
176
 
149
#endif /* __ASM__ */
177
#endif /* __ASM__ */
150
 
178