--- old/src/cpu/aarch64/vm/templateTable_aarch64.cpp 2017-04-16 02:30:19.560613264 -0700 +++ new/src/cpu/aarch64/vm/templateTable_aarch64.cpp 2017-04-16 02:30:19.380606514 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Red Hat Inc. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -3583,8 +3583,16 @@ // Get superklass in r0 and subklass in r3 __ bind(quicked); __ load_klass(r3, r0); - __ lea(r0, Address(r2, r19, Address::lsl(3))); - __ ldr(r0, Address(r0, sizeof(ConstantPool))); + //__ load_resolved_klass_at_offset(r2, r19, r0); + Register cpool = r2; + Register index = r19; + Register klass = r0; + Register tmp = klass; + __ lea(tmp, Address(cpool, index, Address::lsl(3))); + __ ldrh(index, Address(tmp, sizeof(ConstantPool))); // index = resolved_klass_index + __ ldr(tmp, Address(cpool, ConstantPool::resolved_klasses_offset_in_bytes())); // tmp = cpool->_resolved_klasses + __ lea(tmp, Address(tmp, index, Address::lsl(3))); + __ ldr(klass, Address(tmp, Array::base_offset_in_bytes())); __ bind(resolved);