Mercurial > hg > truffle
comparison src/share/vm/code/nmethod.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 | e66fd840cb6b |
children | b1f619d38249 |
comparison
equal
deleted
inserted
replaced
1137:97125851f396 | 1138:dd57230ba8fe |
---|---|
1722 // called with a frame corresponding to a Java invoke | 1722 // called with a frame corresponding to a Java invoke |
1723 void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { | 1723 void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { |
1724 if (!method()->is_native()) { | 1724 if (!method()->is_native()) { |
1725 SimpleScopeDesc ssd(this, fr.pc()); | 1725 SimpleScopeDesc ssd(this, fr.pc()); |
1726 Bytecode_invoke* call = Bytecode_invoke_at(ssd.method(), ssd.bci()); | 1726 Bytecode_invoke* call = Bytecode_invoke_at(ssd.method(), ssd.bci()); |
1727 bool is_static = call->is_invokestatic(); | 1727 bool has_receiver = call->has_receiver(); |
1728 symbolOop signature = call->signature(); | 1728 symbolOop signature = call->signature(); |
1729 fr.oops_compiled_arguments_do(signature, is_static, reg_map, f); | 1729 fr.oops_compiled_arguments_do(signature, has_receiver, reg_map, f); |
1730 } | 1730 } |
1731 } | 1731 } |
1732 | 1732 |
1733 | 1733 |
1734 oop nmethod::embeddedOop_at(u_char* p) { | 1734 oop nmethod::embeddedOop_at(u_char* p) { |