< prev index next >

src/cpu/x86/vm/templateTable_x86.cpp

Print this page

*** 3844,3854 **** 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))); __ 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); --- 3844,3854 ---- 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 ! __ 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,4070 **** __ 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))); __ bind(resolved); __ load_klass(rbx, rdx); // Generate subtype check. Blows rcx, rdi. Object in rdx. --- 4059,4069 ---- __ jmpb(resolved); // Get superklass in rax and subklass in rbx __ bind(quicked); __ mov(rdx, rax); // Save object in rdx; rax needed for subtype check ! __ load_resolved_klass_at_index(rcx, rbx, rax); __ bind(resolved); __ load_klass(rbx, rdx); // Generate subtype check. Blows rcx, rdi. Object in rdx.
*** 4126,4137 **** __ 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))); __ bind(resolved); // Generate subtype check. Blows rcx, rdi // Superklass in rax. Subklass in rdx. --- 4125,4135 ---- __ jmpb(resolved); // Get superklass in rax and subklass in rdx __ bind(quicked); __ load_klass(rdx, rax); ! __ 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 >