7427 }
7428 %}
7429 ins_encode %{
7430 __ membar(Assembler::StoreLoad);
7431 %}
7432 ins_pipe(pipe_slow);
7433 %}
7434
7435 instruct unnecessary_membar_volatile()
7436 %{
7437 match(MemBarVolatile);
7438 predicate(Matcher::post_store_load_barrier(n));
7439 ins_cost(0);
7440
7441 size(0);
7442 format %{ "MEMBAR-volatile (unnecessary so empty encoding)" %}
7443 ins_encode();
7444 ins_pipe(empty);
7445 %}
7446
7447 //----------Move Instructions--------------------------------------------------
7448
7449 instruct castX2P(rRegP dst, rRegL src)
7450 %{
7451 match(Set dst (CastX2P src));
7452
7453 format %{ "movq $dst, $src\t# long->ptr" %}
7454 ins_encode(enc_copy_wide(dst, src));
7455 ins_pipe(ialu_reg_reg); // XXX
7456 %}
7457
7458 instruct castP2X(rRegL dst, rRegP src)
7459 %{
7460 match(Set dst (CastP2X src));
7461
7462 format %{ "movq $dst, $src\t# ptr -> long" %}
7463 ins_encode(enc_copy_wide(dst, src));
7464 ins_pipe(ialu_reg_reg); // XXX
7465 %}
7466
|
7427 }
7428 %}
7429 ins_encode %{
7430 __ membar(Assembler::StoreLoad);
7431 %}
7432 ins_pipe(pipe_slow);
7433 %}
7434
7435 instruct unnecessary_membar_volatile()
7436 %{
7437 match(MemBarVolatile);
7438 predicate(Matcher::post_store_load_barrier(n));
7439 ins_cost(0);
7440
7441 size(0);
7442 format %{ "MEMBAR-volatile (unnecessary so empty encoding)" %}
7443 ins_encode();
7444 ins_pipe(empty);
7445 %}
7446
7447 instruct unnecessary_membar_storestore() %{
7448 match(MemBarStoreStore);
7449 ins_cost(0);
7450
7451 size(0);
7452 format %{ "!MEMBAR-storestore (unnecessary so empty encoding)" %}
7453 ins_encode( );
7454 ins_pipe(empty);
7455 %}
7456
7457 //----------Move Instructions--------------------------------------------------
7458
7459 instruct castX2P(rRegP dst, rRegL src)
7460 %{
7461 match(Set dst (CastX2P src));
7462
7463 format %{ "movq $dst, $src\t# long->ptr" %}
7464 ins_encode(enc_copy_wide(dst, src));
7465 ins_pipe(ialu_reg_reg); // XXX
7466 %}
7467
7468 instruct castP2X(rRegL dst, rRegP src)
7469 %{
7470 match(Set dst (CastP2X src));
7471
7472 format %{ "movq $dst, $src\t# ptr -> long" %}
7473 ins_encode(enc_copy_wide(dst, src));
7474 ins_pipe(ialu_reg_reg); // XXX
7475 %}
7476
|