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