src/cpu/x86/vm/stubGenerator_x86_64.cpp

changeset 1627
776fb94f33cc
parent 1609
ddb7834449d0
child 1730
3cf667df43ef
equal deleted inserted replaced
1626:fed17682aea5 1627:776fb94f33cc
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:

mercurial