提交 45ec51f1 编写于 作者: N never

6889869: assert(!Interpreter::bytecode_should_reexecute(code),"should not reexecute")

Reviewed-by: jrose, kvn, cfang, twisti
上级 8884e7cf
...@@ -356,8 +356,7 @@ void DebugInformationRecorder::end_scopes(int pc_offset, bool is_safepoint) { ...@@ -356,8 +356,7 @@ void DebugInformationRecorder::end_scopes(int pc_offset, bool is_safepoint) {
// search forward until it finds last. // search forward until it finds last.
// In addition, it does not matter if the last PcDesc // In addition, it does not matter if the last PcDesc
// is for a safepoint or not. // is for a safepoint or not.
if (_prev_safepoint_pc < prev->pc_offset() && if (_prev_safepoint_pc < prev->pc_offset() && prev->is_same_info(last)) {
prev->scope_decode_offset() == last->scope_decode_offset()) {
assert(prev == last-1, "sane"); assert(prev == last-1, "sane");
prev->set_pc_offset(pc_offset); prev->set_pc_offset(pc_offset);
_pcs_length -= 1; _pcs_length -= 1;
......
...@@ -39,6 +39,7 @@ class PcDesc VALUE_OBJ_CLASS_SPEC { ...@@ -39,6 +39,7 @@ class PcDesc VALUE_OBJ_CLASS_SPEC {
struct { struct {
unsigned int reexecute: 1; unsigned int reexecute: 1;
} bits; } bits;
bool operator ==(const PcDescFlags& other) { return word == other.word; }
} _flags; } _flags;
public: public:
...@@ -64,6 +65,13 @@ class PcDesc VALUE_OBJ_CLASS_SPEC { ...@@ -64,6 +65,13 @@ class PcDesc VALUE_OBJ_CLASS_SPEC {
bool should_reexecute() const { return _flags.bits.reexecute; } bool should_reexecute() const { return _flags.bits.reexecute; }
void set_should_reexecute(bool z) { _flags.bits.reexecute = z; } void set_should_reexecute(bool z) { _flags.bits.reexecute = z; }
// Does pd refer to the same information as pd?
bool is_same_info(const PcDesc* pd) {
return _scope_decode_offset == pd->_scope_decode_offset &&
_obj_decode_offset == pd->_obj_decode_offset &&
_flags == pd->_flags;
}
// Returns the real pc // Returns the real pc
address real_pc(const nmethod* code) const; address real_pc(const nmethod* code) const;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册