comparison src/cpu/x86/vm/assembler_x86.cpp @ 1690:36519c19beeb

6975027: use of movptr to set length of array Reviewed-by: kvn, iveresov
author never
date Tue, 10 Aug 2010 12:15:10 -0700
parents 66c5dadb4d61
children d6f45b55c972
comparison
equal deleted inserted replaced
1689:f4f596978298 1690:36519c19beeb
7149 movptr(Address(top, oopDesc::mark_offset_in_bytes()), (intptr_t)markOopDesc::prototype()->copy_set_hash(0x2)); 7149 movptr(Address(top, oopDesc::mark_offset_in_bytes()), (intptr_t)markOopDesc::prototype()->copy_set_hash(0x2));
7150 // set the length to the remaining space 7150 // set the length to the remaining space
7151 subptr(t1, typeArrayOopDesc::header_size(T_INT)); 7151 subptr(t1, typeArrayOopDesc::header_size(T_INT));
7152 addptr(t1, (int32_t)ThreadLocalAllocBuffer::alignment_reserve()); 7152 addptr(t1, (int32_t)ThreadLocalAllocBuffer::alignment_reserve());
7153 shlptr(t1, log2_intptr(HeapWordSize/sizeof(jint))); 7153 shlptr(t1, log2_intptr(HeapWordSize/sizeof(jint)));
7154 movptr(Address(top, arrayOopDesc::length_offset_in_bytes()), t1); 7154 movl(Address(top, arrayOopDesc::length_offset_in_bytes()), t1);
7155 // set klass to intArrayKlass 7155 // set klass to intArrayKlass
7156 // dubious reloc why not an oop reloc? 7156 // dubious reloc why not an oop reloc?
7157 movptr(t1, ExternalAddress((address) Universe::intArrayKlassObj_addr())); 7157 movptr(t1, ExternalAddress((address) Universe::intArrayKlassObj_addr()));
7158 // store klass last. concurrent gcs assumes klass length is valid if 7158 // store klass last. concurrent gcs assumes klass length is valid if
7159 // klass field is not null. 7159 // klass field is not null.