Mercurial > hg > truffle
comparison src/share/vm/interpreter/rewriter.hpp @ 6266:1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author | twisti |
---|---|
date | Tue, 24 Jul 2012 10:51:00 -0700 |
parents | d3b9f2be46ab |
children | da91efe96a93 |
comparison
equal
deleted
inserted
replaced
6241:aba91a731143 | 6266:1d7922586cf6 |
---|---|
37 instanceKlassHandle _klass; | 37 instanceKlassHandle _klass; |
38 constantPoolHandle _pool; | 38 constantPoolHandle _pool; |
39 objArrayHandle _methods; | 39 objArrayHandle _methods; |
40 intArray _cp_map; | 40 intArray _cp_map; |
41 intStack _cp_cache_map; | 41 intStack _cp_cache_map; |
42 bool _have_invoke_dynamic; | 42 intArray _method_handle_invokers; |
43 | 43 |
44 void init_cp_map(int length) { | 44 void init_cp_map(int length) { |
45 _cp_map.initialize(length, -1); | 45 _cp_map.initialize(length, -1); |
46 // Choose an initial value large enough that we don't get frequent | 46 // Choose an initial value large enough that we don't get frequent |
47 // calls to grow(). | 47 // calls to grow(). |
86 void compute_index_maps(); | 86 void compute_index_maps(); |
87 void make_constant_pool_cache(TRAPS); | 87 void make_constant_pool_cache(TRAPS); |
88 void scan_method(methodOop m, bool reverse = false); | 88 void scan_method(methodOop m, bool reverse = false); |
89 void rewrite_Object_init(methodHandle m, TRAPS); | 89 void rewrite_Object_init(methodHandle m, TRAPS); |
90 void rewrite_member_reference(address bcp, int offset, bool reverse = false); | 90 void rewrite_member_reference(address bcp, int offset, bool reverse = false); |
91 void maybe_rewrite_invokehandle(address opc, int cp_index, bool reverse = false); | |
91 void rewrite_invokedynamic(address bcp, int offset, bool reverse = false); | 92 void rewrite_invokedynamic(address bcp, int offset, bool reverse = false); |
92 void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse = false); | 93 void maybe_rewrite_ldc(address bcp, int offset, bool is_wide, bool reverse = false); |
93 // Revert bytecodes in case of an exception. | 94 // Revert bytecodes in case of an exception. |
94 void restore_bytecodes(); | 95 void restore_bytecodes(); |
95 | 96 |