equal
deleted
inserted
replaced
600 java_lang_Throwable::fill_in_stack_trace_of_preallocated_backtrace(exc); |
600 java_lang_Throwable::fill_in_stack_trace_of_preallocated_backtrace(exc); |
601 return exc; |
601 return exc; |
602 } |
602 } |
603 } |
603 } |
604 |
604 |
605 static intptr_t non_oop_bits = 0; |
605 intptr_t Universe::_non_oop_bits = 0; |
606 |
606 |
607 void* Universe::non_oop_word() { |
607 void* Universe::non_oop_word() { |
608 // Neither the high bits nor the low bits of this value is allowed |
608 // Neither the high bits nor the low bits of this value is allowed |
609 // to look like (respectively) the high or low bits of a real oop. |
609 // to look like (respectively) the high or low bits of a real oop. |
610 // |
610 // |
614 // word will never look like that of a real oop. |
614 // word will never look like that of a real oop. |
615 // |
615 // |
616 // Using the OS-supplied non-memory-address word (usually 0 or -1) |
616 // Using the OS-supplied non-memory-address word (usually 0 or -1) |
617 // will take care of the high bits, however many there are. |
617 // will take care of the high bits, however many there are. |
618 |
618 |
619 if (non_oop_bits == 0) { |
619 if (_non_oop_bits == 0) { |
620 non_oop_bits = (intptr_t)os::non_memory_address_word() | 1; |
620 _non_oop_bits = (intptr_t)os::non_memory_address_word() | 1; |
621 } |
621 } |
622 |
622 |
623 return (void*)non_oop_bits; |
623 return (void*)_non_oop_bits; |
624 } |
624 } |
625 |
625 |
626 jint universe_init() { |
626 jint universe_init() { |
627 assert(!Universe::_fully_initialized, "called after initialize_vtables"); |
627 assert(!Universe::_fully_initialized, "called after initialize_vtables"); |
628 guarantee(1 << LogHeapWordSize == sizeof(HeapWord), |
628 guarantee(1 << LogHeapWordSize == sizeof(HeapWord), |