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