Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/amd64/support.S
Show First 20 Lines • Show All 1,963 Lines • ▼ Show 20 Lines | 2: movntdq %xmm0, (%rdx) | ||||
testb $CR0_TS, %al | testb $CR0_TS, %al | ||||
je 3f | je 3f | ||||
movq %rax, %cr0 | movq %rax, %cr0 | ||||
3: popq %rcx | 3: popq %rcx | ||||
popq %rdx | popq %rdx | ||||
popq %rax | popq %rax | ||||
retq | retq | ||||
END(mds_handler_silvermont) | END(mds_handler_silvermont) | ||||
/* | |||||
* Do the same as Linux and execute IRET explicitly, despite IPI | |||||
* return does it as well. | |||||
*/ | |||||
ENTRY(cpu_sync_core) | |||||
/* | |||||
* Can utilize SERIALIZE when instruction is moved from | |||||
* 'future extensions' to SDM. | |||||
*/ | |||||
movq (%rsp), %rdx | |||||
movl %ss, %eax | |||||
pushq %rax | |||||
pushq %rsp | |||||
addq $16, (%rsp) | |||||
pushfq | |||||
movl %cs, %eax | |||||
pushq %rax | |||||
pushq %rdx | |||||
iretq | |||||
END(cpu_sync_core) |