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