8166748: Clean out Windows IA64 support

Reviewed-by: kbarrett, coleenp, bobv, mdoerr
This commit is contained in:
George Triantafillou 2017-06-08 13:17:51 -04:00
parent 4fd6f92702
commit 39a08d3fd9
3 changed files with 13 additions and 197 deletions

View file

@ -232,23 +232,8 @@ int oopDesc::size_given_klass(Klass* klass) {
// length of the array, shift (multiply) it appropriately,
// up to wordSize, add the header, and align to object size.
size_t size_in_bytes;
#ifdef _M_IA64
// The Windows Itanium Aug 2002 SDK hoists this load above
// the check for s < 0. An oop at the end of the heap will
// cause an access violation if this load is performed on a non
// array oop. Making the reference volatile prohibits this.
// (%%% please explain by what magic the length is actually fetched!)
volatile int *array_length;
array_length = (volatile int *)( (intptr_t)this +
arrayOopDesc::length_offset_in_bytes() );
assert(array_length > 0, "Integer arithmetic problem somewhere");
// Put into size_t to avoid overflow.
size_in_bytes = (size_t) array_length;
size_in_bytes = size_in_bytes << Klass::layout_helper_log2_element_size(lh);
#else
size_t array_length = (size_t) ((arrayOop)this)->length();
size_in_bytes = array_length << Klass::layout_helper_log2_element_size(lh);
#endif
size_in_bytes += Klass::layout_helper_header_size(lh);
// This code could be simplified, but by keeping array_header_in_bytes