< prev index next >

src/hotspot/share/c1/c1_CodeStubs.hpp

Print this page




 106     visitor->do_input(_method);
 107   }
 108 
 109 #ifndef PRODUCT
 110   virtual void print_name(outputStream* out) const { out->print("CounterOverflowStub"); }
 111 #endif // PRODUCT
 112 
 113 };
 114 
 115 class ConversionStub: public CodeStub {
 116  private:
 117   Bytecodes::Code _bytecode;
 118   LIR_Opr         _input;
 119   LIR_Opr         _result;
 120 
 121   static float float_zero;
 122   static double double_zero;
 123  public:
 124   ConversionStub(Bytecodes::Code bytecode, LIR_Opr input, LIR_Opr result)
 125     : _bytecode(bytecode), _input(input), _result(result) {
 126     NOT_IA32( assert(false, "used only by x86-32"); )
 127   }
 128 
 129   Bytecodes::Code bytecode() { return _bytecode; }
 130   LIR_Opr         input()    { return _input; }
 131   LIR_Opr         result()   { return _result; }
 132 
 133   virtual void emit_code(LIR_Assembler* e);
 134   virtual void visit(LIR_OpVisitState* visitor) {
 135     visitor->do_slow_case();
 136     visitor->do_input(_input);
 137     visitor->do_output(_result);
 138   }
 139 #ifndef PRODUCT
 140   virtual void print_name(outputStream* out) const { out->print("ConversionStub"); }
 141 #endif // PRODUCT
 142 };
 143 
 144 
 145 // Throws ArrayIndexOutOfBoundsException by default but can be
 146 // configured to throw IndexOutOfBoundsException in constructor




 106     visitor->do_input(_method);
 107   }
 108 
 109 #ifndef PRODUCT
 110   virtual void print_name(outputStream* out) const { out->print("CounterOverflowStub"); }
 111 #endif // PRODUCT
 112 
 113 };
 114 
 115 class ConversionStub: public CodeStub {
 116  private:
 117   Bytecodes::Code _bytecode;
 118   LIR_Opr         _input;
 119   LIR_Opr         _result;
 120 
 121   static float float_zero;
 122   static double double_zero;
 123  public:
 124   ConversionStub(Bytecodes::Code bytecode, LIR_Opr input, LIR_Opr result)
 125     : _bytecode(bytecode), _input(input), _result(result) {
 126     NOT_IA32( ShouldNotReachHere(); ) // used only on x86-32
 127   }
 128 
 129   Bytecodes::Code bytecode() { return _bytecode; }
 130   LIR_Opr         input()    { return _input; }
 131   LIR_Opr         result()   { return _result; }
 132 
 133   virtual void emit_code(LIR_Assembler* e);
 134   virtual void visit(LIR_OpVisitState* visitor) {
 135     visitor->do_slow_case();
 136     visitor->do_input(_input);
 137     visitor->do_output(_result);
 138   }
 139 #ifndef PRODUCT
 140   virtual void print_name(outputStream* out) const { out->print("ConversionStub"); }
 141 #endif // PRODUCT
 142 };
 143 
 144 
 145 // Throws ArrayIndexOutOfBoundsException by default but can be
 146 // configured to throw IndexOutOfBoundsException in constructor


< prev index next >