src/cpu/x86/vm/interp_masm_x86_32.hpp

Print this page




 103   void push(TosState state);       // transition state -> vtos
 104 
 105   void pop(Register r ) { ((MacroAssembler*)this)->pop(r); }
 106 
 107   void push(Register r ) { ((MacroAssembler*)this)->push(r); }
 108   void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); }
 109 
 110   // These are dummies to prevent surprise implicit conversions to Register
 111   void pop(void* v ); // Add unimplemented ambiguous method
 112   void push(void* v );   // Add unimplemented ambiguous method
 113 
 114   DEBUG_ONLY(void verify_stack_tag(frame::Tag t);)
 115 
 116 #endif // CC_INTERP
 117 
 118 #ifndef CC_INTERP
 119 
 120   void empty_expression_stack()                            {
 121        movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize));
 122       // NULL last_sp until next java call
 123       movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), (int32_t)NULL_WORD);
 124   }
 125 
 126   // Tagged stack helpers for swap and dup
 127   void load_ptr_and_tag(int n, Register val, Register tag);
 128   void store_ptr_and_tag(int n, Register val, Register tag);
 129 
 130   // Tagged Local support
 131 
 132   void tag_local(frame::Tag tag, int n);
 133   void tag_local(Register tag, int n);
 134   void tag_local(frame::Tag tag, Register idx);
 135   void tag_local(Register tag, Register idx);
 136 
 137 #ifdef ASSERT
 138   void verify_local_tag(frame::Tag tag, int n);
 139   void verify_local_tag(frame::Tag tag, Register idx);
 140 #endif // ASSERT
 141 
 142   // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls
 143   void super_call_VM_leaf(address entry_point);




 103   void push(TosState state);       // transition state -> vtos
 104 
 105   void pop(Register r ) { ((MacroAssembler*)this)->pop(r); }
 106 
 107   void push(Register r ) { ((MacroAssembler*)this)->push(r); }
 108   void push(int32_t imm ) { ((MacroAssembler*)this)->push(imm); }
 109 
 110   // These are dummies to prevent surprise implicit conversions to Register
 111   void pop(void* v ); // Add unimplemented ambiguous method
 112   void push(void* v );   // Add unimplemented ambiguous method
 113 
 114   DEBUG_ONLY(void verify_stack_tag(frame::Tag t);)
 115 
 116 #endif // CC_INTERP
 117 
 118 #ifndef CC_INTERP
 119 
 120   void empty_expression_stack()                            {
 121        movptr(rsp, Address(rbp, frame::interpreter_frame_monitor_block_top_offset * wordSize));
 122       // NULL last_sp until next java call
 123       movptr(Address(rbp, frame::interpreter_frame_last_sp_offset * wordSize), NULL_WORD);
 124   }
 125 
 126   // Tagged stack helpers for swap and dup
 127   void load_ptr_and_tag(int n, Register val, Register tag);
 128   void store_ptr_and_tag(int n, Register val, Register tag);
 129 
 130   // Tagged Local support
 131 
 132   void tag_local(frame::Tag tag, int n);
 133   void tag_local(Register tag, int n);
 134   void tag_local(frame::Tag tag, Register idx);
 135   void tag_local(Register tag, Register idx);
 136 
 137 #ifdef ASSERT
 138   void verify_local_tag(frame::Tag tag, int n);
 139   void verify_local_tag(frame::Tag tag, Register idx);
 140 #endif // ASSERT
 141 
 142   // Super call_VM calls - correspond to MacroAssembler::call_VM(_leaf) calls
 143   void super_call_VM_leaf(address entry_point);