< prev index next > src/hotspot/share/asm/codeBuffer.hpp
Print this page
class CodeOffsets: public StackObj {
public:
enum Entries { Entry,
Verified_Entry,
+ Inline_Entry,
+ Verified_Inline_Entry,
+ Verified_Inline_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
enum { frame_never_safe = -1 };
private:
int _values[max_Entries];
public:
CodeOffsets() {
_values[Entry ] = 0;
_values[Verified_Entry] = 0;
_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; }
};
// 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.
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[Inline_Entry ] = 0;
+ _values[Verified_Inline_Entry] = -1;
+ _values[Verified_Inline_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) 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 >