< prev index next >

src/hotspot/share/asm/codeBuffer.hpp

Print this page

        

@@ -40,10 +40,13 @@
 
 class CodeOffsets: public StackObj {
 public:
   enum Entries { Entry,
                  Verified_Entry,
+                 Value_Entry,
+                 Verified_Value_Entry,
+                 Verified_Value_Entry_RO,
                  Frame_Complete, // Offset in the code where the frame setup is (for forte stackwalks) is complete
                  OSR_Entry,
                  Exceptions,     // Offset where exception handler lives
                  Deopt,          // Offset where deopt handler lives
                  DeoptMH,        // Offset where MethodHandle deopt handler lives

@@ -55,25 +58,29 @@
 
   enum { frame_never_safe = -1 };
 
 private:
   int _values[max_Entries];
+  void check(int e) const { assert(0 <= e && e < max_Entries, "must be"); }
 
 public:
   CodeOffsets() {
     _values[Entry         ] = 0;
     _values[Verified_Entry] = 0;
+    _values[Value_Entry   ] = 0;
+    _values[Verified_Value_Entry] = -1;
+    _values[Verified_Value_Entry_RO] = -1;
     _values[Frame_Complete] = frame_never_safe;
     _values[OSR_Entry     ] = 0;
     _values[Exceptions    ] = -1;
     _values[Deopt         ] = -1;
     _values[DeoptMH       ] = -1;
     _values[UnwindHandler ] = -1;
   }
 
-  int value(Entries e) { return _values[e]; }
-  void set_value(Entries e, int val) { _values[e] = val; }
+  int value(Entries e) const { check(e); return _values[e]; }
+  void set_value(Entries e, int val) { check(e); _values[e] = val; }
 };
 
 // This class represents a stream of code and associated relocations.
 // There are a few in each CodeBuffer.
 // They are filled concurrently, and concatenated at the end.
< prev index next >