Wed, 31 Mar 2010 11:54:03 -0700
6939845: zero needs fallback path in C++ interpreter for platform dependent fast bytecodes
Reviewed-by: never
Contributed-by: ed@camswl.com
src/share/vm/interpreter/bytecodeInterpreter.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Mar 30 00:57:55 2010 -0700 1.2 +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp Wed Mar 31 11:54:03 2010 -0700 1.3 @@ -2328,6 +2328,17 @@ 1.4 } 1.5 1.6 DEFAULT: 1.7 +#ifdef ZERO 1.8 + // Some zero configurations use the C++ interpreter as a 1.9 + // fallback interpreter and have support for platform 1.10 + // specific fast bytecodes which aren't supported here, so 1.11 + // redispatch to the equivalent non-fast bytecode when they 1.12 + // are encountered. 1.13 + if (Bytecodes::is_defined((Bytecodes::Code)opcode)) { 1.14 + opcode = (jubyte)Bytecodes::java_code((Bytecodes::Code)opcode); 1.15 + goto opcode_switch; 1.16 + } 1.17 +#endif 1.18 fatal2("\t*** Unimplemented opcode: %d = %s\n", 1.19 opcode, Bytecodes::name((Bytecodes::Code)opcode)); 1.20 goto finish;