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