4675
4676 ins_encode %{
4677 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4678 %}
4679
4680 ins_pipe(iload_reg_mem);
4681 %}
4682
4683 instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory mem)
4684 %{
4685 predicate(UseCompactObjectHeaders);
4686 match(Set dst (LoadNKlass mem));
4687
4688 ins_cost(LOAD_COST);
4689 format %{
4690 "lwu $dst, $mem\t# compressed klass ptr, shifted\n\t"
4691 "srli $dst, $dst, markWord::klass_shift_at_offset"
4692 %}
4693
4694 ins_encode %{
4695 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4696 __ srli(as_Register($dst$$reg), as_Register($dst$$reg), (unsigned) markWord::klass_shift_at_offset);
4697 %}
4698
4699 ins_pipe(iload_reg_mem);
4700 %}
4701
4702 // Load Float
4703 instruct loadF(fRegF dst, memory mem)
4704 %{
4705 match(Set dst (LoadF mem));
4706
4707 ins_cost(LOAD_COST);
4708 format %{ "flw $dst, $mem\t# float, #@loadF" %}
4709
4710 ins_encode %{
4711 __ flw(as_FloatRegister($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4712 %}
4713
4714 ins_pipe(fp_load_mem_s);
4715 %}
4716
|
4675
4676 ins_encode %{
4677 __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4678 %}
4679
4680 ins_pipe(iload_reg_mem);
4681 %}
4682
4683 instruct loadNKlassCompactHeaders(iRegNNoSp dst, memory mem)
4684 %{
4685 predicate(UseCompactObjectHeaders);
4686 match(Set dst (LoadNKlass mem));
4687
4688 ins_cost(LOAD_COST);
4689 format %{
4690 "lwu $dst, $mem\t# compressed klass ptr, shifted\n\t"
4691 "srli $dst, $dst, markWord::klass_shift_at_offset"
4692 %}
4693
4694 ins_encode %{
4695 Unimplemented();
4696 // __ lwu(as_Register($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4697 // __ srli(as_Register($dst$$reg), as_Register($dst$$reg), (unsigned) markWord::klass_shift_at_offset);
4698 %}
4699
4700 ins_pipe(iload_reg_mem);
4701 %}
4702
4703 // Load Float
4704 instruct loadF(fRegF dst, memory mem)
4705 %{
4706 match(Set dst (LoadF mem));
4707
4708 ins_cost(LOAD_COST);
4709 format %{ "flw $dst, $mem\t# float, #@loadF" %}
4710
4711 ins_encode %{
4712 __ flw(as_FloatRegister($dst$$reg), Address(as_Register($mem$$base), $mem$$disp));
4713 %}
4714
4715 ins_pipe(fp_load_mem_s);
4716 %}
4717
|