< prev index next >

src/hotspot/cpu/x86/x86_64.ad

Print this page




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 %{


< prev index next >