--- old/src/cpu/x86/vm/c1_Runtime1_x86.cpp 2016-01-11 14:04:05.614066563 +0100 +++ new/src/cpu/x86/vm/c1_Runtime1_x86.cpp 2016-01-11 14:04:05.238066581 +0100 @@ -1040,7 +1040,7 @@ __ tlab_allocate(obj, obj_size, 0, t1, t2, slow_path); - __ initialize_object(obj, klass, obj_size, 0, t1, t2); + __ initialize_object(obj, klass, obj_size, 0, t1, t2, /* is_tlab_allocated */ true); __ verify_oop(obj); __ pop(rbx); __ pop(rdi); @@ -1053,7 +1053,7 @@ __ eden_allocate(obj, obj_size, 0, t1, slow_path); __ incr_allocated_bytes(thread, obj_size, 0); - __ initialize_object(obj, klass, obj_size, 0, t1, t2); + __ initialize_object(obj, klass, obj_size, 0, t1, t2, /* is_tlab_allocated */ false); __ verify_oop(obj); __ pop(rbx); __ pop(rdi); @@ -1169,7 +1169,9 @@ __ andptr(t1, Klass::_lh_header_size_mask); __ subptr(arr_size, t1); // body length __ addptr(t1, obj); // body start - __ initialize_body(t1, arr_size, 0, t2); + if (!ZeroTLAB) { + __ initialize_body(t1, arr_size, 0, t2); + } __ verify_oop(obj); __ ret(0);