Mercurial > hg > graal-jvmci-8
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); |