Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/parse3.cpp @ 827:bf3489cc0aa0
6856025: assert(_base >= OopPtr && _base <= KlassPtr,"Not a Java pointer")
Reviewed-by: kvn
author | never |
---|---|
date | Wed, 01 Jul 2009 12:22:23 -0700 |
parents | 8f5825e0aeaa |
children | bd02caa94611 |
comparison
equal
deleted
inserted
replaced
826:3f06f139ef53 | 827:bf3489cc0aa0 |
---|---|
359 if (ndimensions > 1) { | 359 if (ndimensions > 1) { |
360 jint length_con = find_int_con(length, -1); | 360 jint length_con = find_int_con(length, -1); |
361 guarantee(length_con >= 0, "non-constant multianewarray"); | 361 guarantee(length_con >= 0, "non-constant multianewarray"); |
362 ciArrayKlass* array_klass_1 = array_klass->as_obj_array_klass()->element_klass()->as_array_klass(); | 362 ciArrayKlass* array_klass_1 = array_klass->as_obj_array_klass()->element_klass()->as_array_klass(); |
363 const TypePtr* adr_type = TypeAryPtr::OOPS; | 363 const TypePtr* adr_type = TypeAryPtr::OOPS; |
364 const TypeOopPtr* elemtype = _gvn.type(array)->is_aryptr()->elem()->is_oopptr(); | 364 const TypeOopPtr* elemtype = _gvn.type(array)->is_aryptr()->elem()->make_oopptr(); |
365 const intptr_t header = arrayOopDesc::base_offset_in_bytes(T_OBJECT); | 365 const intptr_t header = arrayOopDesc::base_offset_in_bytes(T_OBJECT); |
366 for (jint i = 0; i < length_con; i++) { | 366 for (jint i = 0; i < length_con; i++) { |
367 Node* elem = expand_multianewarray(array_klass_1, &lengths[1], ndimensions-1, nargs); | 367 Node* elem = expand_multianewarray(array_klass_1, &lengths[1], ndimensions-1, nargs); |
368 intptr_t offset = header + ((intptr_t)i << LogBytesPerHeapOop); | 368 intptr_t offset = header + ((intptr_t)i << LogBytesPerHeapOop); |
369 Node* eaddr = basic_plus_adr(array, offset); | 369 Node* eaddr = basic_plus_adr(array, offset); |