Lines Matching refs:scratch_reg
212 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
214 mov %cr3, \scratch_reg
215 ADJUST_KERNEL_CR3 \scratch_reg
216 mov \scratch_reg, %cr3
223 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
225 mov %cr3, \scratch_reg
232 movq \scratch_reg, \scratch_reg2
233 andq $(0x7FF), \scratch_reg /* mask ASID */
234 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
238 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
239 movq \scratch_reg2, \scratch_reg
243 movq \scratch_reg2, \scratch_reg
244 SET_NOFLUSH_BIT \scratch_reg
248 orq $(PTI_USER_PCID_MASK), \scratch_reg
252 orq $(PTI_USER_PGTABLE_MASK), \scratch_reg
253 mov \scratch_reg, %cr3
257 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
259 SWITCH_TO_USER_CR3_NOSTACK scratch_reg=\scratch_reg scratch_reg2=%rax
263 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
265 movq %cr3, \scratch_reg
266 movq \scratch_reg, \save_reg
272 bt $PTI_USER_PGTABLE_BIT, \scratch_reg
275 ADJUST_KERNEL_CR3 \scratch_reg
276 movq \scratch_reg, %cr3
281 .macro RESTORE_CR3 scratch_reg:req save_reg:req
297 movq \save_reg, \scratch_reg
298 andq $(0x7FF), \scratch_reg
299 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
302 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
319 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
321 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
323 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
325 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
327 .macro RESTORE_CR3 scratch_reg:req save_reg:req