< prev index next >

src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp

Print this page

 685   static void pd_patch_instruction(address branch, address target, const char* file = nullptr, int line = 0) {
 686     pd_patch_instruction_size(branch, target);
 687   }
 688   static address pd_call_destination(address branch) {
 689     return target_addr_for_insn(branch);
 690   }
 691 #ifndef PRODUCT
 692   static void pd_print_patched_instruction(address branch);
 693 #endif
 694 
 695   static int patch_oop(address insn_addr, address o);
 696   static int patch_narrow_klass(address insn_addr, narrowKlass n);
 697 
 698   // Return whether code is emitted to a scratch blob.
 699   virtual bool in_scratch_emit_size() {
 700     return false;
 701   }
 702   address emit_trampoline_stub(int insts_call_instruction_offset, address target);
 703   static int max_trampoline_stub_size();
 704   void emit_static_call_stub();
 705   static int static_call_stub_size();
 706 
 707   // The following 4 methods return the offset of the appropriate move instruction
 708 
 709   // Support for fast byte/short loading with zero extension (depending on particular CPU)
 710   int load_unsigned_byte(Register dst, Address src);
 711   int load_unsigned_short(Register dst, Address src);
 712 
 713   // Support for fast byte/short loading with sign extension (depending on particular CPU)
 714   int load_signed_byte(Register dst, Address src);
 715   int load_signed_short(Register dst, Address src);
 716 
 717   int load_signed_byte32(Register dst, Address src);
 718   int load_signed_short32(Register dst, Address src);
 719 
 720   // Support for sign-extension (hi:lo = extend_sign(lo))
 721   void extend_sign(Register hi, Register lo);
 722 
 723   // Load and store values by size and signed-ness
 724   void load_sized_value(Register dst, Address src, size_t size_in_bytes, bool is_signed);
 725   void store_sized_value(Address dst, Register src, size_t size_in_bytes);

 685   static void pd_patch_instruction(address branch, address target, const char* file = nullptr, int line = 0) {
 686     pd_patch_instruction_size(branch, target);
 687   }
 688   static address pd_call_destination(address branch) {
 689     return target_addr_for_insn(branch);
 690   }
 691 #ifndef PRODUCT
 692   static void pd_print_patched_instruction(address branch);
 693 #endif
 694 
 695   static int patch_oop(address insn_addr, address o);
 696   static int patch_narrow_klass(address insn_addr, narrowKlass n);
 697 
 698   // Return whether code is emitted to a scratch blob.
 699   virtual bool in_scratch_emit_size() {
 700     return false;
 701   }
 702   address emit_trampoline_stub(int insts_call_instruction_offset, address target);
 703   static int max_trampoline_stub_size();
 704   void emit_static_call_stub();
 705   static int max_static_call_stub_size();
 706 
 707   // The following 4 methods return the offset of the appropriate move instruction
 708 
 709   // Support for fast byte/short loading with zero extension (depending on particular CPU)
 710   int load_unsigned_byte(Register dst, Address src);
 711   int load_unsigned_short(Register dst, Address src);
 712 
 713   // Support for fast byte/short loading with sign extension (depending on particular CPU)
 714   int load_signed_byte(Register dst, Address src);
 715   int load_signed_short(Register dst, Address src);
 716 
 717   int load_signed_byte32(Register dst, Address src);
 718   int load_signed_short32(Register dst, Address src);
 719 
 720   // Support for sign-extension (hi:lo = extend_sign(lo))
 721   void extend_sign(Register hi, Register lo);
 722 
 723   // Load and store values by size and signed-ness
 724   void load_sized_value(Register dst, Address src, size_t size_in_bytes, bool is_signed);
 725   void store_sized_value(Address dst, Register src, size_t size_in_bytes);
< prev index next >