Using x86 pause instr in SpinPause
Eric Caspole
eric.caspole at amd.com
Thu Aug 16 11:01:06 PDT 2012
Hi everybody,
Does anybody know the reason why SpinPause is simply "return 0" on
Win64 but uses PAUSE on Linux in a .s file?
We would like to remove PAUSE from linux too.
Thanks,
Eric
./src/os_cpu/windows_x86/vm/os_windows_x86.cpp
548 extern "C" int SpinPause () {
549 #ifdef AMD64
550 return 0 ;
551 #else
552 // pause == rep:nop
553 // On systems that don't support pause a rep:nop
554 // is executed as a nop. The rep: prefix is ignored.
555 _asm {
556 pause ;
557 };
558 return 1 ;
559 #endif // AMD64
560 }
src/os_cpu/linux_x86/vm/linux_x86_64.s
63 .globl SpinPause
64 .align 16
65 .type SpinPause, at function
66 SpinPause:
67 rep
68 nop
69 movq $1, %rax
70 ret
More information about the hotspot-runtime-dev
mailing list