8152065: TraceBytecodes breaks the interpreter expression stack

Move trace_bytecode to InterpreterRuntime and make trace_bytecode an IRT_LEAF so that safepoints are not allowed.

Reviewed-by: jiangli, dholmes, dcubed
This commit is contained in:
Coleen Phillimore 2016-03-18 15:14:22 -04:00
parent 6e0466f618
commit 1954276b28
11 changed files with 33 additions and 73 deletions

View file

@ -138,11 +138,11 @@
BytecodeHistogram::_counters[(Bytecodes::Code)opcode]++; \
if (StopInterpreterAt && StopInterpreterAt == BytecodeCounter::_counter_value) os::breakpoint(); \
if (TraceBytecodes) { \
CALL_VM((void)SharedRuntime::trace_bytecode(THREAD, 0, \
topOfStack[Interpreter::expr_index_at(1)], \
topOfStack[Interpreter::expr_index_at(2)]), \
handle_exception); \
} \
CALL_VM((void)InterpreterRuntime::trace_bytecode(THREAD, 0, \
topOfStack[Interpreter::expr_index_at(1)], \
topOfStack[Interpreter::expr_index_at(2)]), \
handle_exception); \
} \
}
#endif