hotspot/src/share/vm/c1/c1_CodeStubs.hpp
changeset 8067 f5f4eac4c48f
parent 7397 5b173b4ca846
child 9176 42d9d1010f38
equal deleted inserted replaced
8066:919e5489b292 8067:f5f4eac4c48f
     1 /*
     1 /*
     2  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1999, 2011, Oracle and/or its affiliates. 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.
   474 #endif // PRODUCT
   474 #endif // PRODUCT
   475 };
   475 };
   476 
   476 
   477 
   477 
   478 
   478 
   479 class ArrayStoreExceptionStub: public CodeStub {
   479 class ArrayStoreExceptionStub: public SimpleExceptionStub {
   480  private:
   480  private:
   481   CodeEmitInfo* _info;
   481   CodeEmitInfo* _info;
   482 
   482 
   483  public:
   483  public:
   484   ArrayStoreExceptionStub(CodeEmitInfo* info);
   484   ArrayStoreExceptionStub(LIR_Opr obj, CodeEmitInfo* info): SimpleExceptionStub(Runtime1::throw_array_store_exception_id, obj, info) {}
   485   virtual void emit_code(LIR_Assembler* emit);
       
   486   virtual CodeEmitInfo* info() const             { return _info; }
       
   487   virtual bool is_exception_throw_stub() const   { return true; }
       
   488   virtual void visit(LIR_OpVisitState* visitor) {
       
   489     visitor->do_slow_case(_info);
       
   490   }
       
   491 #ifndef PRODUCT
   485 #ifndef PRODUCT
   492   virtual void print_name(outputStream* out) const { out->print("ArrayStoreExceptionStub"); }
   486   virtual void print_name(outputStream* out) const { out->print("ArrayStoreExceptionStub"); }
   493 #endif // PRODUCT
   487 #endif // PRODUCT
   494 };
   488 };
   495 
   489