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