< prev index next >
src/hotspot/cpu/x86/templateTable_x86.cpp
Print this page
*** 368,378 ****
const int base_offset = ConstantPool::header_size() * wordSize;
const int tags_offset = Array<u1>::base_offset_in_bytes();
// get type
__ movzbl(rdx, Address(rax, rbx, Address::times_1, tags_offset));
! __ andl(rdx, ~JVM_CONSTANT_QDESC_BIT);
// unresolved class - get the resolved class
__ cmpl(rdx, JVM_CONSTANT_UnresolvedClass);
__ jccb(Assembler::equal, call_ldc);
--- 368,378 ----
const int base_offset = ConstantPool::header_size() * wordSize;
const int tags_offset = Array<u1>::base_offset_in_bytes();
// get type
__ movzbl(rdx, Address(rax, rbx, Address::times_1, tags_offset));
! __ andl(rdx, ~JVM_CONSTANT_QDescBit);
// unresolved class - get the resolved class
__ cmpl(rdx, JVM_CONSTANT_UnresolvedClass);
__ jccb(Assembler::equal, call_ldc);
*** 4467,4477 ****
__ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
// See if bytecode has already been quicked
__ movzbl(rdx, Address(rdx, rbx,
Address::times_1,
Array<u1>::base_offset_in_bytes()));
! __ andl (rdx, ~JVM_CONSTANT_QDESC_BIT);
__ cmpl(rdx, JVM_CONSTANT_Class);
__ jcc(Assembler::equal, quicked);
__ push(atos); // save receiver for result, and for GC
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
--- 4467,4477 ----
__ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
// See if bytecode has already been quicked
__ movzbl(rdx, Address(rdx, rbx,
Address::times_1,
Array<u1>::base_offset_in_bytes()));
! __ andl (rdx, ~JVM_CONSTANT_QDescBit);
__ cmpl(rdx, JVM_CONSTANT_Class);
__ jcc(Assembler::equal, quicked);
__ push(atos); // save receiver for result, and for GC
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
*** 4523,4534 ****
__ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
// See if CP entry is a Q-descriptor
__ movzbl(rcx, Address(rdx, rbx,
Address::times_1,
Array<u1>::base_offset_in_bytes()));
! __ andl (rcx, JVM_CONSTANT_QDESC_BIT);
! __ cmpl(rcx, JVM_CONSTANT_QDESC_BIT);
__ jcc(Assembler::notEqual, done);
__ jump(ExternalAddress(Interpreter::_throw_NullPointerException_entry));
}
__ bind(done);
--- 4523,4534 ----
__ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
// See if CP entry is a Q-descriptor
__ movzbl(rcx, Address(rdx, rbx,
Address::times_1,
Array<u1>::base_offset_in_bytes()));
! __ andl (rcx, JVM_CONSTANT_QDescBit);
! __ cmpl(rcx, JVM_CONSTANT_QDescBit);
__ jcc(Assembler::notEqual, done);
__ jump(ExternalAddress(Interpreter::_throw_NullPointerException_entry));
}
__ bind(done);
*** 4545,4555 ****
__ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
// See if bytecode has already been quicked
__ movzbl(rdx, Address(rdx, rbx,
Address::times_1,
Array<u1>::base_offset_in_bytes()));
! __ andl (rdx, ~JVM_CONSTANT_QDESC_BIT);
__ cmpl(rdx, JVM_CONSTANT_Class);
__ jcc(Assembler::equal, quicked);
__ push(atos); // save receiver for result, and for GC
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
--- 4545,4555 ----
__ get_unsigned_2_byte_index_at_bcp(rbx, 1); // rbx=index
// See if bytecode has already been quicked
__ movzbl(rdx, Address(rdx, rbx,
Address::times_1,
Array<u1>::base_offset_in_bytes()));
! __ andl (rdx, ~JVM_CONSTANT_QDescBit);
__ cmpl(rdx, JVM_CONSTANT_Class);
__ jcc(Assembler::equal, quicked);
__ push(atos); // save receiver for result, and for GC
call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::quicken_io_cc));
< prev index next >