1 /* |
1 /* |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright (c) 2014, Red Hat Inc. All rights reserved. |
3 * Copyright (c) 2014, Red Hat Inc. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
186 // here's where control starts out: |
186 // here's where control starts out: |
187 __ align(CodeEntryAlignment); |
187 __ align(CodeEntryAlignment); |
188 address entry_point = __ pc(); |
188 address entry_point = __ pc(); |
189 |
189 |
190 if (VerifyMethodHandles) { |
190 if (VerifyMethodHandles) { |
|
191 assert(Method::intrinsic_id_size_in_bytes() == 2, "assuming Method::_intrinsic_id is u2"); |
|
192 |
191 Label L; |
193 Label L; |
192 BLOCK_COMMENT("verify_intrinsic_id {"); |
194 BLOCK_COMMENT("verify_intrinsic_id {"); |
193 __ ldrb(rscratch1, Address(rmethod, Method::intrinsic_id_offset_in_bytes())); |
195 __ ldrh(rscratch1, Address(rmethod, Method::intrinsic_id_offset_in_bytes())); |
194 __ cmp(rscratch1, (int) iid); |
196 __ cmp(rscratch1, (int) iid); |
195 __ br(Assembler::EQ, L); |
197 __ br(Assembler::EQ, L); |
196 if (iid == vmIntrinsics::_linkToVirtual || |
198 if (iid == vmIntrinsics::_linkToVirtual || |
197 iid == vmIntrinsics::_linkToSpecial) { |
199 iid == vmIntrinsics::_linkToSpecial) { |
198 // could do this for all kinds, but would explode assembly code size |
200 // could do this for all kinds, but would explode assembly code size |