< prev index next >

src/hotspot/cpu/aarch64/aarch64.ad

Print this page

 7599   ins_encode(aarch64_enc_ldrw(dst, mem));
 7600 
 7601   ins_pipe(iload_reg_mem);
 7602 %}
 7603 
 7604 // Load Klass Pointer
 7605 instruct loadKlass(iRegPNoSp dst, memory8 mem)
 7606 %{
 7607   match(Set dst (LoadKlass mem));
 7608   predicate(!needs_acquiring_load(n));
 7609 
 7610   ins_cost(4 * INSN_COST);
 7611   format %{ "ldr  $dst, $mem\t# class" %}
 7612 
 7613   ins_encode(aarch64_enc_ldr(dst, mem));
 7614 
 7615   ins_pipe(iload_reg_mem);
 7616 %}
 7617 
 7618 // Load Narrow Klass Pointer
 7619 instruct loadNKlass(iRegNNoSp dst, memory4 mem)
 7620 %{
 7621   match(Set dst (LoadNKlass mem));

 7622   predicate(!needs_acquiring_load(n));
 7623 
 7624   ins_cost(4 * INSN_COST);
 7625   format %{ "ldrw  $dst, $mem\t# compressed class ptr" %}
 7626 
 7627   ins_encode(aarch64_enc_ldrw(dst, mem));
 7628 
 7629   ins_pipe(iload_reg_mem);


 7630 %}
 7631 
 7632 // Load Float
 7633 instruct loadF(vRegF dst, memory4 mem)
 7634 %{
 7635   match(Set dst (LoadF mem));
 7636   predicate(!needs_acquiring_load(n));
 7637 
 7638   ins_cost(4 * INSN_COST);
 7639   format %{ "ldrs  $dst, $mem\t# float" %}
 7640 
 7641   ins_encode( aarch64_enc_ldrs(dst, mem) );
 7642 
 7643   ins_pipe(pipe_class_memory);
 7644 %}
 7645 
 7646 // Load Double
 7647 instruct loadD(vRegD dst, memory8 mem)
 7648 %{
 7649   match(Set dst (LoadD mem));

 7599   ins_encode(aarch64_enc_ldrw(dst, mem));
 7600 
 7601   ins_pipe(iload_reg_mem);
 7602 %}
 7603 
 7604 // Load Klass Pointer
 7605 instruct loadKlass(iRegPNoSp dst, memory8 mem)
 7606 %{
 7607   match(Set dst (LoadKlass mem));
 7608   predicate(!needs_acquiring_load(n));
 7609 
 7610   ins_cost(4 * INSN_COST);
 7611   format %{ "ldr  $dst, $mem\t# class" %}
 7612 
 7613   ins_encode(aarch64_enc_ldr(dst, mem));
 7614 
 7615   ins_pipe(iload_reg_mem);
 7616 %}
 7617 
 7618 // Load Narrow Klass Pointer
 7619 instruct loadNKlass(iRegNNoSp dst, memory4 mem, rFlagsReg cr)
 7620 %{
 7621   match(Set dst (LoadNKlass mem));
 7622   effect(TEMP_DEF dst, KILL cr);
 7623   predicate(!needs_acquiring_load(n));
 7624 
 7625   ins_cost(4 * INSN_COST);
 7626   format %{ "ldrw  $dst, $mem\t# compressed class ptr" %}
 7627   ins_encode %{
 7628     assert($mem$$disp == oopDesc::klass_offset_in_bytes(), "expect correct offset");
 7629     assert($mem$$index$$Register == noreg, "expect no index");
 7630     __ load_nklass($dst$$Register, $mem$$base$$Register);
 7631   %}
 7632   ins_pipe(pipe_slow);
 7633 %}
 7634 
 7635 // Load Float
 7636 instruct loadF(vRegF dst, memory4 mem)
 7637 %{
 7638   match(Set dst (LoadF mem));
 7639   predicate(!needs_acquiring_load(n));
 7640 
 7641   ins_cost(4 * INSN_COST);
 7642   format %{ "ldrs  $dst, $mem\t# float" %}
 7643 
 7644   ins_encode( aarch64_enc_ldrs(dst, mem) );
 7645 
 7646   ins_pipe(pipe_class_memory);
 7647 %}
 7648 
 7649 // Load Double
 7650 instruct loadD(vRegD dst, memory8 mem)
 7651 %{
 7652   match(Set dst (LoadD mem));
< prev index next >