Lines Matching refs:scratch_reg
199 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
201 mov %cr3, \scratch_reg
202 ADJUST_KERNEL_CR3 \scratch_reg
203 mov \scratch_reg, %cr3
210 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
212 mov %cr3, \scratch_reg
219 movq \scratch_reg, \scratch_reg2
220 andq $(0x7FF), \scratch_reg /* mask ASID */
221 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
225 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
226 movq \scratch_reg2, \scratch_reg
230 movq \scratch_reg2, \scratch_reg
231 SET_NOFLUSH_BIT \scratch_reg
235 orq $(PTI_USER_PCID_MASK), \scratch_reg
239 orq $(PTI_USER_PGTABLE_MASK), \scratch_reg
240 mov \scratch_reg, %cr3
244 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
246 SWITCH_TO_USER_CR3_NOSTACK scratch_reg=\scratch_reg scratch_reg2=%rax
250 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
252 movq %cr3, \scratch_reg
253 movq \scratch_reg, \save_reg
259 bt $PTI_USER_PGTABLE_BIT, \scratch_reg
262 ADJUST_KERNEL_CR3 \scratch_reg
263 movq \scratch_reg, %cr3
268 .macro RESTORE_CR3 scratch_reg:req save_reg:req
284 movq \save_reg, \scratch_reg
285 andq $(0x7FF), \scratch_reg
286 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
289 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
306 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
308 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
310 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
312 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
314 .macro RESTORE_CR3 scratch_reg:req save_reg:req
344 .macro SAVE_AND_SET_GSBASE scratch_reg:req save_reg:req
346 GET_PERCPU_BASE \scratch_reg
347 wrgsbase \scratch_reg