590 public int g1SATBQueueIndexOffset() {
591 return javaThreadSatbMarkQueueOffset + (isJDK8 ? dirtyCardQueueIndexOffset : satbMarkQueueIndexOffset);
592 }
593
594 public int g1SATBQueueBufferOffset() {
595 return javaThreadSatbMarkQueueOffset + (isJDK8 ? dirtyCardQueueBufferOffset : satbMarkQueueBufferOffset);
596 }
597
598 public final int klassOffset = getFieldValue("java_lang_Class::_klass_offset", Integer.class, "int");
599 public final int arrayKlassOffset = getFieldValue("java_lang_Class::_array_klass_offset", Integer.class, "int");
600
601 public final int basicLockSize = getFieldValue("CompilerToVM::Data::sizeof_BasicLock", Integer.class, "int");
602 public final int basicLockDisplacedHeaderOffset = getFieldOffset("BasicLock::_displaced_header", Integer.class, "markOop");
603
604 public final int threadPollingPageOffset = getFieldOffset("Thread::_polling_page", Integer.class, "address", -1);
605 public final int threadAllocatedBytesOffset = getFieldOffset("Thread::_allocated_bytes", Integer.class, "jlong");
606
607 public final int tlabRefillWasteIncrement = getFlag("TLABWasteIncrement", Integer.class);
608
609 private final int threadLocalAllocBufferStartOffset = getFieldOffset("ThreadLocalAllocBuffer::_start", Integer.class, "HeapWord*");
610 private final int threadLocalAllocBufferEndOffset = getFieldOffset("ThreadLocalAllocBuffer::_end", Integer.class, "HeapWord*");
611 private final int threadLocalAllocBufferTopOffset = getFieldOffset("ThreadLocalAllocBuffer::_top", Integer.class, "HeapWord*");
612 private final int threadLocalAllocBufferPfTopOffset = getFieldOffset("ThreadLocalAllocBuffer::_pf_top", Integer.class, "HeapWord*");
613 private final int threadLocalAllocBufferSlowAllocationsOffset = getFieldOffset("ThreadLocalAllocBuffer::_slow_allocations", Integer.class, "unsigned");
614 private final int threadLocalAllocBufferFastRefillWasteOffset = getFieldOffset("ThreadLocalAllocBuffer::_fast_refill_waste", Integer.class, "unsigned");
615 private final int threadLocalAllocBufferNumberOfRefillsOffset = getFieldOffset("ThreadLocalAllocBuffer::_number_of_refills", Integer.class, "unsigned");
616 private final int threadLocalAllocBufferRefillWasteLimitOffset = getFieldOffset("ThreadLocalAllocBuffer::_refill_waste_limit", Integer.class, "size_t");
617 private final int threadLocalAllocBufferDesiredSizeOffset = getFieldOffset("ThreadLocalAllocBuffer::_desired_size", Integer.class, "size_t");
618
619 public int tlabSlowAllocationsOffset() {
620 return threadTlabOffset + threadLocalAllocBufferSlowAllocationsOffset;
621 }
622
623 public int tlabFastRefillWasteOffset() {
624 return threadTlabOffset + threadLocalAllocBufferFastRefillWasteOffset;
625 }
626
627 public int tlabNumberOfRefillsOffset() {
628 return threadTlabOffset + threadLocalAllocBufferNumberOfRefillsOffset;
629 }
630
631 public int tlabRefillWasteLimitOffset() {
632 return threadTlabOffset + threadLocalAllocBufferRefillWasteLimitOffset;
633 }
634
635 public int threadTlabSizeOffset() {
636 return threadTlabOffset + threadLocalAllocBufferDesiredSizeOffset;
637 }
638
639 public int threadTlabStartOffset() {
640 return threadTlabOffset + threadLocalAllocBufferStartOffset;
641 }
642
643 public int threadTlabEndOffset() {
644 return threadTlabOffset + threadLocalAllocBufferEndOffset;
645 }
646
647 public int threadTlabTopOffset() {
648 return threadTlabOffset + threadLocalAllocBufferTopOffset;
649 }
650
651 public int threadTlabPfTopOffset() {
652 return threadTlabOffset + threadLocalAllocBufferPfTopOffset;
653 }
654
655 public final int tlabAlignmentReserve = getFieldValue("CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve", Integer.class, "size_t");
656
657 public final boolean tlabStats = getFlag("TLABStats", Boolean.class);
658
659 // FIXME This is only temporary until the GC code is changed.
660 public final boolean inlineContiguousAllocationSupported = getFieldValue("CompilerToVM::Data::_supports_inline_contig_alloc", Boolean.class);
661 public final long heapEndAddress = getFieldValue("CompilerToVM::Data::_heap_end_addr", Long.class, "HeapWord**");
662 public final long heapTopAddress = getFieldValue("CompilerToVM::Data::_heap_top_addr", Long.class, isJDK8 ? "HeapWord**" : "HeapWord* volatile*");
663
664 public final boolean cmsIncrementalMode = getFlag("CMSIncrementalMode", Boolean.class, false);
|
590 public int g1SATBQueueIndexOffset() {
591 return javaThreadSatbMarkQueueOffset + (isJDK8 ? dirtyCardQueueIndexOffset : satbMarkQueueIndexOffset);
592 }
593
594 public int g1SATBQueueBufferOffset() {
595 return javaThreadSatbMarkQueueOffset + (isJDK8 ? dirtyCardQueueBufferOffset : satbMarkQueueBufferOffset);
596 }
597
598 public final int klassOffset = getFieldValue("java_lang_Class::_klass_offset", Integer.class, "int");
599 public final int arrayKlassOffset = getFieldValue("java_lang_Class::_array_klass_offset", Integer.class, "int");
600
601 public final int basicLockSize = getFieldValue("CompilerToVM::Data::sizeof_BasicLock", Integer.class, "int");
602 public final int basicLockDisplacedHeaderOffset = getFieldOffset("BasicLock::_displaced_header", Integer.class, "markOop");
603
604 public final int threadPollingPageOffset = getFieldOffset("Thread::_polling_page", Integer.class, "address", -1);
605 public final int threadAllocatedBytesOffset = getFieldOffset("Thread::_allocated_bytes", Integer.class, "jlong");
606
607 public final int tlabRefillWasteIncrement = getFlag("TLABWasteIncrement", Integer.class);
608
609 private final int threadLocalAllocBufferStartOffset = getFieldOffset("ThreadLocalAllocBuffer::_start", Integer.class, "HeapWord*");
610 private final int threadLocalAllocBufferFastPathEndOffset = getFieldOffset("ThreadLocalAllocBuffer::_fast_path_end", Integer.class, "HeapWord*");
611 private final int threadLocalAllocBufferTopOffset = getFieldOffset("ThreadLocalAllocBuffer::_top", Integer.class, "HeapWord*");
612 private final int threadLocalAllocBufferPfTopOffset = getFieldOffset("ThreadLocalAllocBuffer::_pf_top", Integer.class, "HeapWord*");
613 private final int threadLocalAllocBufferSlowAllocationsOffset = getFieldOffset("ThreadLocalAllocBuffer::_slow_allocations", Integer.class, "unsigned");
614 private final int threadLocalAllocBufferFastRefillWasteOffset = getFieldOffset("ThreadLocalAllocBuffer::_fast_refill_waste", Integer.class, "unsigned");
615 private final int threadLocalAllocBufferNumberOfRefillsOffset = getFieldOffset("ThreadLocalAllocBuffer::_number_of_refills", Integer.class, "unsigned");
616 private final int threadLocalAllocBufferRefillWasteLimitOffset = getFieldOffset("ThreadLocalAllocBuffer::_refill_waste_limit", Integer.class, "size_t");
617 private final int threadLocalAllocBufferDesiredSizeOffset = getFieldOffset("ThreadLocalAllocBuffer::_desired_size", Integer.class, "size_t");
618
619 public int tlabSlowAllocationsOffset() {
620 return threadTlabOffset + threadLocalAllocBufferSlowAllocationsOffset;
621 }
622
623 public int tlabFastRefillWasteOffset() {
624 return threadTlabOffset + threadLocalAllocBufferFastRefillWasteOffset;
625 }
626
627 public int tlabNumberOfRefillsOffset() {
628 return threadTlabOffset + threadLocalAllocBufferNumberOfRefillsOffset;
629 }
630
631 public int tlabRefillWasteLimitOffset() {
632 return threadTlabOffset + threadLocalAllocBufferRefillWasteLimitOffset;
633 }
634
635 public int threadTlabSizeOffset() {
636 return threadTlabOffset + threadLocalAllocBufferDesiredSizeOffset;
637 }
638
639 public int threadTlabStartOffset() {
640 return threadTlabOffset + threadLocalAllocBufferStartOffset;
641 }
642
643 public int threadTlabFastPathEndOffset() {
644 return threadTlabOffset + threadLocalAllocBufferFastPathEndOffset;
645 }
646
647 public int threadTlabTopOffset() {
648 return threadTlabOffset + threadLocalAllocBufferTopOffset;
649 }
650
651 public int threadTlabPfTopOffset() {
652 return threadTlabOffset + threadLocalAllocBufferPfTopOffset;
653 }
654
655 public final int tlabAlignmentReserve = getFieldValue("CompilerToVM::Data::ThreadLocalAllocBuffer_alignment_reserve", Integer.class, "size_t");
656
657 public final boolean tlabStats = getFlag("TLABStats", Boolean.class);
658
659 // FIXME This is only temporary until the GC code is changed.
660 public final boolean inlineContiguousAllocationSupported = getFieldValue("CompilerToVM::Data::_supports_inline_contig_alloc", Boolean.class);
661 public final long heapEndAddress = getFieldValue("CompilerToVM::Data::_heap_end_addr", Long.class, "HeapWord**");
662 public final long heapTopAddress = getFieldValue("CompilerToVM::Data::_heap_top_addr", Long.class, isJDK8 ? "HeapWord**" : "HeapWord* volatile*");
663
664 public final boolean cmsIncrementalMode = getFlag("CMSIncrementalMode", Boolean.class, false);
|