comparison src/cpu/sparc/vm/stubGenerator_sparc.cpp @ 3961:a92cdbac8b9e

7081933: Use zeroing elimination optimization for large array Summary: Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it. Reviewed-by: twisti
author kvn
date Mon, 26 Sep 2011 10:24:05 -0700
parents c565834fb592
children 04b9a2566eec dca455dea3a7 069ab3f976d3
comparison
equal deleted inserted replaced
3960:f08d439fab8c 3961:a92cdbac8b9e
2357 __ align(OptoLoopAlignment); 2357 __ align(OptoLoopAlignment);
2358 __ BIND(L_loop); 2358 __ BIND(L_loop);
2359 for (int off = 0; off < 64; off += 16) { 2359 for (int off = 0; off < 64; off += 16) {
2360 if (use_prefetch && (off & 31) == 0) { 2360 if (use_prefetch && (off & 31) == 0) {
2361 if (ArraycopySrcPrefetchDistance > 0) { 2361 if (ArraycopySrcPrefetchDistance > 0) {
2362 __ prefetch(from, ArraycopySrcPrefetchDistance, Assembler::severalReads); 2362 __ prefetch(from, ArraycopySrcPrefetchDistance+off, Assembler::severalReads);
2363 } 2363 }
2364 if (ArraycopyDstPrefetchDistance > 0) { 2364 if (ArraycopyDstPrefetchDistance > 0) {
2365 __ prefetch(to, ArraycopyDstPrefetchDistance, Assembler::severalWritesAndPossiblyReads); 2365 __ prefetch(to, ArraycopyDstPrefetchDistance+off, Assembler::severalWritesAndPossiblyReads);
2366 } 2366 }
2367 } 2367 }
2368 __ ldx(from, off+0, O4); 2368 __ ldx(from, off+0, O4);
2369 __ ldx(from, off+8, O5); 2369 __ ldx(from, off+8, O5);
2370 if (use_bis) { 2370 if (use_bis) {