< 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 >