src/cpu/x86/vm/templateTable_x86_64.cpp

Print this page
rev 146 : [mq]: mixa.layout.patch

*** 3069,3080 **** // get instance_size in instanceKlass (scaled to a count of bytes) __ movl(rdx, Address(rsi, Klass::layout_helper_offset_in_bytes() + sizeof(oopDesc))); // test to see if it has a finalizer or is malformed in some way ! __ testl(rdx, Klass::_lh_instance_slow_path_bit); __ jcc(Assembler::notZero, slow_case); // Allocate the instance // 1) Try to allocate in the TLAB // 2) if fail and the object is large allocate in the shared Eden // 3) if the above fails (or is not applicable), go to a slow case --- 3069,3081 ---- // get instance_size in instanceKlass (scaled to a count of bytes) __ movl(rdx, Address(rsi, Klass::layout_helper_offset_in_bytes() + sizeof(oopDesc))); // test to see if it has a finalizer or is malformed in some way ! __ testl(rdx, LayoutHelper::_slow_path_low_bit); __ jcc(Assembler::notZero, slow_case); + __ andl(rdx, ~LayoutHelper::_size_low_mask); // Allocate the instance // 1) Try to allocate in the TLAB // 2) if fail and the object is large allocate in the shared Eden // 3) if the above fails (or is not applicable), go to a slow case