Lines Matching refs:scratch_reg
167 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
169 mov %cr3, \scratch_reg
170 ADJUST_KERNEL_CR3 \scratch_reg
171 mov \scratch_reg, %cr3
178 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
180 mov %cr3, \scratch_reg
187 movq \scratch_reg, \scratch_reg2
188 andq $(0x7FF), \scratch_reg /* mask ASID */
189 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
193 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
194 movq \scratch_reg2, \scratch_reg
198 movq \scratch_reg2, \scratch_reg
199 SET_NOFLUSH_BIT \scratch_reg
203 orq $(PTI_USER_PCID_MASK), \scratch_reg
207 orq $(PTI_USER_PGTABLE_MASK), \scratch_reg
208 mov \scratch_reg, %cr3
212 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
214 SWITCH_TO_USER_CR3_NOSTACK scratch_reg=\scratch_reg scratch_reg2=%rax
218 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
220 movq %cr3, \scratch_reg
221 movq \scratch_reg, \save_reg
227 bt $PTI_USER_PGTABLE_BIT, \scratch_reg
230 ADJUST_KERNEL_CR3 \scratch_reg
231 movq \scratch_reg, %cr3
236 .macro RESTORE_CR3 scratch_reg:req save_reg:req
252 movq \save_reg, \scratch_reg
253 andq $(0x7FF), \scratch_reg
254 bt \scratch_reg, THIS_CPU_user_pcid_flush_mask
257 btr \scratch_reg, THIS_CPU_user_pcid_flush_mask
274 .macro SWITCH_TO_KERNEL_CR3 scratch_reg:req
276 .macro SWITCH_TO_USER_CR3_NOSTACK scratch_reg:req scratch_reg2:req
278 .macro SWITCH_TO_USER_CR3_STACK scratch_reg:req
280 .macro SAVE_AND_SWITCH_TO_KERNEL_CR3 scratch_reg:req save_reg:req
282 .macro RESTORE_CR3 scratch_reg:req save_reg:req
372 .macro SAVE_AND_SET_GSBASE scratch_reg:req save_reg:req
374 GET_PERCPU_BASE \scratch_reg
375 wrgsbase \scratch_reg