4730
4731 ins_encode %{
4732 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4733 %}
4734
4735 ins_pipe(iload_reg_mem);
4736 %}
4737
4738 instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory mem)
4739 %{
4740 predicate(UseCompactObjectHeaders);
4741 match(Set dst (LoadNKlass mem));
4742
4743 ins_cost(LOAD_COST);
4744 format %{
4745 "lwu $dst, $mem\t# compressed klass ptr, shifted\n\t"
4746 "srli $dst, $dst, markWord::klass_shift_at_offset"
4747 %}
4748
4749 ins_encode %{
4750 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4751 __ srli(as_Register($dst$$reg), as_Register($dst$$reg), (unsigned) markWord::klass_shift_at_offset);
4752 %}
4753
4754 ins_pipe(iload_reg_mem);
4755 %}
4756
4757 // Load Float
4758 instruct loadF(fRegF dst, memory mem)
4759 %{
4760 match(Set dst (LoadF mem));
4761
4762 ins_cost(LOAD_COST);
4763 format %{ "flw $dst, $mem\t# float, #@loadF" %}
4764
4765 ins_encode %{
4766 __ flw(as_FloatRegister($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4767 %}
4768
4769 ins_pipe(fp_load_mem_s);
4770 %}
4771
|
4730
4731 ins_encode %{
4732 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4733 %}
4734
4735 ins_pipe(iload_reg_mem);
4736 %}
4737
4738 instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory mem)
4739 %{
4740 predicate(UseCompactObjectHeaders);
4741 match(Set dst (LoadNKlass mem));
4742
4743 ins_cost(LOAD_COST);
4744 format %{
4745 "lwu $dst, $mem\t# compressed klass ptr, shifted\n\t"
4746 "srli $dst, $dst, markWord::klass_shift_at_offset"
4747 %}
4748
4749 ins_encode %{
4750 Unimplemented();
4751 // __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4752 // __ srli(as_Register($dst$$reg), as_Register($dst$$reg), (unsigned) markWord::klass_shift_at_offset);
4753 %}
4754
4755 ins_pipe(iload_reg_mem);
4756 %}
4757
4758 // Load Float
4759 instruct loadF(fRegF dst, memory mem)
4760 %{
4761 match(Set dst (LoadF mem));
4762
4763 ins_cost(LOAD_COST);
4764 format %{ "flw $dst, $mem\t# float, #@loadF" %}
4765
4766 ins_encode %{
4767 __ flw(as_FloatRegister($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4768 %}
4769
4770 ins_pipe(fp_load_mem_s);
4771 %}
4772
|