equal
deleted
inserted
replaced
24 source %{ |
24 source %{ |
25 |
25 |
26 #include "gc/z/zBarrierSetAssembler.hpp" |
26 #include "gc/z/zBarrierSetAssembler.hpp" |
27 |
27 |
28 static void z_load_barrier_slow_reg(MacroAssembler& _masm, Register dst, Address src, bool weak) { |
28 static void z_load_barrier_slow_reg(MacroAssembler& _masm, Register dst, Address src, bool weak) { |
29 assert(dst != r12, "Invalid register"); |
29 assert(dst != rsp, "Invalid register"); |
30 assert(dst != r15, "Invalid register"); |
30 assert(dst != r15, "Invalid register"); |
31 assert(dst != rsp, "Invalid register"); |
|
32 |
31 |
33 const address stub = weak ? ZBarrierSet::assembler()->load_barrier_weak_slow_stub(dst) |
32 const address stub = weak ? ZBarrierSet::assembler()->load_barrier_weak_slow_stub(dst) |
34 : ZBarrierSet::assembler()->load_barrier_slow_stub(dst); |
33 : ZBarrierSet::assembler()->load_barrier_slow_stub(dst); |
35 __ lea(dst, src); |
34 __ lea(dst, src); |
36 __ call(RuntimeAddress(stub)); |
35 __ call(RuntimeAddress(stub)); |