comparison src/share/vm/interpreter/templateTable.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 fdb992d83a87
children da91efe96a93
comparison
equal deleted inserted replaced
6241:aba91a731143 6266:1d7922586cf6
96 96
97 class TemplateTable: AllStatic { 97 class TemplateTable: AllStatic {
98 public: 98 public:
99 enum Operation { add, sub, mul, div, rem, _and, _or, _xor, shl, shr, ushr }; 99 enum Operation { add, sub, mul, div, rem, _and, _or, _xor, shl, shr, ushr };
100 enum Condition { equal, not_equal, less, less_equal, greater, greater_equal }; 100 enum Condition { equal, not_equal, less, less_equal, greater, greater_equal };
101 enum CacheByte { f1_byte = 1, f2_byte = 2, f1_oop = 0x11 }; // byte_no codes 101 enum CacheByte { f1_byte = 1, f2_byte = 2, f12_oop = 0x12 }; // byte_no codes
102 102
103 private: 103 private:
104 static bool _is_initialized; // true if TemplateTable has been initialized 104 static bool _is_initialized; // true if TemplateTable has been initialized
105 static Template _template_table [Bytecodes::number_of_codes]; 105 static Template _template_table [Bytecodes::number_of_codes];
106 static Template _template_table_wide[Bytecodes::number_of_codes]; 106 static Template _template_table_wide[Bytecodes::number_of_codes];
292 static void invokevirtual(int byte_no); 292 static void invokevirtual(int byte_no);
293 static void invokespecial(int byte_no); 293 static void invokespecial(int byte_no);
294 static void invokestatic(int byte_no); 294 static void invokestatic(int byte_no);
295 static void invokeinterface(int byte_no); 295 static void invokeinterface(int byte_no);
296 static void invokedynamic(int byte_no); 296 static void invokedynamic(int byte_no);
297 static void invokehandle(int byte_no);
297 static void fast_invokevfinal(int byte_no); 298 static void fast_invokevfinal(int byte_no);
298 299
299 static void getfield_or_static(int byte_no, bool is_static); 300 static void getfield_or_static(int byte_no, bool is_static);
300 static void putfield_or_static(int byte_no, bool is_static); 301 static void putfield_or_static(int byte_no, bool is_static);
301 static void getfield(int byte_no); 302 static void getfield(int byte_no);