Mercurial > hg > graal-jvmci-8
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() + |