equal
deleted
inserted
replaced
89 static bool is_signature_polymorphic(vmIntrinsics::ID iid) { |
89 static bool is_signature_polymorphic(vmIntrinsics::ID iid) { |
90 return (iid >= vmIntrinsics::FIRST_MH_SIG_POLY && |
90 return (iid >= vmIntrinsics::FIRST_MH_SIG_POLY && |
91 iid <= vmIntrinsics::LAST_MH_SIG_POLY); |
91 iid <= vmIntrinsics::LAST_MH_SIG_POLY); |
92 } |
92 } |
93 |
93 |
|
94 static bool is_signature_polymorphic_method(Method* m) { |
|
95 return is_signature_polymorphic(m->intrinsic_id()); |
|
96 } |
|
97 |
94 static bool is_signature_polymorphic_intrinsic(vmIntrinsics::ID iid) { |
98 static bool is_signature_polymorphic_intrinsic(vmIntrinsics::ID iid) { |
95 assert(is_signature_polymorphic(iid), ""); |
99 assert(is_signature_polymorphic(iid), ""); |
96 // Most sig-poly methods are intrinsics which do not require an |
100 // Most sig-poly methods are intrinsics which do not require an |
97 // appeal to Java for adapter code. |
101 // appeal to Java for adapter code. |
98 return (iid != vmIntrinsics::_invokeGeneric); |
102 return (iid != vmIntrinsics::_invokeGeneric); |
128 } |
132 } |
129 static bool is_method_handle_invoke_name(Klass* klass, Symbol* name); |
133 static bool is_method_handle_invoke_name(Klass* klass, Symbol* name); |
130 static bool is_signature_polymorphic_name(Klass* klass, Symbol* name) { |
134 static bool is_signature_polymorphic_name(Klass* klass, Symbol* name) { |
131 return signature_polymorphic_name_id(klass, name) != vmIntrinsics::_none; |
135 return signature_polymorphic_name_id(klass, name) != vmIntrinsics::_none; |
132 } |
136 } |
|
137 |
|
138 static Bytecodes::Code signature_polymorphic_intrinsic_bytecode(vmIntrinsics::ID id); |
133 |
139 |
134 static int get_named_constant(int which, Handle name_box, TRAPS); |
140 static int get_named_constant(int which, Handle name_box, TRAPS); |
135 |
141 |
136 public: |
142 public: |
137 static Symbol* lookup_signature(oop type_str, bool polymorphic, TRAPS); // use TempNewSymbol |
143 static Symbol* lookup_signature(oop type_str, bool polymorphic, TRAPS); // use TempNewSymbol |