< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Print this page

 197   // Alignment
 198   void align32();
 199   void align64();
 200   void align(int modulus);
 201   void align(int modulus, int target);
 202 
 203   // A 5 byte nop that is safe for patching (see patch_verified_entry)
 204   void fat_nop();
 205 
 206   // Stack frame creation/removal
 207   void enter();
 208   void leave();
 209 
 210   // Support for getting the JavaThread pointer (i.e.; a reference to thread-local information)
 211   // The pointer will be loaded into the thread register.
 212   void get_thread(Register thread);
 213 
 214 #ifdef _LP64
 215   // Support for argument shuffling
 216 
 217   void move32_64(VMRegPair src, VMRegPair dst);
 218   void long_move(VMRegPair src, VMRegPair dst);
 219   void float_move(VMRegPair src, VMRegPair dst);
 220   void double_move(VMRegPair src, VMRegPair dst);

 221   void move_ptr(VMRegPair src, VMRegPair dst);
 222   void object_move(OopMap* map,
 223                    int oop_handle_offset,
 224                    int framesize_in_slots,
 225                    VMRegPair src,
 226                    VMRegPair dst,
 227                    bool is_receiver,
 228                    int* receiver_offset);
 229 #endif // _LP64
 230 
 231   // Support for VM calls
 232   //
 233   // It is imperative that all calls into the VM are handled via the call_VM macros.
 234   // They make sure that the stack linkage is setup correctly. call_VM's correspond
 235   // to ENTRY/ENTRY_X entry points while call_VM_leaf's correspond to LEAF entry points.
 236 
 237 
 238   void call_VM(Register oop_result,
 239                address entry_point,
 240                bool check_exceptions = true);

 197   // Alignment
 198   void align32();
 199   void align64();
 200   void align(int modulus);
 201   void align(int modulus, int target);
 202 
 203   // A 5 byte nop that is safe for patching (see patch_verified_entry)
 204   void fat_nop();
 205 
 206   // Stack frame creation/removal
 207   void enter();
 208   void leave();
 209 
 210   // Support for getting the JavaThread pointer (i.e.; a reference to thread-local information)
 211   // The pointer will be loaded into the thread register.
 212   void get_thread(Register thread);
 213 
 214 #ifdef _LP64
 215   // Support for argument shuffling
 216 
 217   // bias in bytes
 218   void move32_64(VMRegPair src, VMRegPair dst, Register tmp = rax, int in_stk_bias = 0, int out_stk_bias = 0);
 219   void long_move(VMRegPair src, VMRegPair dst, Register tmp = rax, int in_stk_bias = 0, int out_stk_bias = 0);
 220   void float_move(VMRegPair src, VMRegPair dst, Register tmp = rax, int in_stk_bias = 0, int out_stk_bias = 0);
 221   void double_move(VMRegPair src, VMRegPair dst, Register tmp = rax, int in_stk_bias = 0, int out_stk_bias = 0);
 222   void move_ptr(VMRegPair src, VMRegPair dst);
 223   void object_move(OopMap* map,
 224                    int oop_handle_offset,
 225                    int framesize_in_slots,
 226                    VMRegPair src,
 227                    VMRegPair dst,
 228                    bool is_receiver,
 229                    int* receiver_offset);
 230 #endif // _LP64
 231 
 232   // Support for VM calls
 233   //
 234   // It is imperative that all calls into the VM are handled via the call_VM macros.
 235   // They make sure that the stack linkage is setup correctly. call_VM's correspond
 236   // to ENTRY/ENTRY_X entry points while call_VM_leaf's correspond to LEAF entry points.
 237 
 238 
 239   void call_VM(Register oop_result,
 240                address entry_point,
 241                bool check_exceptions = true);
< prev index next >