Mercurial > hg > truffle
comparison src/share/vm/interpreter/interpreterRuntime.cpp @ 1138:dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.
Reviewed-by: kvn, never
author | twisti |
---|---|
date | Tue, 05 Jan 2010 15:21:25 +0100 |
parents | 389049f3f393 |
children | 4ce7240d622c |
comparison
equal
deleted
inserted
replaced
1137:97125851f396 | 1138:dd57230ba8fe |
---|---|
1248 assert(fr.is_interpreted_frame(), ""); | 1248 assert(fr.is_interpreted_frame(), ""); |
1249 jint bci = fr.interpreter_frame_bci(); | 1249 jint bci = fr.interpreter_frame_bci(); |
1250 methodHandle mh(thread, fr.interpreter_frame_method()); | 1250 methodHandle mh(thread, fr.interpreter_frame_method()); |
1251 Bytecode_invoke* invoke = Bytecode_invoke_at(mh, bci); | 1251 Bytecode_invoke* invoke = Bytecode_invoke_at(mh, bci); |
1252 ArgumentSizeComputer asc(invoke->signature()); | 1252 ArgumentSizeComputer asc(invoke->signature()); |
1253 int size_of_arguments = (asc.size() + (invoke->is_invokestatic() ? 0 : 1)); // receiver | 1253 int size_of_arguments = (asc.size() + (invoke->has_receiver() ? 1 : 0)); // receiver |
1254 Copy::conjoint_bytes(src_address, dest_address, | 1254 Copy::conjoint_bytes(src_address, dest_address, |
1255 size_of_arguments * Interpreter::stackElementSize()); | 1255 size_of_arguments * Interpreter::stackElementSize()); |
1256 IRT_END | 1256 IRT_END |
1257 #endif | 1257 #endif |