1170 |
1170 |
1171 } else { |
1171 } else { |
1172 __ movptr(c_rarg0, addr); |
1172 __ movptr(c_rarg0, addr); |
1173 __ movptr(c_rarg1, count); |
1173 __ movptr(c_rarg1, count); |
1174 } |
1174 } |
1175 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_pre))); |
1175 __ call_VM_leaf(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_pre), 2); |
1176 __ popa(); |
1176 __ popa(); |
1177 } |
1177 } |
1178 break; |
1178 break; |
1179 case BarrierSet::CardTableModRef: |
1179 case BarrierSet::CardTableModRef: |
1180 case BarrierSet::CardTableExtension: |
1180 case BarrierSet::CardTableExtension: |
1210 __ lea(scratch, Address(end, BytesPerHeapOop)); |
1210 __ lea(scratch, Address(end, BytesPerHeapOop)); |
1211 __ subptr(scratch, start); // subtract start to get #bytes |
1211 __ subptr(scratch, start); // subtract start to get #bytes |
1212 __ shrptr(scratch, LogBytesPerHeapOop); // convert to element count |
1212 __ shrptr(scratch, LogBytesPerHeapOop); // convert to element count |
1213 __ mov(c_rarg0, start); |
1213 __ mov(c_rarg0, start); |
1214 __ mov(c_rarg1, scratch); |
1214 __ mov(c_rarg1, scratch); |
1215 __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_post))); |
1215 __ call_VM_leaf(CAST_FROM_FN_PTR(address, BarrierSet::static_write_ref_array_post), 2); |
1216 __ popa(); |
1216 __ popa(); |
1217 } |
1217 } |
1218 break; |
1218 break; |
1219 case BarrierSet::CardTableModRef: |
1219 case BarrierSet::CardTableModRef: |
1220 case BarrierSet::CardTableExtension: |
1220 case BarrierSet::CardTableExtension: |