< prev index next >

src/hotspot/share/c1/c1_CodeStubs.hpp

Print this page


 214 class ImplicitNullCheckStub: public CodeStub {
 215  private:
 216   CodeEmitInfo* _info;
 217   int           _offset;
 218 
 219  public:
 220   ImplicitNullCheckStub(int offset, CodeEmitInfo* info)
 221     : _info(info), _offset(offset) {
 222   }
 223   virtual void emit_code(LIR_Assembler* e);
 224   virtual CodeEmitInfo* info() const             { return _info; }
 225   virtual bool is_exception_throw_stub() const   { return true; }
 226   virtual void visit(LIR_OpVisitState* visitor) {
 227     visitor->do_slow_case(_info);
 228   }
 229 #ifndef PRODUCT
 230   virtual void print_name(outputStream* out) const { out->print("ImplicitNullCheckStub"); }
 231 #endif // PRODUCT
 232 };
 233 























 234 
 235 class NewInstanceStub: public CodeStub {
 236  private:
 237   ciInstanceKlass* _klass;
 238   LIR_Opr          _klass_reg;
 239   LIR_Opr          _result;
 240   CodeEmitInfo*    _info;
 241   Runtime1::StubID _stub_id;
 242 
 243  public:
 244   NewInstanceStub(LIR_Opr klass_reg, LIR_Opr result, ciInstanceKlass* klass, CodeEmitInfo* info, Runtime1::StubID stub_id);
 245   virtual void emit_code(LIR_Assembler* e);
 246   virtual CodeEmitInfo* info() const             { return _info; }
 247   virtual void visit(LIR_OpVisitState* visitor) {
 248     visitor->do_slow_case(_info);
 249     visitor->do_input(_klass_reg);
 250     visitor->do_output(_result);
 251   }
 252 #ifndef PRODUCT
 253   virtual void print_name(outputStream* out) const { out->print("NewInstanceStub"); }




 214 class ImplicitNullCheckStub: public CodeStub {
 215  private:
 216   CodeEmitInfo* _info;
 217   int           _offset;
 218 
 219  public:
 220   ImplicitNullCheckStub(int offset, CodeEmitInfo* info)
 221     : _info(info), _offset(offset) {
 222   }
 223   virtual void emit_code(LIR_Assembler* e);
 224   virtual CodeEmitInfo* info() const             { return _info; }
 225   virtual bool is_exception_throw_stub() const   { return true; }
 226   virtual void visit(LIR_OpVisitState* visitor) {
 227     visitor->do_slow_case(_info);
 228   }
 229 #ifndef PRODUCT
 230   virtual void print_name(outputStream* out) const { out->print("ImplicitNullCheckStub"); }
 231 #endif // PRODUCT
 232 };
 233 
 234 class LoadFlattenedArrayStub: public CodeStub {
 235  private:
 236   LIR_Opr          _array;
 237   LIR_Opr          _index;
 238   LIR_Opr          _result;
 239   CodeEmitInfo*    _info;
 240 
 241  public:
 242   LoadFlattenedArrayStub(LIR_Opr array, LIR_Opr index, LIR_Opr result, CodeEmitInfo* info);
 243   virtual void emit_code(LIR_Assembler* e);
 244   virtual CodeEmitInfo* info() const             { return _info; }
 245   virtual void visit(LIR_OpVisitState* visitor) {
 246     visitor->do_slow_case(_info);
 247     visitor->do_input(_array);
 248     visitor->do_input(_index);
 249     visitor->do_output(_result);
 250   }
 251 #ifndef PRODUCT
 252   virtual void print_name(outputStream* out) const { out->print("LoadFlattenedArrayStub"); }
 253 #endif // PRODUCT
 254 };
 255 
 256 
 257 
 258 class NewInstanceStub: public CodeStub {
 259  private:
 260   ciInstanceKlass* _klass;
 261   LIR_Opr          _klass_reg;
 262   LIR_Opr          _result;
 263   CodeEmitInfo*    _info;
 264   Runtime1::StubID _stub_id;
 265 
 266  public:
 267   NewInstanceStub(LIR_Opr klass_reg, LIR_Opr result, ciInstanceKlass* klass, CodeEmitInfo* info, Runtime1::StubID stub_id);
 268   virtual void emit_code(LIR_Assembler* e);
 269   virtual CodeEmitInfo* info() const             { return _info; }
 270   virtual void visit(LIR_OpVisitState* visitor) {
 271     visitor->do_slow_case(_info);
 272     visitor->do_input(_klass_reg);
 273     visitor->do_output(_result);
 274   }
 275 #ifndef PRODUCT
 276   virtual void print_name(outputStream* out) const { out->print("NewInstanceStub"); }


< prev index next >