< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.hpp

Print this page

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

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

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