8155738: C2: fix frame_complete_offset

During scratch_emit_size wrong value was set. Also set offset of ppc.

Reviewed-by: kvn, dlong
This commit is contained in:
Goetz Lindenmaier 2016-05-02 14:17:19 -07:00
parent 73db8859bf
commit 9722354d37
2 changed files with 3 additions and 1 deletions

View File

@ -1380,6 +1380,8 @@ void MachPrologNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
// Save return pc.
___(std) std(return_pc, _abi(lr), callers_sp);
}
C->set_frame_complete(cbuf.insts_size());
}
#undef ___
#undef ___stop

View File

@ -1101,7 +1101,7 @@ class Compile : public Phase {
int code_size() { return _method_size; }
CodeBuffer* code_buffer() { return &_code_buffer; }
int first_block_size() { return _first_block_size; }
void set_frame_complete(int off) { _code_offsets.set_value(CodeOffsets::Frame_Complete, off); }
void set_frame_complete(int off) { if (!in_scratch_emit_size()) { _code_offsets.set_value(CodeOffsets::Frame_Complete, off); } }
ExceptionHandlerTable* handler_table() { return &_handler_table; }
ImplicitExceptionTable* inc_table() { return &_inc_table; }
OopMapSet* oop_map_set() { return _oop_map_set; }