hotspot/src/share/vm/c1/c1_CodeStubs.hpp
changeset 5046 27e801a857cb
parent 1374 4c24294029a9
child 5547 f4b087cbb361
equal deleted inserted replaced
5044:7e40acdf2163 5046:27e801a857cb
     1 /*
     1 /*
     2  * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1999-2010 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   413   virtual void print_name(outputStream* out) const { out->print("PatchingStub"); }
   413   virtual void print_name(outputStream* out) const { out->print("PatchingStub"); }
   414 #endif // PRODUCT
   414 #endif // PRODUCT
   415 };
   415 };
   416 
   416 
   417 
   417 
       
   418 //------------------------------------------------------------------------------
       
   419 // DeoptimizeStub
       
   420 //
       
   421 class DeoptimizeStub : public CodeStub {
       
   422 private:
       
   423   CodeEmitInfo* _info;
       
   424 
       
   425 public:
       
   426   DeoptimizeStub(CodeEmitInfo* info) : _info(new CodeEmitInfo(info)) {}
       
   427 
       
   428   virtual void emit_code(LIR_Assembler* e);
       
   429   virtual CodeEmitInfo* info() const           { return _info; }
       
   430   virtual bool is_exception_throw_stub() const { return true; }
       
   431   virtual void visit(LIR_OpVisitState* visitor) {
       
   432     visitor->do_slow_case(_info);
       
   433   }
       
   434 #ifndef PRODUCT
       
   435   virtual void print_name(outputStream* out) const { out->print("DeoptimizeStub"); }
       
   436 #endif // PRODUCT
       
   437 };
       
   438 
       
   439 
   418 class SimpleExceptionStub: public CodeStub {
   440 class SimpleExceptionStub: public CodeStub {
   419  private:
   441  private:
   420   LIR_Opr          _obj;
   442   LIR_Opr          _obj;
   421   Runtime1::StubID _stub;
   443   Runtime1::StubID _stub;
   422   CodeEmitInfo*    _info;
   444   CodeEmitInfo*    _info;