4716
4717 ins_encode %{
4718 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4719 %}
4720
4721 ins_pipe(iload_reg_mem);
4722 %}
4723
4724 instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory mem)
4725 %{
4726 predicate(UseCompactObjectHeaders);
4727 match(Set dst (LoadNKlass mem));
4728
4729 ins_cost(LOAD_COST);
4730 format %{
4731 "lwu $dst, $mem\t# compressed klass ptr, shifted\n\t"
4732 "srli $dst, $dst, markWord::klass_shift_at_offset"
4733 %}
4734
4735 ins_encode %{
4736 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4737 __ srli(as_Register($dst$$reg), as_Register($dst$$reg), (unsigned) markWord::klass_shift_at_offset);
4738 %}
4739
4740 ins_pipe(iload_reg_mem);
4741 %}
4742
4743 // Load Float
4744 instruct loadF(fRegF dst, memory mem)
4745 %{
4746 match(Set dst (LoadF mem));
4747
4748 ins_cost(LOAD_COST);
4749 format %{ "flw $dst, $mem\t# float, #@loadF" %}
4750
4751 ins_encode %{
4752 __ flw(as_FloatRegister($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4753 %}
4754
4755 ins_pipe(fp_load_mem_s);
4756 %}
4757
|
4716
4717 ins_encode %{
4718 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4719 %}
4720
4721 ins_pipe(iload_reg_mem);
4722 %}
4723
4724 instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory mem)
4725 %{
4726 predicate(UseCompactObjectHeaders);
4727 match(Set dst (LoadNKlass mem));
4728
4729 ins_cost(LOAD_COST);
4730 format %{
4731 "lwu $dst, $mem\t# compressed klass ptr, shifted\n\t"
4732 "srli $dst, $dst, markWord::klass_shift_at_offset"
4733 %}
4734
4735 ins_encode %{
4736 Unimplemented();
4737 // __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4738 // __ srli(as_Register($dst$$reg), as_Register($dst$$reg), (unsigned) markWord::klass_shift_at_offset);
4739 %}
4740
4741 ins_pipe(iload_reg_mem);
4742 %}
4743
4744 // Load Float
4745 instruct loadF(fRegF dst, memory mem)
4746 %{
4747 match(Set dst (LoadF mem));
4748
4749 ins_cost(LOAD_COST);
4750 format %{ "flw $dst, $mem\t# float, #@loadF" %}
4751
4752 ins_encode %{
4753 __ flw(as_FloatRegister($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4754 %}
4755
4756 ins_pipe(fp_load_mem_s);
4757 %}
4758
|