1.1 --- a/src/share/vm/c1/c1_CodeStubs.hpp Wed Mar 20 17:04:45 2013 -0700 1.2 +++ b/src/share/vm/c1/c1_CodeStubs.hpp Thu Mar 21 09:27:54 2013 +0100 1.3 @@ -166,6 +166,22 @@ 1.4 #endif // PRODUCT 1.5 }; 1.6 1.7 +// stub used when predicate fails and deoptimization is needed 1.8 +class PredicateFailedStub: public CodeStub { 1.9 + private: 1.10 + CodeEmitInfo* _info; 1.11 + 1.12 + public: 1.13 + PredicateFailedStub(CodeEmitInfo* info); 1.14 + virtual void emit_code(LIR_Assembler* e); 1.15 + virtual CodeEmitInfo* info() const { return _info; } 1.16 + virtual void visit(LIR_OpVisitState* visitor) { 1.17 + visitor->do_slow_case(_info); 1.18 + } 1.19 +#ifndef PRODUCT 1.20 + virtual void print_name(outputStream* out) const { out->print("PredicateFailedStub"); } 1.21 +#endif // PRODUCT 1.22 +}; 1.23 1.24 class DivByZeroStub: public CodeStub { 1.25 private: