< prev index next >

src/hotspot/share/c1/c1_CodeStubs.hpp

Print this page

@@ -229,10 +229,33 @@
 #ifndef PRODUCT
   virtual void print_name(outputStream* out) const { out->print("ImplicitNullCheckStub"); }
 #endif // PRODUCT
 };
 
+class LoadFlattenedArrayStub: public CodeStub {
+ private:
+  LIR_Opr          _array;
+  LIR_Opr          _index;
+  LIR_Opr          _result;
+  CodeEmitInfo*    _info;
+
+ public:
+  LoadFlattenedArrayStub(LIR_Opr array, LIR_Opr index, LIR_Opr result, CodeEmitInfo* info);
+  virtual void emit_code(LIR_Assembler* e);
+  virtual CodeEmitInfo* info() const             { return _info; }
+  virtual void visit(LIR_OpVisitState* visitor) {
+    visitor->do_slow_case(_info);
+    visitor->do_input(_array);
+    visitor->do_input(_index);
+    visitor->do_output(_result);
+  }
+#ifndef PRODUCT
+  virtual void print_name(outputStream* out) const { out->print("LoadFlattenedArrayStub"); }
+#endif // PRODUCT
+};
+
+
 
 class NewInstanceStub: public CodeStub {
  private:
   ciInstanceKlass* _klass;
   LIR_Opr          _klass_reg;
< prev index next >