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