comparison src/share/vm/interpreter/rewriter.hpp @ 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 c18cbe5936b8 ab102d5d923e
comparison
equal deleted inserted replaced
1137:97125851f396 1138:dd57230ba8fe
55 int cache_index = _cp_cache_map.append(main_cpc_entry | _secondary_entry_tag); 55 int cache_index = _cp_cache_map.append(main_cpc_entry | _secondary_entry_tag);
56 return cache_index; 56 return cache_index;
57 } 57 }
58 58
59 // All the work goes in here: 59 // All the work goes in here:
60 Rewriter(instanceKlassHandle klass, TRAPS); 60 Rewriter(instanceKlassHandle klass, constantPoolHandle cpool, objArrayHandle methods, TRAPS);
61 61
62 void compute_index_maps(); 62 void compute_index_maps();
63 void make_constant_pool_cache(TRAPS); 63 void make_constant_pool_cache(TRAPS);
64 void scan_method(methodOop m); 64 void scan_method(methodOop m);
65 methodHandle rewrite_jsrs(methodHandle m, TRAPS); 65 methodHandle rewrite_jsrs(methodHandle m, TRAPS);
68 void rewrite_invokedynamic(address bcp, int offset, int cp_index); 68 void rewrite_invokedynamic(address bcp, int offset, int cp_index);
69 69
70 public: 70 public:
71 // Driver routine: 71 // Driver routine:
72 static void rewrite(instanceKlassHandle klass, TRAPS); 72 static void rewrite(instanceKlassHandle klass, TRAPS);
73 static void rewrite(instanceKlassHandle klass, constantPoolHandle cpool, objArrayHandle methods, TRAPS);
73 74
74 enum { 75 enum {
75 _secondary_entry_tag = nth_bit(30) 76 _secondary_entry_tag = nth_bit(30)
76 }; 77 };
77 }; 78 };