564 }
565
566 LIR_Opr src() const { return _op->src(); }
567 LIR_Opr src_pos() const { return _op->src_pos(); }
568 LIR_Opr dst() const { return _op->dst(); }
569 LIR_Opr dst_pos() const { return _op->dst_pos(); }
570 LIR_Opr length() const { return _op->length(); }
571 LIR_Opr tmp() const { return _op->tmp(); }
572
573 virtual void emit_code(LIR_Assembler* e);
574 virtual CodeEmitInfo* info() const { return _op->info(); }
575 virtual void visit(LIR_OpVisitState* visitor) {
576 // don't pass in the code emit info since it's processed in the fast path
577 visitor->do_slow_case();
578 }
579 #ifndef PRODUCT
580 virtual void print_name(outputStream* out) const { out->print("ArrayCopyStub"); }
581 #endif // PRODUCT
582 };
583
584 #endif // SHARE_C1_C1_CODESTUBS_HPP
|
564 }
565
566 LIR_Opr src() const { return _op->src(); }
567 LIR_Opr src_pos() const { return _op->src_pos(); }
568 LIR_Opr dst() const { return _op->dst(); }
569 LIR_Opr dst_pos() const { return _op->dst_pos(); }
570 LIR_Opr length() const { return _op->length(); }
571 LIR_Opr tmp() const { return _op->tmp(); }
572
573 virtual void emit_code(LIR_Assembler* e);
574 virtual CodeEmitInfo* info() const { return _op->info(); }
575 virtual void visit(LIR_OpVisitState* visitor) {
576 // don't pass in the code emit info since it's processed in the fast path
577 visitor->do_slow_case();
578 }
579 #ifndef PRODUCT
580 virtual void print_name(outputStream* out) const { out->print("ArrayCopyStub"); }
581 #endif // PRODUCT
582 };
583
584 class LoadKlassStub: public CodeStub {
585 private:
586 LIR_Opr _result;
587
588 public:
589 LoadKlassStub(LIR_Opr result) :
590 CodeStub(), _result(result) {};
591
592 virtual void emit_code(LIR_Assembler* e);
593 virtual void visit(LIR_OpVisitState* visitor) {
594 visitor->do_temp(_result);
595 visitor->do_output(_result);
596 }
597 #ifndef PRODUCT
598 virtual void print_name(outputStream* out) const { out->print("LoadKlassStub"); }
599 #endif // PRODUCT
600 };
601
602 #endif // SHARE_C1_C1_CODESTUBS_HPP
|