< prev index next >

src/hotspot/cpu/x86/gc/shared/modRefBarrierSetAssembler_x86.cpp

Print this page

67       if (!obj_int) {
68         // Save count for barrier
69         count = r11;
70       } else if (disjoint) {
71         // Use the saved dst in the disjoint case
72         dst = r11;
73       }
74     } else {
75       tmp = rscratch1;
76     }
77 #else
78     if (disjoint) {
79       __ mov(dst, rdx); // restore 'to'
80     }
81 #endif
82     gen_write_ref_array_post_barrier(masm, decorators, dst, count, tmp);
83   }
84 }
85 
86 void ModRefBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
87                                          Address dst, Register val, Register tmp1, Register tmp2) {
88   if (is_reference_type(type)) {
89     oop_store_at(masm, decorators, type, dst, val, tmp1, tmp2);
90   } else {
91     BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2);
92   }
93 }

67       if (!obj_int) {
68         // Save count for barrier
69         count = r11;
70       } else if (disjoint) {
71         // Use the saved dst in the disjoint case
72         dst = r11;
73       }
74     } else {
75       tmp = rscratch1;
76     }
77 #else
78     if (disjoint) {
79       __ mov(dst, rdx); // restore 'to'
80     }
81 #endif
82     gen_write_ref_array_post_barrier(masm, decorators, dst, count, tmp);
83   }
84 }
85 
86 void ModRefBarrierSetAssembler::store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
87                                          Address dst, Register val, Register tmp1, Register tmp2, Register tmp3) {
88   if (is_reference_type(type)) {
89     oop_store_at(masm, decorators, type, dst, val, tmp1, tmp2, tmp3);
90   } else {
91     BarrierSetAssembler::store_at(masm, decorators, type, dst, val, tmp1, tmp2, tmp3);
92   }
93 }
< prev index next >