< prev index next >

src/hotspot/share/code/compiledIC.hpp

Print this page




 385   virtual address instruction_address() const = 0;
 386 protected:
 387   virtual address resolve_call_stub() const = 0;
 388   virtual void set_destination_mt_safe(address dest) = 0;
 389 #if INCLUDE_AOT
 390   virtual void set_to_far(const methodHandle& callee, address entry) = 0;
 391 #endif
 392   virtual void set_to_interpreted(const methodHandle& callee, address entry) = 0;
 393   virtual const char* name() const = 0;
 394 
 395   void set_to_compiled(address entry);
 396 };
 397 
 398 class CompiledDirectStaticCall : public CompiledStaticCall {
 399 private:
 400   friend class CompiledIC;
 401   friend class DirectNativeCallWrapper;
 402 
 403   // Also used by CompiledIC
 404   void set_to_interpreted(const methodHandle& callee, address entry);



 405 #if INCLUDE_AOT
 406   void set_to_far(const methodHandle& callee, address entry);
 407 #endif
 408   address instruction_address() const { return _call->instruction_address(); }
 409   void set_destination_mt_safe(address dest) { _call->set_destination_mt_safe(dest); }
 410 
 411   NativeCall* _call;
 412 
 413   CompiledDirectStaticCall(NativeCall* call) : _call(call) {}
 414 
 415  public:
 416   static inline CompiledDirectStaticCall* before(address return_addr) {
 417     CompiledDirectStaticCall* st = new CompiledDirectStaticCall(nativeCall_before(return_addr));
 418     st->verify();
 419     return st;
 420   }
 421 
 422   static inline CompiledDirectStaticCall* at(address native_call) {
 423     CompiledDirectStaticCall* st = new CompiledDirectStaticCall(nativeCall_at(native_call));
 424     st->verify();




 385   virtual address instruction_address() const = 0;
 386 protected:
 387   virtual address resolve_call_stub() const = 0;
 388   virtual void set_destination_mt_safe(address dest) = 0;
 389 #if INCLUDE_AOT
 390   virtual void set_to_far(const methodHandle& callee, address entry) = 0;
 391 #endif
 392   virtual void set_to_interpreted(const methodHandle& callee, address entry) = 0;
 393   virtual const char* name() const = 0;
 394 
 395   void set_to_compiled(address entry);
 396 };
 397 
 398 class CompiledDirectStaticCall : public CompiledStaticCall {
 399 private:
 400   friend class CompiledIC;
 401   friend class DirectNativeCallWrapper;
 402 
 403   // Also used by CompiledIC
 404   void set_to_interpreted(const methodHandle& callee, address entry);
 405   void verify_mt_safe(const methodHandle& callee, address entry,
 406                       NativeMovConstReg* method_holder,
 407                       NativeJump*        jump) PRODUCT_RETURN;
 408 #if INCLUDE_AOT
 409   void set_to_far(const methodHandle& callee, address entry);
 410 #endif
 411   address instruction_address() const { return _call->instruction_address(); }
 412   void set_destination_mt_safe(address dest) { _call->set_destination_mt_safe(dest); }
 413 
 414   NativeCall* _call;
 415 
 416   CompiledDirectStaticCall(NativeCall* call) : _call(call) {}
 417 
 418  public:
 419   static inline CompiledDirectStaticCall* before(address return_addr) {
 420     CompiledDirectStaticCall* st = new CompiledDirectStaticCall(nativeCall_before(return_addr));
 421     st->verify();
 422     return st;
 423   }
 424 
 425   static inline CompiledDirectStaticCall* at(address native_call) {
 426     CompiledDirectStaticCall* st = new CompiledDirectStaticCall(nativeCall_at(native_call));
 427     st->verify();


< prev index next >