equal
deleted
inserted
replaced
1381 |
1381 |
1382 if (is_oop) { |
1382 if (is_oop) { |
1383 // save regs before copy_memory |
1383 // save regs before copy_memory |
1384 __ push(RegSet::of(d, count), sp); |
1384 __ push(RegSet::of(d, count), sp); |
1385 } |
1385 } |
1386 copy_memory(aligned, s, d, count, rscratch1, size); |
1386 { |
|
1387 // UnsafeCopyMemory page error: continue after ucm |
|
1388 bool add_entry = !is_oop && (!aligned || sizeof(jlong) == size); |
|
1389 UnsafeCopyMemoryMark ucmm(this, add_entry, true); |
|
1390 copy_memory(aligned, s, d, count, rscratch1, size); |
|
1391 } |
1387 |
1392 |
1388 if (is_oop) { |
1393 if (is_oop) { |
1389 __ pop(RegSet::of(d, count), sp); |
1394 __ pop(RegSet::of(d, count), sp); |
1390 if (VerifyOops) |
1395 if (VerifyOops) |
1391 verify_oop_array(size, d, count, r16); |
1396 verify_oop_array(size, d, count, r16); |
1453 |
1458 |
1454 if (is_oop) { |
1459 if (is_oop) { |
1455 // save regs before copy_memory |
1460 // save regs before copy_memory |
1456 __ push(RegSet::of(d, count), sp); |
1461 __ push(RegSet::of(d, count), sp); |
1457 } |
1462 } |
1458 copy_memory(aligned, s, d, count, rscratch1, -size); |
1463 { |
|
1464 // UnsafeCopyMemory page error: continue after ucm |
|
1465 bool add_entry = !is_oop && (!aligned || sizeof(jlong) == size); |
|
1466 UnsafeCopyMemoryMark ucmm(this, add_entry, true); |
|
1467 copy_memory(aligned, s, d, count, rscratch1, -size); |
|
1468 } |
1459 if (is_oop) { |
1469 if (is_oop) { |
1460 __ pop(RegSet::of(d, count), sp); |
1470 __ pop(RegSet::of(d, count), sp); |
1461 if (VerifyOops) |
1471 if (VerifyOops) |
1462 verify_oop_array(size, d, count, r16); |
1472 verify_oop_array(size, d, count, r16); |
1463 } |
1473 } |
5814 generate_initial(); |
5824 generate_initial(); |
5815 } |
5825 } |
5816 } |
5826 } |
5817 }; // end class declaration |
5827 }; // end class declaration |
5818 |
5828 |
|
5829 #define UCM_TABLE_MAX_ENTRIES 8 |
5819 void StubGenerator_generate(CodeBuffer* code, bool all) { |
5830 void StubGenerator_generate(CodeBuffer* code, bool all) { |
|
5831 if (UnsafeCopyMemory::_table == NULL) { |
|
5832 UnsafeCopyMemory::create_table(UCM_TABLE_MAX_ENTRIES); |
|
5833 } |
5820 StubGenerator g(code, all); |
5834 StubGenerator g(code, all); |
5821 } |
5835 } |