< prev index next >

src/hotspot/share/c1/c1_CodeStubs.hpp

Print this page


 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(_klass_reg);
 272     visitor->do_input(_length);
 273     assert(_result->is_valid(), "must be valid"); visitor->do_output(_result);
 274   }
 275 #ifndef PRODUCT
 276   virtual void print_name(outputStream* out) const { out->print("NewTypeArrayStub"); }
 277 #endif // PRODUCT
 278 };
 279 
 280 
 281 class NewObjectArrayStub: public CodeStub {
 282  private:
 283   LIR_Opr        _klass_reg;
 284   LIR_Opr        _length;
 285   LIR_Opr        _result;
 286   CodeEmitInfo*  _info;
 287 
 288  public:
 289   NewObjectArrayStub(LIR_Opr klass_reg, LIR_Opr length, LIR_Opr result, CodeEmitInfo* info);
 290   virtual void emit_code(LIR_Assembler* e);
 291   virtual CodeEmitInfo* info() const             { return _info; }
 292   virtual void visit(LIR_OpVisitState* visitor) {
 293     visitor->do_slow_case(_info);
 294     visitor->do_input(_klass_reg);
 295     visitor->do_input(_length);
 296     assert(_result->is_valid(), "must be valid"); visitor->do_output(_result);
 297   }
 298 #ifndef PRODUCT
 299   virtual void print_name(outputStream* out) const { out->print("NewObjectArrayStub"); }
 300 #endif // PRODUCT
 301 };
 302 
 303 
 304 class MonitorAccessStub: public CodeStub {
 305  protected:
 306   LIR_Opr _obj_reg;
 307   LIR_Opr _lock_reg;
 308 
 309  public:




 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(_klass_reg);
 272     visitor->do_input(_length);
 273     assert(_result->is_valid(), "must be valid"); visitor->do_output(_result);
 274   }
 275 #ifndef PRODUCT
 276   virtual void print_name(outputStream* out) const { out->print("NewTypeArrayStub"); }
 277 #endif // PRODUCT
 278 };
 279 
 280 
 281 class NewObjectArrayStub: public CodeStub {
 282  private:
 283   LIR_Opr        _klass_reg;
 284   LIR_Opr        _length;
 285   LIR_Opr        _result;
 286   CodeEmitInfo*  _info;
 287   bool           _is_value_type;
 288  public:
 289   NewObjectArrayStub(LIR_Opr klass_reg, LIR_Opr length, LIR_Opr result, CodeEmitInfo* info, bool is_value_type);
 290   virtual void emit_code(LIR_Assembler* e);
 291   virtual CodeEmitInfo* info() const             { return _info; }
 292   virtual void visit(LIR_OpVisitState* visitor) {
 293     visitor->do_slow_case(_info);
 294     visitor->do_input(_klass_reg);
 295     visitor->do_input(_length);
 296     assert(_result->is_valid(), "must be valid"); visitor->do_output(_result);
 297   }
 298 #ifndef PRODUCT
 299   virtual void print_name(outputStream* out) const { out->print("NewObjectArrayStub"); }
 300 #endif // PRODUCT
 301 };
 302 
 303 
 304 class MonitorAccessStub: public CodeStub {
 305  protected:
 306   LIR_Opr _obj_reg;
 307   LIR_Opr _lock_reg;
 308 
 309  public:


< prev index next >