Lines Matching refs:scratch_reg
197 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
199 mov %cr3, \scratch_reg
200 ADJUST_KERNEL_CR3 \scratch_reg
201 mov \scratch_reg, %cr3
208 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
210 mov %cr3, \scratch_reg
217 movq \scratch_reg, \scratch_reg2
218 andq $(0x7FF), \scratch_reg /* mask ASID */
219 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
223 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
224 movq \scratch_reg2, \scratch_reg
228 movq \scratch_reg2, \scratch_reg
229 SET_NOFLUSH_BIT \scratch_reg
233 orq $(PTI_USER_PCID_MASK), \scratch_reg
237 orq $(PTI_USER_PGTABLE_MASK), \scratch_reg
238 mov \scratch_reg, %cr3
242 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
244 SWITCH_TO_USER_CR3_NOSTACK scratch_reg=\scratch_reg scratch_reg2=%rax
248 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
250 movq %cr3, \scratch_reg
251 movq \scratch_reg, \save_reg
257 bt $PTI_USER_PGTABLE_BIT, \scratch_reg
260 ADJUST_KERNEL_CR3 \scratch_reg
261 movq \scratch_reg, %cr3
266 .macro RESTORE_CR3 scratch_reg:req save_reg:req
282 movq \save_reg, \scratch_reg
283 andq $(0x7FF), \scratch_reg
284 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
287 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
304 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
306 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
308 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
310 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
312 .macro RESTORE_CR3 scratch_reg:req save_reg:req