src/cpu/sparc/vm/sparc.ad
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6710487 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/sparc.ad

Print this page




5938   size(4);
5939   format %{ "STW    $src,$mem\t! storeF0" %}
5940   opcode(Assembler::stw_op3);
5941   ins_encode( form3_mem_reg( mem, R_G0 ) );
5942   ins_pipe(fstoreF_mem_zero);
5943 %}
5944 
5945 // Store Aligned Packed Bytes in Double register to memory
5946 instruct storeA8B(memory mem, regD src) %{
5947   match(Set mem (Store8B mem src));
5948   ins_cost(MEMORY_REF_COST);
5949   size(4);
5950   format %{ "STDF   $src,$mem\t! packed8B" %}
5951   opcode(Assembler::stdf_op3);
5952   ins_encode( form3_mem_reg( mem, src ) );
5953   ins_pipe(fstoreD_mem_reg);
5954 %}
5955 
5956 // Convert oop pointer into compressed form
5957 instruct encodeHeapOop(iRegN dst, iRegP src) %{
5958   predicate(n->bottom_type()->is_narrowoop()->make_oopptr()->ptr() != TypePtr::NotNull);
5959   match(Set dst (EncodeP src));
5960   format %{ "encode_heap_oop $src, $dst" %}
5961   ins_encode %{
5962     __ encode_heap_oop($src$$Register, $dst$$Register);
5963   %}
5964   ins_pipe(ialu_reg);
5965 %}
5966 
5967 instruct encodeHeapOop_not_null(iRegN dst, iRegP src) %{
5968   predicate(n->bottom_type()->is_narrowoop()->make_oopptr()->ptr() == TypePtr::NotNull);
5969   match(Set dst (EncodeP src));
5970   format %{ "encode_heap_oop_not_null $src, $dst" %}
5971   ins_encode %{
5972     __ encode_heap_oop_not_null($src$$Register, $dst$$Register);
5973   %}
5974   ins_pipe(ialu_reg);
5975 %}
5976 
5977 instruct decodeHeapOop(iRegP dst, iRegN src) %{
5978   predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull &&
5979             n->bottom_type()->is_oopptr()->ptr() != TypePtr::Constant);
5980   match(Set dst (DecodeN src));
5981   format %{ "decode_heap_oop $src, $dst" %}
5982   ins_encode %{
5983     __ decode_heap_oop($src$$Register, $dst$$Register);
5984   %}
5985   ins_pipe(ialu_reg);
5986 %}
5987 
5988 instruct decodeHeapOop_not_null(iRegP dst, iRegN src) %{




5938   size(4);
5939   format %{ "STW    $src,$mem\t! storeF0" %}
5940   opcode(Assembler::stw_op3);
5941   ins_encode( form3_mem_reg( mem, R_G0 ) );
5942   ins_pipe(fstoreF_mem_zero);
5943 %}
5944 
5945 // Store Aligned Packed Bytes in Double register to memory
5946 instruct storeA8B(memory mem, regD src) %{
5947   match(Set mem (Store8B mem src));
5948   ins_cost(MEMORY_REF_COST);
5949   size(4);
5950   format %{ "STDF   $src,$mem\t! packed8B" %}
5951   opcode(Assembler::stdf_op3);
5952   ins_encode( form3_mem_reg( mem, src ) );
5953   ins_pipe(fstoreD_mem_reg);
5954 %}
5955 
5956 // Convert oop pointer into compressed form
5957 instruct encodeHeapOop(iRegN dst, iRegP src) %{
5958   predicate(n->bottom_type()->make_ptr()->ptr() != TypePtr::NotNull);
5959   match(Set dst (EncodeP src));
5960   format %{ "encode_heap_oop $src, $dst" %}
5961   ins_encode %{
5962     __ encode_heap_oop($src$$Register, $dst$$Register);
5963   %}
5964   ins_pipe(ialu_reg);
5965 %}
5966 
5967 instruct encodeHeapOop_not_null(iRegN dst, iRegP src) %{
5968   predicate(n->bottom_type()->make_ptr()->ptr() == TypePtr::NotNull);
5969   match(Set dst (EncodeP src));
5970   format %{ "encode_heap_oop_not_null $src, $dst" %}
5971   ins_encode %{
5972     __ encode_heap_oop_not_null($src$$Register, $dst$$Register);
5973   %}
5974   ins_pipe(ialu_reg);
5975 %}
5976 
5977 instruct decodeHeapOop(iRegP dst, iRegN src) %{
5978   predicate(n->bottom_type()->is_oopptr()->ptr() != TypePtr::NotNull &&
5979             n->bottom_type()->is_oopptr()->ptr() != TypePtr::Constant);
5980   match(Set dst (DecodeN src));
5981   format %{ "decode_heap_oop $src, $dst" %}
5982   ins_encode %{
5983     __ decode_heap_oop($src$$Register, $dst$$Register);
5984   %}
5985   ins_pipe(ialu_reg);
5986 %}
5987 
5988 instruct decodeHeapOop_not_null(iRegP dst, iRegN src) %{


src/cpu/sparc/vm/sparc.ad
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File