src/share/vm/c1/c1_LIR.hpp

Print this page
rev 10271 : 8147844: new method j.l.Runtime.onSpinWait() and the corresponding x86 hotspot instrinsic
Summary: adds c1 & c2 x86 intrinsics for j.l.Runtime.onSpinWait() that utilize the PAUSE instruction
Reviewed-by: iveresov, kvn, vlivanov
Contributed-by: Ivan Krylov <ivan@azul.com>, Yuri Gaevsky <ygaevsky@azul.com>

*** 918,927 **** --- 918,928 ---- , lir_membar_loadload , lir_membar_storestore , lir_membar_loadstore , lir_membar_storeload , lir_get_thread + , lir_on_spin_wait , end_op0 , begin_op1 , lir_fxch , lir_fld , lir_ffree
*** 2099,2108 **** --- 2100,2111 ---- void build_frame() { append(new LIR_Op0(lir_build_frame)); } void std_entry(LIR_Opr receiver) { append(new LIR_Op0(lir_std_entry, receiver)); } void osr_entry(LIR_Opr osrPointer) { append(new LIR_Op0(lir_osr_entry, osrPointer)); } + void on_spin_wait() { append(new LIR_Op0(lir_on_spin_wait)); } + void branch_destination(Label* lbl) { append(new LIR_OpLabel(lbl)); } void negate(LIR_Opr from, LIR_Opr to) { append(new LIR_Op1(lir_neg, from, to)); } void leal(LIR_Opr from, LIR_Opr result_reg) { append(new LIR_Op1(lir_leal, from, result_reg)); }