< prev index next >
src/cpu/x86/vm/templateTable_x86.cpp
Print this page
@@ -3844,11 +3844,11 @@
const int tags_offset = Array<u1>::base_offset_in_bytes();
__ cmpb(Address(rax, rdx, Address::times_1, tags_offset), JVM_CONSTANT_Class);
__ jcc(Assembler::notEqual, slow_case_no_pop);
// get InstanceKlass
- __ movptr(rcx, Address(rcx, rdx, Address::times_ptr, sizeof(ConstantPool)));
+ __ load_resolved_klass_at_index(rcx, rdx, rcx);
__ push(rcx); // save the contexts of klass for initializing the header
// make sure klass is initialized & doesn't have finalizer
// make sure klass is fully initialized
__ cmpb(Address(rcx, InstanceKlass::init_state_offset()), InstanceKlass::fully_initialized);
@@ -4059,12 +4059,11 @@
__ jmpb(resolved);
// Get superklass in rax and subklass in rbx
__ bind(quicked);
__ mov(rdx, rax); // Save object in rdx; rax needed for subtype check
- __ movptr(rax, Address(rcx, rbx,
- Address::times_ptr, sizeof(ConstantPool)));
+ __ load_resolved_klass_at_index(rcx, rbx, rax);
__ bind(resolved);
__ load_klass(rbx, rdx);
// Generate subtype check. Blows rcx, rdi. Object in rdx.
@@ -4126,12 +4125,11 @@
__ jmpb(resolved);
// Get superklass in rax and subklass in rdx
__ bind(quicked);
__ load_klass(rdx, rax);
- __ movptr(rax, Address(rcx, rbx,
- Address::times_ptr, sizeof(ConstantPool)));
+ __ load_resolved_klass_at_index(rcx, rbx, rax);
__ bind(resolved);
// Generate subtype check. Blows rcx, rdi
// Superklass in rax. Subklass in rdx.
< prev index next >