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