259 if (last_sp != saved_sp) |
259 if (last_sp != saved_sp) |
260 printf("*** last_sp="INTPTR_FORMAT"\n", (intptr_t)last_sp); |
260 printf("*** last_sp="INTPTR_FORMAT"\n", (intptr_t)last_sp); |
261 if (Verbose) print_method_handle(mh); |
261 if (Verbose) print_method_handle(mh); |
262 } |
262 } |
263 #endif //PRODUCT |
263 #endif //PRODUCT |
|
264 |
|
265 // which conversion op types are implemented here? |
|
266 int MethodHandles::adapter_conversion_ops_supported_mask() { |
|
267 return ((1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY) |
|
268 |(1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW) |
|
269 |(1<<sun_dyn_AdapterMethodHandle::OP_CHECK_CAST) |
|
270 |(1<<sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM) |
|
271 |(1<<sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM) |
|
272 |(1<<sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS) |
|
273 |(1<<sun_dyn_AdapterMethodHandle::OP_ROT_ARGS) |
|
274 |(1<<sun_dyn_AdapterMethodHandle::OP_DUP_ARGS) |
|
275 |(1<<sun_dyn_AdapterMethodHandle::OP_DROP_ARGS) |
|
276 //|(1<<sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG! |
|
277 ); |
|
278 // FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS. |
|
279 } |
264 |
280 |
265 // Generate an "entry" field for a method handle. |
281 // Generate an "entry" field for a method handle. |
266 // This determines how the method handle will respond to calls. |
282 // This determines how the method handle will respond to calls. |
267 void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek) { |
283 void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek) { |
268 // Here is the register state during an interpreted call, |
284 // Here is the register state during an interpreted call, |