comparison src/cpu/x86/vm/templateTable_x86_64.cpp @ 1681:126ea7725993

6953477: Increase portability and flexibility of building Hotspot Summary: A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail. Reviewed-by: phh, never, coleenp, dholmes
author bobv
date Tue, 03 Aug 2010 08:13:38 -0400
parents 136b78722a08
children d5d065957597
comparison
equal deleted inserted replaced
1680:a64438a2b7e8 1681:126ea7725993
3124 Label initialize_header; 3124 Label initialize_header;
3125 Label initialize_object; // including clearing the fields 3125 Label initialize_object; // including clearing the fields
3126 Label allocate_shared; 3126 Label allocate_shared;
3127 3127
3128 __ get_cpool_and_tags(rsi, rax); 3128 __ get_cpool_and_tags(rsi, rax);
3129 // get instanceKlass 3129 // Make sure the class we're about to instantiate has been resolved.
3130 __ movptr(rsi, Address(rsi, rdx, 3130 // This is done before loading instanceKlass to be consistent with the order
3131 Address::times_8, sizeof(constantPoolOopDesc))); 3131 // how Constant Pool is updated (see constantPoolOopDesc::klass_at_put)
3132
3133 // make sure the class we're about to instantiate has been
3134 // resolved. Note: slow_case does a pop of stack, which is why we
3135 // loaded class/pushed above
3136 const int tags_offset = typeArrayOopDesc::header_size(T_BYTE) * wordSize; 3132 const int tags_offset = typeArrayOopDesc::header_size(T_BYTE) * wordSize;
3137 __ cmpb(Address(rax, rdx, Address::times_1, tags_offset), 3133 __ cmpb(Address(rax, rdx, Address::times_1, tags_offset),
3138 JVM_CONSTANT_Class); 3134 JVM_CONSTANT_Class);
3139 __ jcc(Assembler::notEqual, slow_case); 3135 __ jcc(Assembler::notEqual, slow_case);
3136
3137 // get instanceKlass
3138 __ movptr(rsi, Address(rsi, rdx,
3139 Address::times_8, sizeof(constantPoolOopDesc)));
3140 3140
3141 // make sure klass is initialized & doesn't have finalizer 3141 // make sure klass is initialized & doesn't have finalizer
3142 // make sure klass is fully initialized 3142 // make sure klass is fully initialized
3143 __ cmpl(Address(rsi, 3143 __ cmpl(Address(rsi,
3144 instanceKlass::init_state_offset_in_bytes() + 3144 instanceKlass::init_state_offset_in_bytes() +