220 // here's where control starts out: |
220 // here's where control starts out: |
221 __ align(CodeEntryAlignment); |
221 __ align(CodeEntryAlignment); |
222 address entry_point = __ pc(); |
222 address entry_point = __ pc(); |
223 |
223 |
224 if (VerifyMethodHandles) { |
224 if (VerifyMethodHandles) { |
|
225 assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2"); |
|
226 |
225 Label L; |
227 Label L; |
226 BLOCK_COMMENT("verify_intrinsic_id {"); |
228 BLOCK_COMMENT("verify_intrinsic_id {"); |
227 __ cmpb(Address(rbx_method, Method::intrinsic_id_offset_in_bytes()), (int) iid); |
229 __ cmpw(Address(rbx_method, Method::intrinsic_id_offset_in_bytes()), (int) iid); |
228 __ jcc(Assembler::equal, L); |
230 __ jcc(Assembler::equal, L); |
229 if (iid == vmIntrinsics::_linkToVirtual || |
231 if (iid == vmIntrinsics::_linkToVirtual || |
230 iid == vmIntrinsics::_linkToSpecial) { |
232 iid == vmIntrinsics::_linkToSpecial) { |
231 // could do this for all kinds, but would explode assembly code size |
233 // could do this for all kinds, but would explode assembly code size |
232 trace_method_handle(_masm, "bad Method*::intrinsic_id"); |
234 trace_method_handle(_masm, "bad Method*::intrinsic_id"); |