< prev index next >

src/cpu/x86/vm/templateInterpreterGenerator_x86.cpp

Print this page
rev 14282 : Factor out keep-alive barrier from usual pre-barrier implementations.

*** 758,777 **** const Register sender_sp = NOT_LP64(rsi) LP64_ONLY(r13); const Register thread = NOT_LP64(rcx) LP64_ONLY(r15_thread); NOT_LP64(__ get_thread(thread)); - if (!UseShenandoahGC || ShenandoahSATBBarrier) { // Generate the G1 pre-barrier code to log the value of // the referent field in an SATB buffer. ! __ g1_write_barrier_pre(noreg /* obj */, ! rax /* pre_val */, thread /* thread */, ! rbx /* tmp */, ! true /* tosca_live */, ! true /* expand_call */); ! } // _areturn NOT_LP64(__ pop(rsi)); // get sender sp __ pop(rdi); // get return address __ mov(rsp, sender_sp); // set sp to sender sp --- 758,772 ---- const Register sender_sp = NOT_LP64(rsi) LP64_ONLY(r13); const Register thread = NOT_LP64(rcx) LP64_ONLY(r15_thread); NOT_LP64(__ get_thread(thread)); // Generate the G1 pre-barrier code to log the value of // the referent field in an SATB buffer. ! __ keep_alive_barrier(rax /* pre_val */, thread /* thread */, ! rbx /* tmp */); // _areturn NOT_LP64(__ pop(rsi)); // get sender sp __ pop(rdi); // get return address __ mov(rsp, sender_sp); // set sp to sender sp
< prev index next >