--- old/src/cpu/x86/vm/assembler_x86_64.cpp	Tue May 27 22:58:47 2008
+++ new/src/cpu/x86/vm/assembler_x86_64.cpp	Tue May 27 22:58:46 2008
@@ -4928,14 +4928,14 @@
   // set up the mark word
   mov64(t3, (int64_t) markOopDesc::prototype()->copy_set_hash(0x2));
   movq(Address(top, oopDesc::mark_offset_in_bytes()), t3);
+  // set klass to intArrayKlass
+  movptr(t3, ExternalAddress((address) Universe::intArrayKlassObj_addr()));
+  store_klass(top, t3);
   // set the length to the remaining space
   subq(t1, typeArrayOopDesc::header_size(T_INT));
   addq(t1, (int)ThreadLocalAllocBuffer::alignment_reserve());
   shlq(t1, log2_intptr(HeapWordSize / sizeof(jint)));
   movq(Address(top, arrayOopDesc::length_offset_in_bytes()), t1);
-  // set klass to intArrayKlass
-  movptr(t1, ExternalAddress((address) Universe::intArrayKlassObj_addr()));
-  store_klass(top, t1);
 
   // refill the tlab with an eden allocation
   bind(do_refill);
