329 static Klass** doubleArrayKlassObj_addr() { return &_doubleArrayKlassObj; }
330 static Klass** objectArrayKlassObj_addr() { return &_objectArrayKlassObj; }
331
332 // The particular choice of collected heap.
333 static CollectedHeap* heap() { return _collectedHeap; }
334
335 // For UseCompressedOops
336 // Narrow Oop encoding mode:
337 // 0 - Use 32-bits oops without encoding when
338 // NarrowOopHeapBaseMin + heap_size < 4Gb
339 // 1 - Use zero based compressed oops with encoding when
340 // NarrowOopHeapBaseMin + heap_size < 32Gb
341 // 2 - Use compressed oops with heap base + encoding.
342 enum NARROW_OOP_MODE {
343 UnscaledNarrowOop = 0,
344 ZeroBasedNarrowOop = 1,
345 HeapBasedNarrowOop = 2
346 };
347 static NARROW_OOP_MODE narrow_oop_mode();
348 static const char* narrow_oop_mode_to_string(NARROW_OOP_MODE mode);
349 static char* preferred_heap_base(size_t heap_size, NARROW_OOP_MODE mode);
350 static char* preferred_metaspace_base(size_t heap_size, NARROW_OOP_MODE mode);
351 static address narrow_oop_base() { return _narrow_oop._base; }
352 static bool is_narrow_oop_base(void* addr) { return (narrow_oop_base() == (address)addr); }
353 static int narrow_oop_shift() { return _narrow_oop._shift; }
354 static bool narrow_oop_use_implicit_null_checks() { return _narrow_oop._use_implicit_null_checks; }
355
356 // For UseCompressedKlassPointers
357 static address narrow_klass_base() { return _narrow_klass._base; }
358 static bool is_narrow_klass_base(void* addr) { return (narrow_klass_base() == (address)addr); }
359 static int narrow_klass_shift() { return _narrow_klass._shift; }
360 static bool narrow_klass_use_implicit_null_checks() { return _narrow_klass._use_implicit_null_checks; }
361
362 static address* narrow_ptrs_base_addr() { return &_narrow_ptrs_base; }
363 static void set_narrow_ptrs_base(address a) { _narrow_ptrs_base = a; }
364 static address narrow_ptrs_base() { return _narrow_ptrs_base; }
365
366 // this is set in vm_version on sparc (and then reset in universe afaict)
367 static void set_narrow_oop_shift(int shift) {
368 _narrow_oop._shift = shift;
369 }
|
329 static Klass** doubleArrayKlassObj_addr() { return &_doubleArrayKlassObj; }
330 static Klass** objectArrayKlassObj_addr() { return &_objectArrayKlassObj; }
331
332 // The particular choice of collected heap.
333 static CollectedHeap* heap() { return _collectedHeap; }
334
335 // For UseCompressedOops
336 // Narrow Oop encoding mode:
337 // 0 - Use 32-bits oops without encoding when
338 // NarrowOopHeapBaseMin + heap_size < 4Gb
339 // 1 - Use zero based compressed oops with encoding when
340 // NarrowOopHeapBaseMin + heap_size < 32Gb
341 // 2 - Use compressed oops with heap base + encoding.
342 enum NARROW_OOP_MODE {
343 UnscaledNarrowOop = 0,
344 ZeroBasedNarrowOop = 1,
345 HeapBasedNarrowOop = 2
346 };
347 static NARROW_OOP_MODE narrow_oop_mode();
348 static const char* narrow_oop_mode_to_string(NARROW_OOP_MODE mode);
349 static char* preferred_heap_base(size_t heap_size, size_t alignment, NARROW_OOP_MODE mode);
350 static char* preferred_metaspace_base(size_t heap_size, NARROW_OOP_MODE mode);
351 static address narrow_oop_base() { return _narrow_oop._base; }
352 static bool is_narrow_oop_base(void* addr) { return (narrow_oop_base() == (address)addr); }
353 static int narrow_oop_shift() { return _narrow_oop._shift; }
354 static bool narrow_oop_use_implicit_null_checks() { return _narrow_oop._use_implicit_null_checks; }
355
356 // For UseCompressedKlassPointers
357 static address narrow_klass_base() { return _narrow_klass._base; }
358 static bool is_narrow_klass_base(void* addr) { return (narrow_klass_base() == (address)addr); }
359 static int narrow_klass_shift() { return _narrow_klass._shift; }
360 static bool narrow_klass_use_implicit_null_checks() { return _narrow_klass._use_implicit_null_checks; }
361
362 static address* narrow_ptrs_base_addr() { return &_narrow_ptrs_base; }
363 static void set_narrow_ptrs_base(address a) { _narrow_ptrs_base = a; }
364 static address narrow_ptrs_base() { return _narrow_ptrs_base; }
365
366 // this is set in vm_version on sparc (and then reset in universe afaict)
367 static void set_narrow_oop_shift(int shift) {
368 _narrow_oop._shift = shift;
369 }
|