< prev index next >

src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp

Print this page

 85 }
 86 
 87 ZLoadBarrierStubC2* ZLoadBarrierStubC2::create(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) {
 88   ZLoadBarrierStubC2* const stub = new (Compile::current()->comp_arena()) ZLoadBarrierStubC2(node, ref_addr, ref, tmp, barrier_data);
 89   if (!Compile::current()->output()->in_scratch_emit_size()) {
 90     barrier_set_state()->stubs()->append(stub);
 91   }
 92 
 93   return stub;
 94 }
 95 
 96 ZLoadBarrierStubC2::ZLoadBarrierStubC2(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) :
 97     _node(node),
 98     _ref_addr(ref_addr),
 99     _ref(ref),
100     _tmp(tmp),
101     _barrier_data(barrier_data),
102     _entry(),
103     _continuation() {
104   assert_different_registers(ref, ref_addr.base());

105   assert_different_registers(ref, ref_addr.index());

106 }
107 
108 Address ZLoadBarrierStubC2::ref_addr() const {
109   return _ref_addr;
110 }
111 
112 Register ZLoadBarrierStubC2::ref() const {
113   return _ref;
114 }
115 
116 Register ZLoadBarrierStubC2::tmp() const {
117   return _tmp;
118 }
119 
120 address ZLoadBarrierStubC2::slow_path() const {
121   DecoratorSet decorators = DECORATORS_NONE;
122   if (_barrier_data & ZLoadBarrierStrong) {
123     decorators |= ON_STRONG_OOP_REF;
124   }
125   if (_barrier_data & ZLoadBarrierWeak) {

 85 }
 86 
 87 ZLoadBarrierStubC2* ZLoadBarrierStubC2::create(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) {
 88   ZLoadBarrierStubC2* const stub = new (Compile::current()->comp_arena()) ZLoadBarrierStubC2(node, ref_addr, ref, tmp, barrier_data);
 89   if (!Compile::current()->output()->in_scratch_emit_size()) {
 90     barrier_set_state()->stubs()->append(stub);
 91   }
 92 
 93   return stub;
 94 }
 95 
 96 ZLoadBarrierStubC2::ZLoadBarrierStubC2(const MachNode* node, Address ref_addr, Register ref, Register tmp, uint8_t barrier_data) :
 97     _node(node),
 98     _ref_addr(ref_addr),
 99     _ref(ref),
100     _tmp(tmp),
101     _barrier_data(barrier_data),
102     _entry(),
103     _continuation() {
104   assert_different_registers(ref, ref_addr.base());
105 #ifndef RISCV
106   assert_different_registers(ref, ref_addr.index());
107 #endif
108 }
109 
110 Address ZLoadBarrierStubC2::ref_addr() const {
111   return _ref_addr;
112 }
113 
114 Register ZLoadBarrierStubC2::ref() const {
115   return _ref;
116 }
117 
118 Register ZLoadBarrierStubC2::tmp() const {
119   return _tmp;
120 }
121 
122 address ZLoadBarrierStubC2::slow_path() const {
123   DecoratorSet decorators = DECORATORS_NONE;
124   if (_barrier_data & ZLoadBarrierStrong) {
125     decorators |= ON_STRONG_OOP_REF;
126   }
127   if (_barrier_data & ZLoadBarrierWeak) {
< prev index next >