6419 format %{ "MEMBAR-storestore (empty encoding)" %} 6420 ins_encode( ); 6421 ins_pipe(empty); 6422 %} 6423 6424 //----------Move Instructions-------------------------------------------------- 6425 6426 instruct castX2P(rRegP dst, rRegL src) 6427 %{ 6428 match(Set dst (CastX2P src)); 6429 6430 format %{ "movq $dst, $src\t# long->ptr" %} 6431 ins_encode %{ 6432 if ($dst$$reg != $src$$reg) { 6433 __ movptr($dst$$Register, $src$$Register); 6434 } 6435 %} 6436 ins_pipe(ialu_reg_reg); // XXX 6437 %} 6438 6439 instruct castP2X(rRegL dst, rRegP src) 6440 %{ 6441 match(Set dst (CastP2X src)); 6442 6443 format %{ "movq $dst, $src\t# ptr -> long" %} 6444 ins_encode %{ 6445 if ($dst$$reg != $src$$reg) { 6446 __ movptr($dst$$Register, $src$$Register); 6447 } 6448 %} 6449 ins_pipe(ialu_reg_reg); // XXX 6450 %} 6451 6452 // Convert oop into int for vectors alignment masking 6453 instruct convP2I(rRegI dst, rRegP src) 6454 %{ 6455 match(Set dst (ConvL2I (CastP2X src))); 6456 6457 format %{ "movl $dst, $src\t# ptr -> int" %} 6458 ins_encode %{ | 6419 format %{ "MEMBAR-storestore (empty encoding)" %} 6420 ins_encode( ); 6421 ins_pipe(empty); 6422 %} 6423 6424 //----------Move Instructions-------------------------------------------------- 6425 6426 instruct castX2P(rRegP dst, rRegL src) 6427 %{ 6428 match(Set dst (CastX2P src)); 6429 6430 format %{ "movq $dst, $src\t# long->ptr" %} 6431 ins_encode %{ 6432 if ($dst$$reg != $src$$reg) { 6433 __ movptr($dst$$Register, $src$$Register); 6434 } 6435 %} 6436 ins_pipe(ialu_reg_reg); // XXX 6437 %} 6438 6439 instruct castN2X(rRegL dst, rRegN src) 6440 %{ 6441 match(Set dst (CastP2X src)); 6442 6443 format %{ "movq $dst, $src\t# ptr -> long" %} 6444 ins_encode %{ 6445 if ($dst$$reg != $src$$reg) { 6446 __ movptr($dst$$Register, $src$$Register); 6447 } 6448 %} 6449 ins_pipe(ialu_reg_reg); // XXX 6450 %} 6451 6452 instruct castP2X(rRegL dst, rRegP src) 6453 %{ 6454 match(Set dst (CastP2X src)); 6455 6456 format %{ "movq $dst, $src\t# ptr -> long" %} 6457 ins_encode %{ 6458 if ($dst$$reg != $src$$reg) { 6459 __ movptr($dst$$Register, $src$$Register); 6460 } 6461 %} 6462 ins_pipe(ialu_reg_reg); // XXX 6463 %} 6464 6465 // Convert oop into int for vectors alignment masking 6466 instruct convP2I(rRegI dst, rRegP src) 6467 %{ 6468 match(Set dst (ConvL2I (CastP2X src))); 6469 6470 format %{ "movl $dst, $src\t# ptr -> int" %} 6471 ins_encode %{ |