< 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 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




 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 LoadFlattenedArrayStub: public CodeStub {
 236  private:
 237   LIR_Opr          _array;
 238   LIR_Opr          _index;
 239   LIR_Opr          _result;
 240   CodeEmitInfo*    _info;
 241 
 242  public:
 243   LoadFlattenedArrayStub(LIR_Opr array, LIR_Opr index, LIR_Opr result, CodeEmitInfo* info);
 244   virtual void emit_code(LIR_Assembler* e);
 245   virtual CodeEmitInfo* info() const             { return _info; }
 246   virtual void visit(LIR_OpVisitState* visitor) {
 247     visitor->do_slow_case(_info);
 248     visitor->do_input(_array);
 249     visitor->do_input(_index);
 250     visitor->do_output(_result);
 251   }
 252 #ifndef PRODUCT
 253   virtual void print_name(outputStream* out) const { out->print("LoadFlattenedArrayStub"); }
 254 #endif // PRODUCT
 255 };
 256 
 257 
 258 class StoreFlattenedArrayStub: public CodeStub {
 259  private:
 260   LIR_Opr          _array;
 261   LIR_Opr          _index;
 262   LIR_Opr          _value;
 263   CodeEmitInfo*    _info;
 264 
 265  public:
 266   StoreFlattenedArrayStub(LIR_Opr array, LIR_Opr index, LIR_Opr value, CodeEmitInfo* info);
 267   virtual void emit_code(LIR_Assembler* e);
 268   virtual CodeEmitInfo* info() const             { return _info; }
 269   virtual void visit(LIR_OpVisitState* visitor) {
 270     visitor->do_slow_case(_info);
 271     visitor->do_input(_array);
 272     visitor->do_input(_index);
 273     visitor->do_input(_value);
 274   }
 275 #ifndef PRODUCT
 276   virtual void print_name(outputStream* out) const { out->print("StoreFlattenedArrayStub"); }
 277 #endif // PRODUCT
 278 };
 279 
 280 
 281 class NewInstanceStub: public CodeStub {
 282  private:
 283   ciInstanceKlass* _klass;
 284   LIR_Opr          _klass_reg;
 285   LIR_Opr          _result;
 286   CodeEmitInfo*    _info;
 287   Runtime1::StubID _stub_id;
 288 
 289  public:
 290   NewInstanceStub(LIR_Opr klass_reg, LIR_Opr result, ciInstanceKlass* klass, CodeEmitInfo* info, Runtime1::StubID stub_id);
 291   virtual void emit_code(LIR_Assembler* e);
 292   virtual CodeEmitInfo* info() const             { return _info; }
 293   virtual void visit(LIR_OpVisitState* visitor) {
 294     visitor->do_slow_case(_info);
 295     visitor->do_input(_klass_reg);
 296     visitor->do_output(_result);
 297   }
 298 #ifndef PRODUCT


< prev index next >