From bb23e30511113b30d942e3a306085fabf761be2c Mon Sep 17 00:00:00 2001 From: Antonios Printezis Date: Tue, 24 Aug 2010 17:24:33 -0400 Subject: [PATCH 001/158] 6974966: G1: unnecessary direct-to-old allocations This change revamps the slow allocation path of G1. Improvements include the following: a) Allocations directly to old regions are now totally banned. G1 now only allows allocations out of young regions (with the only exception being humongous regions). b) The thread that allocates a new region (which is now guaranteed to be young) does not dirty all its cards. Each thread that successfully allocates out of a young region is now responsible for dirtying the cards that corresponding to the "block" that just got allocated. c) allocate_new_tlab() and mem_allocate() are now implemented differently and TLAB allocations are only done by allocate_new_tlab(). d) If a thread schedules an evacuation pause in order to satisfy an allocation request, it will perform the allocation at the end of the safepoint so that the thread that initiated the GC also gets "first pick" of any space made available by the GC. e) If a thread is unable to allocate a humongous object it will schedule an evacuation pause in case it reclaims enough regions so that the humongous allocation can be satisfied aftewards. f) The G1 policy is more careful to set the young list target length to be the survivor number +1. g) Lots of code tidy up, removal, refactoring to make future changes easier. Reviewed-by: johnc, ysr --- .../gc_implementation/g1/g1CollectedHeap.cpp | 729 +++++++++++++----- .../gc_implementation/g1/g1CollectedHeap.hpp | 281 +++++-- .../g1/g1CollectedHeap.inline.hpp | 134 +++- .../g1/g1CollectorPolicy.cpp | 67 +- .../g1/g1CollectorPolicy.hpp | 17 +- .../gc_implementation/g1/vm_operations_g1.cpp | 55 +- .../gc_implementation/g1/vm_operations_g1.hpp | 70 +- 7 files changed, 982 insertions(+), 371 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index dae8c98b180..bdd886d50c3 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -58,10 +58,11 @@ size_t G1CollectedHeap::_humongous_object_threshold_in_words = 0; // INVARIANTS/NOTES // // All allocation activity covered by the G1CollectedHeap interface is -// serialized by acquiring the HeapLock. This happens in -// mem_allocate_work, which all such allocation functions call. -// (Note that this does not apply to TLAB allocation, which is not part -// of this interface: it is done by clients of this interface.) +// serialized by acquiring the HeapLock. This happens in mem_allocate +// and allocate_new_tlab, which are the "entry" points to the +// allocation code from the rest of the JVM. (Note that this does not +// apply to TLAB allocation, which is not part of this interface: it +// is done by clients of this interface.) // Local to this file. @@ -536,18 +537,20 @@ HeapRegion* G1CollectedHeap::newAllocRegionWithExpansion(int purpose, // If could fit into free regions w/o expansion, try. // Otherwise, if can expand, do so. // Otherwise, if using ex regions might help, try with ex given back. -HeapWord* G1CollectedHeap::humongousObjAllocate(size_t word_size) { +HeapWord* G1CollectedHeap::humongous_obj_allocate(size_t word_size) { + assert_heap_locked_or_at_safepoint(); assert(regions_accounted_for(), "Region leakage!"); - // We can't allocate H regions while cleanupComplete is running, since - // some of the regions we find to be empty might not yet be added to the - // unclean list. (If we're already at a safepoint, this call is - // unnecessary, not to mention wrong.) - if (!SafepointSynchronize::is_at_safepoint()) + // We can't allocate humongous regions while cleanupComplete is + // running, since some of the regions we find to be empty might not + // yet be added to the unclean list. If we're already at a + // safepoint, this call is unnecessary, not to mention wrong. + if (!SafepointSynchronize::is_at_safepoint()) { wait_for_cleanup_complete(); + } size_t num_regions = - round_to(word_size, HeapRegion::GrainWords) / HeapRegion::GrainWords; + round_to(word_size, HeapRegion::GrainWords) / HeapRegion::GrainWords; // Special case if < one region??? @@ -598,153 +601,472 @@ HeapWord* G1CollectedHeap::humongousObjAllocate(size_t word_size) { return res; } +void +G1CollectedHeap::retire_cur_alloc_region(HeapRegion* cur_alloc_region) { + // The cleanup operation might update _summary_bytes_used + // concurrently with this method. So, right now, if we don't wait + // for it to complete, updates to _summary_bytes_used might get + // lost. This will be resolved in the near future when the operation + // of the free region list is revamped as part of CR 6977804. + wait_for_cleanup_complete(); + + retire_cur_alloc_region_common(cur_alloc_region); + assert(_cur_alloc_region == NULL, "post-condition"); +} + +// See the comment in the .hpp file about the locking protocol and +// assumptions of this method (and other related ones). HeapWord* -G1CollectedHeap::attempt_allocation_slow(size_t word_size, - bool permit_collection_pause) { - HeapWord* res = NULL; - HeapRegion* allocated_young_region = NULL; - - assert( SafepointSynchronize::is_at_safepoint() || - Heap_lock->owned_by_self(), "pre condition of the call" ); - - if (isHumongous(word_size)) { - // Allocation of a humongous object can, in a sense, complete a - // partial region, if the previous alloc was also humongous, and - // caused the test below to succeed. - if (permit_collection_pause) - do_collection_pause_if_appropriate(word_size); - res = humongousObjAllocate(word_size); - assert(_cur_alloc_region == NULL - || !_cur_alloc_region->isHumongous(), - "Prevent a regression of this bug."); +G1CollectedHeap::replace_cur_alloc_region_and_allocate(size_t word_size, + bool at_safepoint, + bool do_dirtying) { + assert_heap_locked_or_at_safepoint(); + assert(_cur_alloc_region == NULL, + "replace_cur_alloc_region_and_allocate() should only be called " + "after retiring the previous current alloc region"); + assert(SafepointSynchronize::is_at_safepoint() == at_safepoint, + "at_safepoint and is_at_safepoint() should be a tautology"); + + if (!g1_policy()->is_young_list_full()) { + if (!at_safepoint) { + // The cleanup operation might update _summary_bytes_used + // concurrently with this method. So, right now, if we don't + // wait for it to complete, updates to _summary_bytes_used might + // get lost. This will be resolved in the near future when the + // operation of the free region list is revamped as part of + // CR 6977804. If we're already at a safepoint, this call is + // unnecessary, not to mention wrong. + wait_for_cleanup_complete(); + } - } else { - // We may have concurrent cleanup working at the time. Wait for it - // to complete. In the future we would probably want to make the - // concurrent cleanup truly concurrent by decoupling it from the - // allocation. - if (!SafepointSynchronize::is_at_safepoint()) + HeapRegion* new_cur_alloc_region = newAllocRegion(word_size, + false /* zero_filled */); + if (new_cur_alloc_region != NULL) { + assert(new_cur_alloc_region->is_empty(), + "the newly-allocated region should be empty, " + "as right now we only allocate new regions out of the free list"); + g1_policy()->update_region_num(true /* next_is_young */); + _summary_bytes_used -= new_cur_alloc_region->used(); + set_region_short_lived_locked(new_cur_alloc_region); + + assert(!new_cur_alloc_region->isHumongous(), + "Catch a regression of this bug."); + + // We need to ensure that the stores to _cur_alloc_region and, + // subsequently, to top do not float above the setting of the + // young type. + OrderAccess::storestore(); + + // Now allocate out of the new current alloc region. We could + // have re-used allocate_from_cur_alloc_region() but its + // operation is slightly different to what we need here. First, + // allocate_from_cur_alloc_region() is only called outside a + // safepoint and will always unlock the Heap_lock if it returns + // a non-NULL result. Second, it assumes that the current alloc + // region is what's already assigned in _cur_alloc_region. What + // we want here is to actually do the allocation first before we + // assign the new region to _cur_alloc_region. This ordering is + // not currently important, but it will be essential when we + // change the code to support CAS allocation in the future (see + // CR 6994297). + // + // This allocate method does BOT updates and we don't need them in + // the young generation. This will be fixed in the near future by + // CR 6994297. + HeapWord* result = new_cur_alloc_region->allocate(word_size); + assert(result != NULL, "we just allocate out of an empty region " + "so allocation should have been successful"); + assert(is_in(result), "result should be in the heap"); + + _cur_alloc_region = new_cur_alloc_region; + + if (!at_safepoint) { + Heap_lock->unlock(); + } + + // do the dirtying, if necessary, after we release the Heap_lock + if (do_dirtying) { + dirty_young_block(result, word_size); + } + return result; + } + } + + assert(_cur_alloc_region == NULL, "we failed to allocate a new current " + "alloc region, it should still be NULL"); + assert_heap_locked_or_at_safepoint(); + return NULL; +} + +// See the comment in the .hpp file about the locking protocol and +// assumptions of this method (and other related ones). +HeapWord* +G1CollectedHeap::attempt_allocation_slow(size_t word_size) { + assert_heap_locked_and_not_at_safepoint(); + assert(!isHumongous(word_size), "attempt_allocation_slow() should not be " + "used for humongous allocations"); + + // We will loop while succeeded is false, which means that we tried + // to do a collection, but the VM op did not succeed. So, when we + // exit the loop, either one of the allocation attempts was + // successful, or we succeeded in doing the VM op but which was + // unable to allocate after the collection. + for (int try_count = 1; /* we'll return or break */; try_count += 1) { + bool succeeded = true; + + { + // We may have concurrent cleanup working at the time. Wait for + // it to complete. In the future we would probably want to make + // the concurrent cleanup truly concurrent by decoupling it from + // the allocation. This will happen in the near future as part + // of CR 6977804 which will revamp the operation of the free + // region list. The fact that wait_for_cleanup_complete() will + // do a wait() means that we'll give up the Heap_lock. So, it's + // possible that when we exit wait_for_cleanup_complete() we + // might be able to allocate successfully (since somebody else + // might have done a collection meanwhile). So, we'll attempt to + // allocate again, just in case. When we make cleanup truly + // concurrent with allocation, we should remove this allocation + // attempt as it's redundant (we only reach here after an + // allocation attempt has been unsuccessful). wait_for_cleanup_complete(); - // If we do a collection pause, this will be reset to a non-NULL - // value. If we don't, nulling here ensures that we allocate a new - // region below. - if (_cur_alloc_region != NULL) { - // We're finished with the _cur_alloc_region. - // As we're builing (at least the young portion) of the collection - // set incrementally we'll add the current allocation region to - // the collection set here. - if (_cur_alloc_region->is_young()) { - g1_policy()->add_region_to_incremental_cset_lhs(_cur_alloc_region); + HeapWord* result = attempt_allocation(word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; } - _summary_bytes_used += _cur_alloc_region->used(); - _cur_alloc_region = NULL; } - assert(_cur_alloc_region == NULL, "Invariant."); - // Completion of a heap region is perhaps a good point at which to do - // a collection pause. - if (permit_collection_pause) - do_collection_pause_if_appropriate(word_size); - // Make sure we have an allocation region available. - if (_cur_alloc_region == NULL) { - if (!SafepointSynchronize::is_at_safepoint()) - wait_for_cleanup_complete(); - bool next_is_young = should_set_young_locked(); - // If the next region is not young, make sure it's zero-filled. - _cur_alloc_region = newAllocRegion(word_size, !next_is_young); - if (_cur_alloc_region != NULL) { - _summary_bytes_used -= _cur_alloc_region->used(); - if (next_is_young) { - set_region_short_lived_locked(_cur_alloc_region); - allocated_young_region = _cur_alloc_region; + + if (GC_locker::is_active_and_needs_gc()) { + // We are locked out of GC because of the GC locker. Right now, + // we'll just stall until the GC locker-induced GC + // completes. This will be fixed in the near future by extending + // the eden while waiting for the GC locker to schedule the GC + // (see CR 6994056). + + // If this thread is not in a jni critical section, we stall + // the requestor until the critical section has cleared and + // GC allowed. When the critical section clears, a GC is + // initiated by the last thread exiting the critical section; so + // we retry the allocation sequence from the beginning of the loop, + // rather than causing more, now probably unnecessary, GC attempts. + JavaThread* jthr = JavaThread::current(); + assert(jthr != NULL, "sanity"); + if (!jthr->in_critical()) { + MutexUnlocker mul(Heap_lock); + GC_locker::stall_until_clear(); + + // We'll then fall off the end of the ("if GC locker active") + // if-statement and retry the allocation further down in the + // loop. + } else { + if (CheckJNICalls) { + fatal("Possible deadlock due to allocating while" + " in jni critical section"); } + return NULL; } + } else { + // We are not locked out. So, let's try to do a GC. The VM op + // will retry the allocation before it completes. + + // Read the GC count while holding the Heap_lock + unsigned int gc_count_before = SharedHeap::heap()->total_collections(); + + Heap_lock->unlock(); + + HeapWord* result = + do_collection_pause(word_size, gc_count_before, &succeeded); + assert_heap_not_locked(); + if (result != NULL) { + assert(succeeded, "the VM op should have succeeded"); + + // Allocations that take place on VM operations do not do any + // card dirtying and we have to do it here. + dirty_young_block(result, word_size); + return result; + } + + Heap_lock->lock(); } + + assert_heap_locked(); + + // We can reach here when we were unsuccessful in doing a GC, + // because another thread beat us to it, or because we were locked + // out of GC due to the GC locker. In either case a new alloc + // region might be available so we will retry the allocation. + HeapWord* result = attempt_allocation(word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } + + // So far our attempts to allocate failed. The only time we'll go + // around the loop and try again is if we tried to do a GC and the + // VM op that we tried to schedule was not successful because + // another thread beat us to it. If that happened it's possible + // that by the time we grabbed the Heap_lock again and tried to + // allocate other threads filled up the young generation, which + // means that the allocation attempt after the GC also failed. So, + // it's worth trying to schedule another GC pause. + if (succeeded) { + break; + } + + // Give a warning if we seem to be looping forever. + if ((QueuedAllocationWarningCount > 0) && + (try_count % QueuedAllocationWarningCount == 0)) { + warning("G1CollectedHeap::attempt_allocation_slow() " + "retries %d times", try_count); + } + } + + assert_heap_locked(); + return NULL; +} + +// See the comment in the .hpp file about the locking protocol and +// assumptions of this method (and other related ones). +HeapWord* +G1CollectedHeap::attempt_allocation_humongous(size_t word_size, + bool at_safepoint) { + // This is the method that will allocate a humongous object. All + // allocation paths that attempt to allocate a humongous object + // should eventually reach here. Currently, the only paths are from + // mem_allocate() and attempt_allocation_at_safepoint(). + assert_heap_locked_or_at_safepoint(); + assert(isHumongous(word_size), "attempt_allocation_humongous() " + "should only be used for humongous allocations"); + assert(SafepointSynchronize::is_at_safepoint() == at_safepoint, + "at_safepoint and is_at_safepoint() should be a tautology"); + + HeapWord* result = NULL; + + // We will loop while succeeded is false, which means that we tried + // to do a collection, but the VM op did not succeed. So, when we + // exit the loop, either one of the allocation attempts was + // successful, or we succeeded in doing the VM op but which was + // unable to allocate after the collection. + for (int try_count = 1; /* we'll return or break */; try_count += 1) { + bool succeeded = true; + + // Given that humongous objects are not allocated in young + // regions, we'll first try to do the allocation without doing a + // collection hoping that there's enough space in the heap. + result = humongous_obj_allocate(word_size); assert(_cur_alloc_region == NULL || !_cur_alloc_region->isHumongous(), - "Prevent a regression of this bug."); - - // Now retry the allocation. - if (_cur_alloc_region != NULL) { - if (allocated_young_region != NULL) { - // We need to ensure that the store to top does not - // float above the setting of the young type. - OrderAccess::storestore(); + "catch a regression of this bug."); + if (result != NULL) { + if (!at_safepoint) { + // If we're not at a safepoint, unlock the Heap_lock. + Heap_lock->unlock(); } - res = _cur_alloc_region->allocate(word_size); + return result; } - } - // NOTE: fails frequently in PRT - assert(regions_accounted_for(), "Region leakage!"); + // If we failed to allocate the humongous object, we should try to + // do a collection pause (if we're allowed) in case it reclaims + // enough space for the allocation to succeed after the pause. + if (!at_safepoint) { + // Read the GC count while holding the Heap_lock + unsigned int gc_count_before = SharedHeap::heap()->total_collections(); - if (res != NULL) { - if (!SafepointSynchronize::is_at_safepoint()) { - assert( permit_collection_pause, "invariant" ); - assert( Heap_lock->owned_by_self(), "invariant" ); + // If we're allowed to do a collection we're not at a + // safepoint, so it is safe to unlock the Heap_lock. Heap_lock->unlock(); + + result = do_collection_pause(word_size, gc_count_before, &succeeded); + assert_heap_not_locked(); + if (result != NULL) { + assert(succeeded, "the VM op should have succeeded"); + return result; + } + + // If we get here, the VM operation either did not succeed + // (i.e., another thread beat us to it) or it succeeded but + // failed to allocate the object. + + // If we're allowed to do a collection we're not at a + // safepoint, so it is safe to lock the Heap_lock. + Heap_lock->lock(); + } + + assert(result == NULL, "otherwise we should have exited the loop earlier"); + + // So far our attempts to allocate failed. The only time we'll go + // around the loop and try again is if we tried to do a GC and the + // VM op that we tried to schedule was not successful because + // another thread beat us to it. That way it's possible that some + // space was freed up by the thread that successfully scheduled a + // GC. So it's worth trying to allocate again. + if (succeeded) { + break; } - if (allocated_young_region != NULL) { - HeapRegion* hr = allocated_young_region; - HeapWord* bottom = hr->bottom(); - HeapWord* end = hr->end(); - MemRegion mr(bottom, end); - ((CardTableModRefBS*)_g1h->barrier_set())->dirty(mr); + // Give a warning if we seem to be looping forever. + if ((QueuedAllocationWarningCount > 0) && + (try_count % QueuedAllocationWarningCount == 0)) { + warning("G1CollectedHeap::attempt_allocation_humongous " + "retries %d times", try_count); } } - assert( SafepointSynchronize::is_at_safepoint() || - (res == NULL && Heap_lock->owned_by_self()) || - (res != NULL && !Heap_lock->owned_by_self()), - "post condition of the call" ); + assert_heap_locked_or_at_safepoint(); + return NULL; +} - return res; +HeapWord* G1CollectedHeap::attempt_allocation_at_safepoint(size_t word_size, + bool expect_null_cur_alloc_region) { + assert_at_safepoint(); + assert(_cur_alloc_region == NULL || !expect_null_cur_alloc_region, + "The current alloc region should only be non-NULL if we're " + "expecting it not to be NULL"); + + if (!isHumongous(word_size)) { + if (!expect_null_cur_alloc_region) { + HeapRegion* cur_alloc_region = _cur_alloc_region; + if (cur_alloc_region != NULL) { + // This allocate method does BOT updates and we don't need them in + // the young generation. This will be fixed in the near future by + // CR 6994297. + HeapWord* result = cur_alloc_region->allocate(word_size); + if (result != NULL) { + assert(is_in(result), "result should be in the heap"); + + // We will not do any dirtying here. This is guaranteed to be + // called during a safepoint and the thread that scheduled the + // pause will do the dirtying if we return a non-NULL result. + return result; + } + + retire_cur_alloc_region_common(cur_alloc_region); + } + } + + assert(_cur_alloc_region == NULL, + "at this point we should have no cur alloc region"); + return replace_cur_alloc_region_and_allocate(word_size, + true, /* at_safepoint */ + false /* do_dirtying */); + } else { + return attempt_allocation_humongous(word_size, + true /* at_safepoint */); + } + + ShouldNotReachHere(); +} + +HeapWord* G1CollectedHeap::allocate_new_tlab(size_t word_size) { + assert_heap_not_locked_and_not_at_safepoint(); + assert(!isHumongous(word_size), "we do not allow TLABs of humongous size"); + + Heap_lock->lock(); + + // First attempt: try allocating out of the current alloc region or + // after replacing the current alloc region. + HeapWord* result = attempt_allocation(word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } + + assert_heap_locked(); + + // Second attempt: go into the even slower path where we might + // try to schedule a collection. + result = attempt_allocation_slow(word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } + + assert_heap_locked(); + Heap_lock->unlock(); + return NULL; } HeapWord* G1CollectedHeap::mem_allocate(size_t word_size, bool is_noref, bool is_tlab, - bool* gc_overhead_limit_was_exceeded) { - debug_only(check_for_valid_allocation_state()); - assert(no_gc_in_progress(), "Allocation during gc not allowed"); - HeapWord* result = NULL; + bool* gc_overhead_limit_was_exceeded) { + assert_heap_not_locked_and_not_at_safepoint(); + assert(!is_tlab, "mem_allocate() this should not be called directly " + "to allocate TLABs"); // Loop until the allocation is satisified, // or unsatisfied after GC. - for (int try_count = 1; /* return or throw */; try_count += 1) { - int gc_count_before; + for (int try_count = 1; /* we'll return */; try_count += 1) { + unsigned int gc_count_before; { Heap_lock->lock(); - result = attempt_allocation(word_size); - if (result != NULL) { - // attempt_allocation should have unlocked the heap lock - assert(is_in(result), "result not in heap"); - return result; + + if (!isHumongous(word_size)) { + // First attempt: try allocating out of the current alloc + // region or after replacing the current alloc region. + HeapWord* result = attempt_allocation(word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } + + assert_heap_locked(); + + // Second attempt: go into the even slower path where we might + // try to schedule a collection. + result = attempt_allocation_slow(word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } + } else { + HeapWord* result = attempt_allocation_humongous(word_size, + false /* at_safepoint */); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } } + + assert_heap_locked(); // Read the gc count while the heap lock is held. gc_count_before = SharedHeap::heap()->total_collections(); + // We cannot be at a safepoint, so it is safe to unlock the Heap_lock Heap_lock->unlock(); } // Create the garbage collection operation... - VM_G1CollectForAllocation op(word_size, - gc_count_before); - + VM_G1CollectForAllocation op(gc_count_before, word_size); // ...and get the VM thread to execute it. VMThread::execute(&op); - if (op.prologue_succeeded()) { - result = op.result(); - assert(result == NULL || is_in(result), "result not in heap"); + + assert_heap_not_locked(); + if (op.prologue_succeeded() && op.pause_succeeded()) { + // If the operation was successful we'll return the result even + // if it is NULL. If the allocation attempt failed immediately + // after a Full GC, it's unlikely we'll be able to allocate now. + HeapWord* result = op.result(); + if (result != NULL && !isHumongous(word_size)) { + // Allocations that take place on VM operations do not do any + // card dirtying and we have to do it here. We only have to do + // this for non-humongous allocations, though. + dirty_young_block(result, word_size); + } return result; + } else { + assert(op.result() == NULL, + "the result should be NULL if the VM op did not succeed"); } // Give a warning if we seem to be looping forever. if ((QueuedAllocationWarningCount > 0) && (try_count % QueuedAllocationWarningCount == 0)) { - warning("G1CollectedHeap::mem_allocate_work retries %d times", - try_count); + warning("G1CollectedHeap::mem_allocate retries %d times", try_count); } } + + ShouldNotReachHere(); } void G1CollectedHeap::abandon_cur_alloc_region() { @@ -841,11 +1163,11 @@ public: } }; -void G1CollectedHeap::do_collection(bool explicit_gc, +bool G1CollectedHeap::do_collection(bool explicit_gc, bool clear_all_soft_refs, size_t word_size) { if (GC_locker::check_active_before_gc()) { - return; // GC is disabled (e.g. JNI GetXXXCritical operation) + return false; } ResourceMark rm; @@ -1047,12 +1369,19 @@ void G1CollectedHeap::do_collection(bool explicit_gc, if (PrintHeapAtGC) { Universe::print_heap_after_gc(); } + + return true; } void G1CollectedHeap::do_full_collection(bool clear_all_soft_refs) { - do_collection(true, /* explicit_gc */ - clear_all_soft_refs, - 0 /* word_size */); + // do_collection() will return whether it succeeded in performing + // the GC. Currently, there is no facility on the + // do_full_collection() API to notify the caller than the collection + // did not succeed (e.g., because it was locked out by the GC + // locker). So, right now, we'll ignore the return value. + bool dummy = do_collection(true, /* explicit_gc */ + clear_all_soft_refs, + 0 /* word_size */); } // This code is mostly copied from TenuredGeneration. @@ -1175,46 +1504,74 @@ resize_if_necessary_after_full_collection(size_t word_size) { HeapWord* -G1CollectedHeap::satisfy_failed_allocation(size_t word_size) { - HeapWord* result = NULL; +G1CollectedHeap::satisfy_failed_allocation(size_t word_size, + bool* succeeded) { + assert(SafepointSynchronize::is_at_safepoint(), + "satisfy_failed_allocation() should only be called at a safepoint"); + assert(Thread::current()->is_VM_thread(), + "satisfy_failed_allocation() should only be called by the VM thread"); + + *succeeded = true; + // Let's attempt the allocation first. + HeapWord* result = attempt_allocation_at_safepoint(word_size, + false /* expect_null_cur_alloc_region */); + if (result != NULL) { + assert(*succeeded, "sanity"); + return result; + } // In a G1 heap, we're supposed to keep allocation from failing by // incremental pauses. Therefore, at least for now, we'll favor // expansion over collection. (This might change in the future if we can // do something smarter than full collection to satisfy a failed alloc.) - result = expand_and_allocate(word_size); if (result != NULL) { - assert(is_in(result), "result not in heap"); + assert(*succeeded, "sanity"); return result; } - // OK, I guess we have to try collection. - - do_collection(false, false, word_size); - - result = attempt_allocation(word_size, /*permit_collection_pause*/false); + // Expansion didn't work, we'll try to do a Full GC. + bool gc_succeeded = do_collection(false, /* explicit_gc */ + false, /* clear_all_soft_refs */ + word_size); + if (!gc_succeeded) { + *succeeded = false; + return NULL; + } + // Retry the allocation + result = attempt_allocation_at_safepoint(word_size, + true /* expect_null_cur_alloc_region */); if (result != NULL) { - assert(is_in(result), "result not in heap"); + assert(*succeeded, "sanity"); return result; } - // Try collecting soft references. - do_collection(false, true, word_size); - result = attempt_allocation(word_size, /*permit_collection_pause*/false); + // Then, try a Full GC that will collect all soft references. + gc_succeeded = do_collection(false, /* explicit_gc */ + true, /* clear_all_soft_refs */ + word_size); + if (!gc_succeeded) { + *succeeded = false; + return NULL; + } + + // Retry the allocation once more + result = attempt_allocation_at_safepoint(word_size, + true /* expect_null_cur_alloc_region */); if (result != NULL) { - assert(is_in(result), "result not in heap"); + assert(*succeeded, "sanity"); return result; } assert(!collector_policy()->should_clear_all_soft_refs(), - "Flag should have been handled and cleared prior to this point"); + "Flag should have been handled and cleared prior to this point"); // What else? We might try synchronous finalization later. If the total // space available is large enough for the allocation, then a more // complete compaction phase than we've tried so far might be // appropriate. + assert(*succeeded, "sanity"); return NULL; } @@ -1224,14 +1581,20 @@ G1CollectedHeap::satisfy_failed_allocation(size_t word_size) { // allocated block, or else "NULL". HeapWord* G1CollectedHeap::expand_and_allocate(size_t word_size) { + assert(SafepointSynchronize::is_at_safepoint(), + "expand_and_allocate() should only be called at a safepoint"); + assert(Thread::current()->is_VM_thread(), + "expand_and_allocate() should only be called by the VM thread"); + size_t expand_bytes = word_size * HeapWordSize; if (expand_bytes < MinHeapDeltaBytes) { expand_bytes = MinHeapDeltaBytes; } expand(expand_bytes); assert(regions_accounted_for(), "Region leakage!"); - HeapWord* result = attempt_allocation(word_size, false /* permit_collection_pause */); - return result; + + return attempt_allocation_at_safepoint(word_size, + true /* expect_null_cur_alloc_region */); } size_t G1CollectedHeap::free_region_if_totally_empty(HeapRegion* hr) { @@ -1842,21 +2205,25 @@ void G1CollectedHeap::collect(GCCause::Cause cause) { unsigned int full_gc_count_before; { MutexLocker ml(Heap_lock); - // Read the GC count while holding the Heap_lock - gc_count_before = SharedHeap::heap()->total_collections(); - full_gc_count_before = SharedHeap::heap()->total_full_collections(); - // Don't want to do a GC until cleanup is completed. + // Don't want to do a GC until cleanup is completed. This + // limitation will be removed in the near future when the + // operation of the free region list is revamped as part of + // CR 6977804. wait_for_cleanup_complete(); - // We give up heap lock; VMThread::execute gets it back below + // Read the GC count while holding the Heap_lock + gc_count_before = SharedHeap::heap()->total_collections(); + full_gc_count_before = SharedHeap::heap()->total_full_collections(); } if (should_do_concurrent_full_gc(cause)) { // Schedule an initial-mark evacuation pause that will start a - // concurrent cycle. + // concurrent cycle. We're setting word_size to 0 which means that + // we are not requesting a post-GC allocation. VM_G1IncCollectionPause op(gc_count_before, - true, /* should_initiate_conc_mark */ + 0, /* word_size */ + true, /* should_initiate_conc_mark */ g1_policy()->max_pause_time_ms(), cause); VMThread::execute(&op); @@ -1864,8 +2231,10 @@ void G1CollectedHeap::collect(GCCause::Cause cause) { if (cause == GCCause::_gc_locker DEBUG_ONLY(|| cause == GCCause::_scavenge_alot)) { - // Schedule a standard evacuation pause. + // Schedule a standard evacuation pause. We're setting word_size + // to 0 which means that we are not requesting a post-GC allocation. VM_G1IncCollectionPause op(gc_count_before, + 0, /* word_size */ false, /* should_initiate_conc_mark */ g1_policy()->max_pause_time_ms(), cause); @@ -2221,14 +2590,6 @@ size_t G1CollectedHeap::unsafe_max_tlab_alloc(Thread* ignored) const { } } -HeapWord* G1CollectedHeap::allocate_new_tlab(size_t word_size) { - assert(!isHumongous(word_size), - err_msg("a TLAB should not be of humongous size, " - "word_size = "SIZE_FORMAT, word_size)); - bool dummy; - return G1CollectedHeap::mem_allocate(word_size, false, true, &dummy); -} - bool G1CollectedHeap::allocs_are_zero_filled() { return false; } @@ -2633,27 +2994,26 @@ void G1CollectedHeap::gc_epilogue(bool full /* Ignored */) { // always_do_update_barrier = true; } -void G1CollectedHeap::do_collection_pause() { - assert(Heap_lock->owned_by_self(), "we assume we'reholding the Heap_lock"); - - // Read the GC count while holding the Heap_lock - // we need to do this _before_ wait_for_cleanup_complete(), to - // ensure that we do not give up the heap lock and potentially - // pick up the wrong count - unsigned int gc_count_before = SharedHeap::heap()->total_collections(); - - // Don't want to do a GC pause while cleanup is being completed! - wait_for_cleanup_complete(); - +HeapWord* G1CollectedHeap::do_collection_pause(size_t word_size, + unsigned int gc_count_before, + bool* succeeded) { + assert_heap_not_locked_and_not_at_safepoint(); g1_policy()->record_stop_world_start(); - { - MutexUnlocker mu(Heap_lock); // give up heap lock, execute gets it back - VM_G1IncCollectionPause op(gc_count_before, - false, /* should_initiate_conc_mark */ - g1_policy()->max_pause_time_ms(), - GCCause::_g1_inc_collection_pause); - VMThread::execute(&op); - } + VM_G1IncCollectionPause op(gc_count_before, + word_size, + false, /* should_initiate_conc_mark */ + g1_policy()->max_pause_time_ms(), + GCCause::_g1_inc_collection_pause); + VMThread::execute(&op); + + HeapWord* result = op.result(); + bool ret_succeeded = op.prologue_succeeded() && op.pause_succeeded(); + assert(result == NULL || ret_succeeded, + "the result should be NULL if the VM did not succeed"); + *succeeded = ret_succeeded; + + assert_heap_not_locked(); + return result; } void @@ -2797,10 +3157,10 @@ void G1CollectedHeap::reset_taskqueue_stats() { } #endif // TASKQUEUE_STATS -void +bool G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) { if (GC_locker::check_active_before_gc()) { - return; // GC is disabled (e.g. JNI GetXXXCritical operation) + return false; } if (PrintHeapAtGC) { @@ -3068,6 +3428,8 @@ G1CollectedHeap::do_collection_pause_at_safepoint(double target_pause_time_ms) { (total_collections() % G1SummarizeRSetStatsPeriod == 0)) { g1_rem_set()->print_summary_info(); } + + return true; } size_t G1CollectedHeap::desired_plab_sz(GCAllocPurpose purpose) @@ -3361,19 +3723,6 @@ void G1CollectedHeap::finalize_for_evac_failure() { // *** Sequential G1 Evacuation -HeapWord* G1CollectedHeap::allocate_during_gc(GCAllocPurpose purpose, size_t word_size) { - HeapRegion* alloc_region = _gc_alloc_regions[purpose]; - // let the caller handle alloc failure - if (alloc_region == NULL) return NULL; - assert(isHumongous(word_size) || !alloc_region->isHumongous(), - "Either the object is humongous or the region isn't"); - HeapWord* block = alloc_region->allocate(word_size); - if (block == NULL) { - block = allocate_during_gc_slow(purpose, alloc_region, false, word_size); - } - return block; -} - class G1IsAliveClosure: public BoolObjectClosure { G1CollectedHeap* _g1; public: @@ -4625,12 +4974,6 @@ void G1CollectedHeap::cleanUpCardTable() { #endif } -void G1CollectedHeap::do_collection_pause_if_appropriate(size_t word_size) { - if (g1_policy()->should_do_collection_pause(word_size)) { - do_collection_pause(); - } -} - void G1CollectedHeap::free_collection_set(HeapRegion* cs_head) { double young_time_ms = 0.0; double non_young_time_ms = 0.0; @@ -4789,6 +5132,7 @@ void G1CollectedHeap::set_unclean_regions_coming_locked(bool b) { } void G1CollectedHeap::wait_for_cleanup_complete() { + assert_not_at_safepoint(); MutexLockerEx x(Cleanup_mon); wait_for_cleanup_complete_locked(); } @@ -5093,13 +5437,6 @@ size_t G1CollectedHeap::count_free_regions_list() { return n + m; } -bool G1CollectedHeap::should_set_young_locked() { - assert(heap_lock_held_for_gc(), - "the heap lock should already be held by or for this thread"); - return (g1_policy()->in_young_gc_mode() && - g1_policy()->should_add_next_region_to_young_list()); -} - void G1CollectedHeap::set_region_short_lived_locked(HeapRegion* hr) { assert(heap_lock_held_for_gc(), "the heap lock should already be held by or for this thread"); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index 84e846b309d..791f4bb756a 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -290,6 +290,63 @@ private: // started is maintained in _total_full_collections in CollectedHeap. volatile unsigned int _full_collections_completed; + // These are macros so that, if the assert fires, we get the correct + // line number, file, etc. + +#define heap_locking_asserts_err_msg(__extra_message) \ + err_msg("%s : Heap_lock %slocked, %sat a safepoint", \ + (__extra_message), \ + (!Heap_lock->owned_by_self()) ? "NOT " : "", \ + (!SafepointSynchronize::is_at_safepoint()) ? "NOT " : "") + +#define assert_heap_locked() \ + do { \ + assert(Heap_lock->owned_by_self(), \ + heap_locking_asserts_err_msg("should be holding the Heap_lock")); \ + } while (0) + +#define assert_heap_locked_or_at_safepoint() \ + do { \ + assert(Heap_lock->owned_by_self() || \ + SafepointSynchronize::is_at_safepoint(), \ + heap_locking_asserts_err_msg("should be holding the Heap_lock or " \ + "should be at a safepoint")); \ + } while (0) + +#define assert_heap_locked_and_not_at_safepoint() \ + do { \ + assert(Heap_lock->owned_by_self() && \ + !SafepointSynchronize::is_at_safepoint(), \ + heap_locking_asserts_err_msg("should be holding the Heap_lock and " \ + "should not be at a safepoint")); \ + } while (0) + +#define assert_heap_not_locked() \ + do { \ + assert(!Heap_lock->owned_by_self(), \ + heap_locking_asserts_err_msg("should not be holding the Heap_lock")); \ + } while (0) + +#define assert_heap_not_locked_and_not_at_safepoint() \ + do { \ + assert(!Heap_lock->owned_by_self() && \ + !SafepointSynchronize::is_at_safepoint(), \ + heap_locking_asserts_err_msg("should not be holding the Heap_lock and " \ + "should not be at a safepoint")); \ + } while (0) + +#define assert_at_safepoint() \ + do { \ + assert(SafepointSynchronize::is_at_safepoint(), \ + heap_locking_asserts_err_msg("should be at a safepoint")); \ + } while (0) + +#define assert_not_at_safepoint() \ + do { \ + assert(!SafepointSynchronize::is_at_safepoint(), \ + heap_locking_asserts_err_msg("should not be at a safepoint")); \ + } while (0) + protected: // Returns "true" iff none of the gc alloc regions have any allocations @@ -329,31 +386,162 @@ protected: // Attempt to allocate an object of the given (very large) "word_size". // Returns "NULL" on failure. - virtual HeapWord* humongousObjAllocate(size_t word_size); - - // If possible, allocate a block of the given word_size, else return "NULL". - // Returning NULL will trigger GC or heap expansion. - // These two methods have rather awkward pre- and - // post-conditions. If they are called outside a safepoint, then - // they assume that the caller is holding the heap lock. Upon return - // they release the heap lock, if they are returning a non-NULL - // value. attempt_allocation_slow() also dirties the cards of a - // newly-allocated young region after it releases the heap - // lock. This change in interface was the neatest way to achieve - // this card dirtying without affecting mem_allocate(), which is a - // more frequently called method. We tried two or three different - // approaches, but they were even more hacky. - HeapWord* attempt_allocation(size_t word_size, - bool permit_collection_pause = true); - - HeapWord* attempt_allocation_slow(size_t word_size, - bool permit_collection_pause = true); + virtual HeapWord* humongous_obj_allocate(size_t word_size); + + // The following two methods, allocate_new_tlab() and + // mem_allocate(), are the two main entry points from the runtime + // into the G1's allocation routines. They have the following + // assumptions: + // + // * They should both be called outside safepoints. + // + // * They should both be called without holding the Heap_lock. + // + // * All allocation requests for new TLABs should go to + // allocate_new_tlab(). + // + // * All non-TLAB allocation requests should go to mem_allocate() + // and mem_allocate() should never be called with is_tlab == true. + // + // * If the GC locker is active we currently stall until we can + // allocate a new young region. This will be changed in the + // near future (see CR 6994056). + // + // * If either call cannot satisfy the allocation request using the + // current allocating region, they will try to get a new one. If + // this fails, they will attempt to do an evacuation pause and + // retry the allocation. + // + // * If all allocation attempts fail, even after trying to schedule + // an evacuation pause, allocate_new_tlab() will return NULL, + // whereas mem_allocate() will attempt a heap expansion and/or + // schedule a Full GC. + // + // * We do not allow humongous-sized TLABs. So, allocate_new_tlab + // should never be called with word_size being humongous. All + // humongous allocation requests should go to mem_allocate() which + // will satisfy them with a special path. + + virtual HeapWord* allocate_new_tlab(size_t word_size); + + virtual HeapWord* mem_allocate(size_t word_size, + bool is_noref, + bool is_tlab, /* expected to be false */ + bool* gc_overhead_limit_was_exceeded); + + // The following methods, allocate_from_cur_allocation_region(), + // attempt_allocation(), replace_cur_alloc_region_and_allocate(), + // attempt_allocation_slow(), and attempt_allocation_humongous() + // have very awkward pre- and post-conditions with respect to + // locking: + // + // If they are called outside a safepoint they assume the caller + // holds the Heap_lock when it calls them. However, on exit they + // will release the Heap_lock if they return a non-NULL result, but + // keep holding the Heap_lock if they return a NULL result. The + // reason for this is that we need to dirty the cards that span + // allocated blocks on young regions to avoid having to take the + // slow path of the write barrier (for performance reasons we don't + // update RSets for references whose source is a young region, so we + // don't need to look at dirty cards on young regions). But, doing + // this card dirtying while holding the Heap_lock can be a + // scalability bottleneck, especially given that some allocation + // requests might be of non-trivial size (and the larger the region + // size is, the fewer allocations requests will be considered + // humongous, as the humongous size limit is a fraction of the + // region size). So, when one of these calls succeeds in allocating + // a block it does the card dirtying after it releases the Heap_lock + // which is why it will return without holding it. + // + // The above assymetry is the reason why locking / unlocking is done + // explicitly (i.e., with Heap_lock->lock() and + // Heap_lock->unlocked()) instead of using MutexLocker and + // MutexUnlocker objects. The latter would ensure that the lock is + // unlocked / re-locked at every possible exit out of the basic + // block. However, we only want that action to happen in selected + // places. + // + // Further, if the above methods are called during a safepoint, then + // naturally there's no assumption about the Heap_lock being held or + // there's no attempt to unlock it. The parameter at_safepoint + // indicates whether the call is made during a safepoint or not (as + // an optimization, to avoid reading the global flag with + // SafepointSynchronize::is_at_safepoint()). + // + // The methods share these parameters: + // + // * word_size : the size of the allocation request in words + // * at_safepoint : whether the call is done at a safepoint; this + // also determines whether a GC is permitted + // (at_safepoint == false) or not (at_safepoint == true) + // * do_dirtying : whether the method should dirty the allocated + // block before returning + // + // They all return either the address of the block, if they + // successfully manage to allocate it, or NULL. + + // It tries to satisfy an allocation request out of the current + // allocating region, which is passed as a parameter. It assumes + // that the caller has checked that the current allocating region is + // not NULL. Given that the caller has to check the current + // allocating region for at least NULL, it might as well pass it as + // the first parameter so that the method doesn't have to read it + // from the _cur_alloc_region field again. + inline HeapWord* allocate_from_cur_alloc_region(HeapRegion* cur_alloc_region, + size_t word_size); + + // It attempts to allocate out of the current alloc region. If that + // fails, it retires the current alloc region (if there is one), + // tries to get a new one and retries the allocation. + inline HeapWord* attempt_allocation(size_t word_size); + + // It assumes that the current alloc region has been retired and + // tries to allocate a new one. If it's successful, it performs + // the allocation out of the new current alloc region and updates + // _cur_alloc_region. + HeapWord* replace_cur_alloc_region_and_allocate(size_t word_size, + bool at_safepoint, + bool do_dirtying); + + // The slow path when we are unable to allocate a new current alloc + // region to satisfy an allocation request (i.e., when + // attempt_allocation() fails). It will try to do an evacuation + // pause, which might stall due to the GC locker, and retry the + // allocation attempt when appropriate. + HeapWord* attempt_allocation_slow(size_t word_size); + + // The method that tries to satisfy a humongous allocation + // request. If it cannot satisfy it it will try to do an evacuation + // pause to perhaps reclaim enough space to be able to satisfy the + // allocation request afterwards. + HeapWord* attempt_allocation_humongous(size_t word_size, + bool at_safepoint); + + // It does the common work when we are retiring the current alloc region. + inline void retire_cur_alloc_region_common(HeapRegion* cur_alloc_region); + + // It retires the current alloc region, which is passed as a + // parameter (since, typically, the caller is already holding on to + // it). It sets _cur_alloc_region to NULL. + void retire_cur_alloc_region(HeapRegion* cur_alloc_region); + + // It attempts to do an allocation immediately before or after an + // evacuation pause and can only be called by the VM thread. It has + // slightly different assumptions that the ones before (i.e., + // assumes that the current alloc region has been retired). + HeapWord* attempt_allocation_at_safepoint(size_t word_size, + bool expect_null_cur_alloc_region); + + // It dirties the cards that cover the block so that so that the post + // write barrier never queues anything when updating objects on this + // block. It is assumed (and in fact we assert) that the block + // belongs to a young region. + inline void dirty_young_block(HeapWord* start, size_t word_size); // Allocate blocks during garbage collection. Will ensure an // allocation region, either by picking one or expanding the // heap, and then allocate a block of the given size. The block // may not be a humongous - it must fit into a single heap region. - HeapWord* allocate_during_gc(GCAllocPurpose purpose, size_t word_size); HeapWord* par_allocate_during_gc(GCAllocPurpose purpose, size_t word_size); HeapWord* allocate_during_gc_slow(GCAllocPurpose purpose, @@ -370,12 +558,14 @@ protected: void retire_alloc_region(HeapRegion* alloc_region, bool par); // - if explicit_gc is true, the GC is for a System.gc() or a heap - // inspection request and should collect the entire heap - // - if clear_all_soft_refs is true, all soft references are cleared - // during the GC + // inspection request and should collect the entire heap + // - if clear_all_soft_refs is true, all soft references should be + // cleared during the GC // - if explicit_gc is false, word_size describes the allocation that - // the GC should attempt (at least) to satisfy - void do_collection(bool explicit_gc, + // the GC should attempt (at least) to satisfy + // - it returns false if it is unable to do the collection due to the + // GC locker being active, true otherwise + bool do_collection(bool explicit_gc, bool clear_all_soft_refs, size_t word_size); @@ -391,13 +581,13 @@ protected: // Callback from VM_G1CollectForAllocation operation. // This function does everything necessary/possible to satisfy a // failed allocation request (including collection, expansion, etc.) - HeapWord* satisfy_failed_allocation(size_t word_size); + HeapWord* satisfy_failed_allocation(size_t word_size, bool* succeeded); // Attempting to expand the heap sufficiently // to support an allocation of the given "word_size". If // successful, perform the allocation and return the address of the // allocated block, or else "NULL". - virtual HeapWord* expand_and_allocate(size_t word_size); + HeapWord* expand_and_allocate(size_t word_size); public: // Expand the garbage-first heap by at least the given size (in bytes!). @@ -478,21 +668,27 @@ protected: void reset_taskqueue_stats(); #endif // TASKQUEUE_STATS - // Do an incremental collection: identify a collection set, and evacuate - // its live objects elsewhere. - virtual void do_collection_pause(); + // Schedule the VM operation that will do an evacuation pause to + // satisfy an allocation request of word_size. *succeeded will + // return whether the VM operation was successful (it did do an + // evacuation pause) or not (another thread beat us to it or the GC + // locker was active). Given that we should not be holding the + // Heap_lock when we enter this method, we will pass the + // gc_count_before (i.e., total_collections()) as a parameter since + // it has to be read while holding the Heap_lock. Currently, both + // methods that call do_collection_pause() release the Heap_lock + // before the call, so it's easy to read gc_count_before just before. + HeapWord* do_collection_pause(size_t word_size, + unsigned int gc_count_before, + bool* succeeded); // The guts of the incremental collection pause, executed by the vm - // thread. - virtual void do_collection_pause_at_safepoint(double target_pause_time_ms); + // thread. It returns false if it is unable to do the collection due + // to the GC locker being active, true otherwise + bool do_collection_pause_at_safepoint(double target_pause_time_ms); // Actually do the work of evacuating the collection set. - virtual void evacuate_collection_set(); - - // If this is an appropriate right time, do a collection pause. - // The "word_size" argument, if non-zero, indicates the size of an - // allocation request that is prompting this query. - void do_collection_pause_if_appropriate(size_t word_size); + void evacuate_collection_set(); // The g1 remembered set of the heap. G1RemSet* _g1_rem_set; @@ -762,11 +958,6 @@ public: #endif // PRODUCT // These virtual functions do the actual allocation. - virtual HeapWord* mem_allocate(size_t word_size, - bool is_noref, - bool is_tlab, - bool* gc_overhead_limit_was_exceeded); - // Some heaps may offer a contiguous region for shared non-blocking // allocation, via inlined code (by exporting the address of the top and // end fields defining the extent of the contiguous allocation region.) @@ -1046,7 +1237,6 @@ public: virtual bool supports_tlab_allocation() const; virtual size_t tlab_capacity(Thread* thr) const; virtual size_t unsafe_max_tlab_alloc(Thread* thr) const; - virtual HeapWord* allocate_new_tlab(size_t word_size); // Can a compiler initialize a new object without store barriers? // This permission only extends from the creation of a new object @@ -1186,7 +1376,6 @@ public: static G1CollectedHeap* heap(); void empty_young_list(); - bool should_set_young_locked(); void set_region_short_lived_locked(HeapRegion* hr); // add appropriate methods for any other surv rate groups @@ -1339,8 +1528,6 @@ public: protected: size_t _max_heap_capacity; -// debug_only(static void check_for_valid_allocation_state();) - public: // Temporary: call to mark things unimplemented for the G1 heap (e.g., // MemoryService). In productization, we can make this assert false diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp index 1cc1ada578c..fc23db566d9 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp @@ -27,6 +27,7 @@ #include "gc_implementation/g1/concurrentMark.hpp" #include "gc_implementation/g1/g1CollectedHeap.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" #include "gc_implementation/g1/heapRegionSeq.hpp" #include "utilities/taskqueue.hpp" @@ -58,37 +59,114 @@ inline bool G1CollectedHeap::obj_in_cs(oop obj) { return r != NULL && r->in_collection_set(); } -inline HeapWord* G1CollectedHeap::attempt_allocation(size_t word_size, - bool permit_collection_pause) { - HeapWord* res = NULL; - - assert( SafepointSynchronize::is_at_safepoint() || - Heap_lock->owned_by_self(), "pre-condition of the call" ); - - // All humongous allocation requests should go through the slow path in - // attempt_allocation_slow(). - if (!isHumongous(word_size) && _cur_alloc_region != NULL) { - // If this allocation causes a region to become non empty, - // then we need to update our free_regions count. - - if (_cur_alloc_region->is_empty()) { - res = _cur_alloc_region->allocate(word_size); - if (res != NULL) - _free_regions--; - } else { - res = _cur_alloc_region->allocate(word_size); - } +// See the comment in the .hpp file about the locking protocol and +// assumptions of this method (and other related ones). +inline HeapWord* +G1CollectedHeap::allocate_from_cur_alloc_region(HeapRegion* cur_alloc_region, + size_t word_size) { + assert_heap_locked_and_not_at_safepoint(); + assert(cur_alloc_region != NULL, "pre-condition of the method"); + assert(cur_alloc_region == _cur_alloc_region, "pre-condition of the method"); + assert(cur_alloc_region->is_young(), + "we only support young current alloc regions"); + assert(!isHumongous(word_size), "allocate_from_cur_alloc_region() " + "should not be used for humongous allocations"); + assert(!cur_alloc_region->isHumongous(), "Catch a regression of this bug."); + + assert(!cur_alloc_region->is_empty(), + err_msg("region ["PTR_FORMAT","PTR_FORMAT"] should not be empty", + cur_alloc_region->bottom(), cur_alloc_region->end())); + // This allocate method does BOT updates and we don't need them in + // the young generation. This will be fixed in the near future by + // CR 6994297. + HeapWord* result = cur_alloc_region->allocate(word_size); + if (result != NULL) { + assert(is_in(result), "result should be in the heap"); + Heap_lock->unlock(); + + // Do the dirtying after we release the Heap_lock. + dirty_young_block(result, word_size); + return result; + } + + assert_heap_locked(); + return NULL; +} - if (res != NULL) { - if (!SafepointSynchronize::is_at_safepoint()) { - assert( Heap_lock->owned_by_self(), "invariant" ); - Heap_lock->unlock(); - } - return res; +// See the comment in the .hpp file about the locking protocol and +// assumptions of this method (and other related ones). +inline HeapWord* +G1CollectedHeap::attempt_allocation(size_t word_size) { + assert_heap_locked_and_not_at_safepoint(); + assert(!isHumongous(word_size), "attempt_allocation() should not be called " + "for humongous allocation requests"); + + HeapRegion* cur_alloc_region = _cur_alloc_region; + if (cur_alloc_region != NULL) { + HeapWord* result = allocate_from_cur_alloc_region(cur_alloc_region, + word_size); + if (result != NULL) { + assert_heap_not_locked(); + return result; } + + assert_heap_locked(); + + // Since we couldn't successfully allocate into it, retire the + // current alloc region. + retire_cur_alloc_region(cur_alloc_region); } - // attempt_allocation_slow will also unlock the heap lock when appropriate. - return attempt_allocation_slow(word_size, permit_collection_pause); + + // Try to get a new region and allocate out of it + HeapWord* result = replace_cur_alloc_region_and_allocate(word_size, + false, /* at safepoint */ + true /* do_dirtying */); + if (result != NULL) { + assert_heap_not_locked(); + return result; + } + + assert_heap_locked(); + return NULL; +} + +inline void +G1CollectedHeap::retire_cur_alloc_region_common(HeapRegion* cur_alloc_region) { + assert_heap_locked_or_at_safepoint(); + assert(cur_alloc_region != NULL && cur_alloc_region == _cur_alloc_region, + "pre-condition of the call"); + assert(cur_alloc_region->is_young(), + "we only support young current alloc regions"); + + // The region is guaranteed to be young + g1_policy()->add_region_to_incremental_cset_lhs(cur_alloc_region); + _summary_bytes_used += cur_alloc_region->used(); + _cur_alloc_region = NULL; +} + +// It dirties the cards that cover the block so that so that the post +// write barrier never queues anything when updating objects on this +// block. It is assumed (and in fact we assert) that the block +// belongs to a young region. +inline void +G1CollectedHeap::dirty_young_block(HeapWord* start, size_t word_size) { + assert_heap_not_locked(); + + // Assign the containing region to containing_hr so that we don't + // have to keep calling heap_region_containing_raw() in the + // asserts below. + DEBUG_ONLY(HeapRegion* containing_hr = heap_region_containing_raw(start);) + assert(containing_hr != NULL && start != NULL && word_size > 0, + "pre-condition"); + assert(containing_hr->is_in(start), "it should contain start"); + assert(containing_hr->is_young(), "it should be young"); + assert(!containing_hr->isHumongous(), "it should not be humongous"); + + HeapWord* end = start + word_size; + assert(containing_hr->is_in(end - 1), "it should also contain end - 1"); + + MemRegion mr(start, end); + ((CardTableModRefBS*)_g1h->barrier_set())->dirty(mr); } inline RefToScanQueue* G1CollectedHeap::task_queue(int i) const { diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 52b0411c21a..04289852003 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -458,8 +458,8 @@ void G1CollectorPolicy::calculate_young_list_min_length() { double now_sec = os::elapsedTime(); double when_ms = _mmu_tracker->when_max_gc_sec(now_sec) * 1000.0; double alloc_rate_ms = predict_alloc_rate_ms(); - int min_regions = (int) ceil(alloc_rate_ms * when_ms); - int current_region_num = (int) _g1->young_list()->length(); + size_t min_regions = (size_t) ceil(alloc_rate_ms * when_ms); + size_t current_region_num = _g1->young_list()->length(); _young_list_min_length = min_regions + current_region_num; } } @@ -473,9 +473,12 @@ void G1CollectorPolicy::calculate_young_list_target_length() { _young_list_target_length = _young_list_fixed_length; else _young_list_target_length = _young_list_fixed_length / 2; - - _young_list_target_length = MAX2(_young_list_target_length, (size_t)1); } + + // Make sure we allow the application to allocate at least one + // region before we need to do a collection again. + size_t min_length = _g1->young_list()->length() + 1; + _young_list_target_length = MAX2(_young_list_target_length, min_length); calculate_survivors_policy(); } @@ -568,7 +571,7 @@ void G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths) { // we should have at least one region in the target young length _young_list_target_length = - MAX2((size_t) 1, final_young_length + _recorded_survivor_regions); + final_young_length + _recorded_survivor_regions; // let's keep an eye of how long we spend on this calculation // right now, I assume that we'll print it when we need it; we @@ -617,8 +620,7 @@ void G1CollectorPolicy::calculate_young_list_target_length(size_t rs_lengths) { _young_list_min_length); #endif // TRACE_CALC_YOUNG_LENGTH // we'll do the pause as soon as possible by choosing the minimum - _young_list_target_length = - MAX2(_young_list_min_length, (size_t) 1); + _young_list_target_length = _young_list_min_length; } _rs_lengths_prediction = rs_lengths; @@ -801,7 +803,7 @@ void G1CollectorPolicy::record_full_collection_end() { _survivor_surv_rate_group->reset(); calculate_young_list_min_length(); calculate_young_list_target_length(); - } +} void G1CollectorPolicy::record_before_bytes(size_t bytes) { _bytes_in_to_space_before_gc += bytes; @@ -824,9 +826,9 @@ void G1CollectorPolicy::record_collection_pause_start(double start_time_sec, gclog_or_tty->print(" (%s)", full_young_gcs() ? "young" : "partial"); } - assert(_g1->used_regions() == _g1->recalculate_used_regions(), - "sanity"); - assert(_g1->used() == _g1->recalculate_used(), "sanity"); + assert(_g1->used() == _g1->recalculate_used(), + err_msg("sanity, used: "SIZE_FORMAT" recalculate_used: "SIZE_FORMAT, + _g1->used(), _g1->recalculate_used())); double s_w_t_ms = (start_time_sec - _stop_world_start) * 1000.0; _all_stop_world_times_ms->add(s_w_t_ms); @@ -2266,24 +2268,13 @@ void G1CollectorPolicy::print_yg_surv_rate_info() const { #endif // PRODUCT } -bool -G1CollectorPolicy::should_add_next_region_to_young_list() { - assert(in_young_gc_mode(), "should be in young GC mode"); - bool ret; - size_t young_list_length = _g1->young_list()->length(); - size_t young_list_max_length = _young_list_target_length; - if (G1FixedEdenSize) { - young_list_max_length -= _max_survivor_regions; - } - if (young_list_length < young_list_max_length) { - ret = true; +void +G1CollectorPolicy::update_region_num(bool young) { + if (young) { ++_region_num_young; } else { - ret = false; ++_region_num_tenured; } - - return ret; } #ifndef PRODUCT @@ -2327,32 +2318,6 @@ void G1CollectorPolicy::calculate_survivors_policy() } } -bool -G1CollectorPolicy_BestRegionsFirst::should_do_collection_pause(size_t - word_size) { - assert(_g1->regions_accounted_for(), "Region leakage!"); - double max_pause_time_ms = _mmu_tracker->max_gc_time() * 1000.0; - - size_t young_list_length = _g1->young_list()->length(); - size_t young_list_max_length = _young_list_target_length; - if (G1FixedEdenSize) { - young_list_max_length -= _max_survivor_regions; - } - bool reached_target_length = young_list_length >= young_list_max_length; - - if (in_young_gc_mode()) { - if (reached_target_length) { - assert( young_list_length > 0 && _g1->young_list()->length() > 0, - "invariant" ); - return true; - } - } else { - guarantee( false, "should not reach here" ); - } - - return false; -} - #ifndef PRODUCT class HRSortIndexIsOKClosure: public HeapRegionClosure { CollectionSetChooser* _chooser; diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp index 7e7111e88af..b6d643e4bbd 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @@ -993,11 +993,6 @@ public: void record_before_bytes(size_t bytes); void record_after_bytes(size_t bytes); - // Returns "true" if this is a good time to do a collection pause. - // The "word_size" argument, if non-zero, indicates the size of an - // allocation request that is prompting this query. - virtual bool should_do_collection_pause(size_t word_size) = 0; - // Choose a new collection set. Marks the chosen regions as being // "in_collection_set", and links them together. The head and number of // the collection set are available via access methods. @@ -1116,7 +1111,16 @@ public: // do that for any other surv rate groups } - bool should_add_next_region_to_young_list(); + bool is_young_list_full() { + size_t young_list_length = _g1->young_list()->length(); + size_t young_list_max_length = _young_list_target_length; + if (G1FixedEdenSize) { + young_list_max_length -= _max_survivor_regions; + } + + return young_list_length >= young_list_max_length; + } + void update_region_num(bool young); bool in_young_gc_mode() { return _in_young_gc_mode; @@ -1270,7 +1274,6 @@ public: _collectionSetChooser = new CollectionSetChooser(); } void record_collection_pause_end(); - bool should_do_collection_pause(size_t word_size); // This is not needed any more, after the CSet choosing code was // changed to use the pause prediction work. But let's leave the // hook in just in case. diff --git a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp index d11f7fa60b6..1ceeead58ff 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @@ -27,13 +27,22 @@ #include "gc_implementation/g1/g1CollectorPolicy.hpp" #include "gc_implementation/g1/vm_operations_g1.hpp" #include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" #include "runtime/interfaceSupport.hpp" +VM_G1CollectForAllocation::VM_G1CollectForAllocation( + unsigned int gc_count_before, + size_t word_size) + : VM_G1OperationWithAllocRequest(gc_count_before, word_size) { + guarantee(word_size > 0, "an allocation should always be requested"); +} + void VM_G1CollectForAllocation::doit() { JvmtiGCForAllocationMarker jgcm; G1CollectedHeap* g1h = G1CollectedHeap::heap(); - _res = g1h->satisfy_failed_allocation(_size); - assert(g1h->is_in_or_null(_res), "result not in heap"); + _result = g1h->satisfy_failed_allocation(_word_size, &_pause_succeeded); + assert(_result == NULL || _pause_succeeded, + "if we get back a result, the pause should have succeeded"); } void VM_G1CollectFull::doit() { @@ -43,6 +52,25 @@ void VM_G1CollectFull::doit() { g1h->do_full_collection(false /* clear_all_soft_refs */); } +VM_G1IncCollectionPause::VM_G1IncCollectionPause( + unsigned int gc_count_before, + size_t word_size, + bool should_initiate_conc_mark, + double target_pause_time_ms, + GCCause::Cause gc_cause) + : VM_G1OperationWithAllocRequest(gc_count_before, word_size), + _should_initiate_conc_mark(should_initiate_conc_mark), + _target_pause_time_ms(target_pause_time_ms), + _full_collections_completed_before(0) { + guarantee(target_pause_time_ms > 0.0, + err_msg("target_pause_time_ms = %1.6lf should be positive", + target_pause_time_ms)); + guarantee(word_size == 0 || gc_cause == GCCause::_g1_inc_collection_pause, + "we can only request an allocation if the GC cause is for " + "an incremental GC pause"); + _gc_cause = gc_cause; +} + void VM_G1IncCollectionPause::doit() { JvmtiGCForAllocationMarker jgcm; G1CollectedHeap* g1h = G1CollectedHeap::heap(); @@ -51,6 +79,18 @@ void VM_G1IncCollectionPause::doit() { (_gc_cause == GCCause::_java_lang_system_gc && ExplicitGCInvokesConcurrent)), "only a GC locker or a System.gc() induced GC should start a cycle"); + if (_word_size > 0) { + // An allocation has been requested. So, try to do that first. + _result = g1h->attempt_allocation_at_safepoint(_word_size, + false /* expect_null_cur_alloc_region */); + if (_result != NULL) { + // If we can successfully allocate before we actually do the + // pause then we will consider this pause successful. + _pause_succeeded = true; + return; + } + } + GCCauseSetter x(g1h, _gc_cause); if (_should_initiate_conc_mark) { // It's safer to read full_collections_completed() here, given @@ -63,7 +103,16 @@ void VM_G1IncCollectionPause::doit() { // will do so if one is not already in progress. bool res = g1h->g1_policy()->force_initial_mark_if_outside_cycle(); } - g1h->do_collection_pause_at_safepoint(_target_pause_time_ms); + + _pause_succeeded = + g1h->do_collection_pause_at_safepoint(_target_pause_time_ms); + if (_pause_succeeded && _word_size > 0) { + // An allocation had been requested. + _result = g1h->attempt_allocation_at_safepoint(_word_size, + true /* expect_null_cur_alloc_region */); + } else { + assert(_result == NULL, "invariant"); + } } void VM_G1IncCollectionPause::doit_epilogue() { diff --git a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp index c55c252be7d..1fc31d51dc4 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp @@ -31,19 +31,33 @@ // VM_GC_Operation: // - VM_CGC_Operation // - VM_G1CollectFull -// - VM_G1CollectForAllocation -// - VM_G1IncCollectionPause -// - VM_G1PopRegionCollectionPause +// - VM_G1OperationWithAllocRequest +// - VM_G1CollectForAllocation +// - VM_G1IncCollectionPause + +class VM_G1OperationWithAllocRequest: public VM_GC_Operation { +protected: + size_t _word_size; + HeapWord* _result; + bool _pause_succeeded; + +public: + VM_G1OperationWithAllocRequest(unsigned int gc_count_before, + size_t word_size) + : VM_GC_Operation(gc_count_before), + _word_size(word_size), _result(NULL), _pause_succeeded(false) { } + HeapWord* result() { return _result; } + bool pause_succeeded() { return _pause_succeeded; } +}; class VM_G1CollectFull: public VM_GC_Operation { - public: +public: VM_G1CollectFull(unsigned int gc_count_before, unsigned int full_gc_count_before, GCCause::Cause cause) : VM_GC_Operation(gc_count_before, full_gc_count_before) { _gc_cause = cause; } - ~VM_G1CollectFull() {} virtual VMOp_Type type() const { return VMOp_G1CollectFull; } virtual void doit(); virtual const char* name() const { @@ -51,45 +65,28 @@ class VM_G1CollectFull: public VM_GC_Operation { } }; -class VM_G1CollectForAllocation: public VM_GC_Operation { - private: - HeapWord* _res; - size_t _size; // size of object to be allocated - public: - VM_G1CollectForAllocation(size_t size, int gc_count_before) - : VM_GC_Operation(gc_count_before) { - _size = size; - _res = NULL; - } - ~VM_G1CollectForAllocation() {} +class VM_G1CollectForAllocation: public VM_G1OperationWithAllocRequest { +public: + VM_G1CollectForAllocation(unsigned int gc_count_before, + size_t word_size); virtual VMOp_Type type() const { return VMOp_G1CollectForAllocation; } virtual void doit(); virtual const char* name() const { return "garbage-first collection to satisfy allocation"; } - HeapWord* result() { return _res; } }; -class VM_G1IncCollectionPause: public VM_GC_Operation { +class VM_G1IncCollectionPause: public VM_G1OperationWithAllocRequest { private: - bool _should_initiate_conc_mark; - double _target_pause_time_ms; + bool _should_initiate_conc_mark; + double _target_pause_time_ms; unsigned int _full_collections_completed_before; public: VM_G1IncCollectionPause(unsigned int gc_count_before, + size_t word_size, bool should_initiate_conc_mark, double target_pause_time_ms, - GCCause::Cause cause) - : VM_GC_Operation(gc_count_before), - _full_collections_completed_before(0), - _should_initiate_conc_mark(should_initiate_conc_mark), - _target_pause_time_ms(target_pause_time_ms) { - guarantee(target_pause_time_ms > 0.0, - err_msg("target_pause_time_ms = %1.6lf should be positive", - target_pause_time_ms)); - - _gc_cause = cause; - } + GCCause::Cause gc_cause); virtual VMOp_Type type() const { return VMOp_G1IncCollectionPause; } virtual void doit(); virtual void doit_epilogue(); @@ -103,14 +100,9 @@ public: class VM_CGC_Operation: public VM_Operation { VoidClosure* _cl; const char* _printGCMessage; - public: - VM_CGC_Operation(VoidClosure* cl, const char *printGCMsg) : - _cl(cl), - _printGCMessage(printGCMsg) - {} - - ~VM_CGC_Operation() {} - +public: + VM_CGC_Operation(VoidClosure* cl, const char *printGCMsg) + : _cl(cl), _printGCMessage(printGCMsg) { } virtual VMOp_Type type() const { return VMOp_CGC_Operation; } virtual void doit(); virtual bool doit_prologue(); -- GitLab From f91d0d4e60e4e8ed3a27fe314cf1e234dbade4ad Mon Sep 17 00:00:00 2001 From: Sunita Koppar Date: Thu, 7 Oct 2010 00:59:40 -0700 Subject: [PATCH 002/158] 6714797: InitialContext.close does not close NIO socket connections Reviewed-by: asaha --- .../transport/CorbaConnectionCacheBase.java | 11 ++++++++- .../transport/CorbaTransportManagerImpl.java | 11 ++++++++- .../SocketOrChannelConnectionImpl.java | 23 +++++++++++++++++++ .../se/pept/transport/ConnectionCache.java | 6 +++++ .../se/spi/transport/CorbaConnection.java | 4 ++++ 5 files changed, 53 insertions(+), 2 deletions(-) diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java index d8608f21ab5..0cbce53ffc1 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,7 @@ import com.sun.corba.se.pept.transport.ConnectionCache; import com.sun.corba.se.spi.logging.CORBALogDomains; import com.sun.corba.se.spi.orb.ORB; +import com.sun.corba.se.spi.transport.CorbaConnection; import com.sun.corba.se.spi.transport.CorbaConnectionCache; import com.sun.corba.se.impl.logging.ORBUtilSystemException; @@ -87,6 +88,14 @@ public abstract class CorbaConnectionCacheBase } } + public void close() { + synchronized (backingStore()) { + for (Object obj : values()) { + ((CorbaConnection)obj).closeConnectionResources() ; + } + } + } + public long numberOfIdleConnections() { long count = 0; diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java index 5f56b560a95..fae2d157969 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010 Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -38,6 +38,7 @@ import org.omg.CORBA.INTERNAL; import org.omg.CORBA.CompletionStatus; import com.sun.corba.se.pept.transport.Acceptor; +import com.sun.corba.se.pept.transport.ConnectionCache; import com.sun.corba.se.pept.transport.ByteBufferPool; import com.sun.corba.se.pept.transport.ContactInfo; import com.sun.corba.se.pept.transport.InboundConnectionCache; @@ -49,6 +50,8 @@ import com.sun.corba.se.spi.ior.ObjectAdapterId; import com.sun.corba.se.spi.orb.ORB; import com.sun.corba.se.spi.transport.CorbaAcceptor; import com.sun.corba.se.spi.transport.CorbaTransportManager; +import com.sun.corba.se.pept.transport.Connection; +import com.sun.corba.se.pept.transport.ConnectionCache; // REVISIT - impl/poa specific: import com.sun.corba.se.impl.oa.poa.Policies; @@ -182,6 +185,12 @@ public class CorbaTransportManagerImpl if (orb.transportDebugFlag) { dprint(".close->"); } + for (Object cc : outboundConnectionCaches.values()) { + ((ConnectionCache)cc).close() ; + } + for (Object cc : inboundConnectionCaches.values()) { + ((ConnectionCache)cc).close() ; + } getSelector(0).close(); } finally { if (orb.transportDebugFlag) { diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java index e294067184e..913cd903755 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java @@ -811,6 +811,7 @@ public class SocketOrChannelConnectionImpl dprint(".close: " + this, e); } } + closeConnectionResources(); } finally { if (orb.transportDebugFlag) { dprint(".close<-: " + this); @@ -818,6 +819,28 @@ public class SocketOrChannelConnectionImpl } } + public void closeConnectionResources() { + if (orb.transportDebugFlag) { + dprint(".closeConnectionResources->: " + this); + } + Selector selector = orb.getTransportManager().getSelector(0); + selector.unregisterForEvent(this); + try { + if (socketChannel != null) + socketChannel.close() ; + if (socket != null && !socket.isClosed()) + socket.close() ; + } catch (IOException e) { + if (orb.transportDebugFlag) { + dprint( ".closeConnectionResources: " + this, e ) ; + } + } + if (orb.transportDebugFlag) { + dprint(".closeConnectionResources<-: " + this); + } + } + + public Acceptor getAcceptor() { return acceptor; diff --git a/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java b/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java index d5bee7d927f..ac926d063c0 100644 --- a/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java +++ b/corba/src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java @@ -41,6 +41,12 @@ public interface ConnectionCache public long numberOfBusyConnections(); public boolean reclaim(); + + /** Close all connections in the connection cache. + * This is used as a final cleanup, and will result + * in abrupt termination of any pending communications. + */ + public void close(); } // End of file. diff --git a/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java b/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java index b0e3f6f04dc..c7ec1ac0aa1 100644 --- a/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java +++ b/corba/src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java @@ -163,6 +163,10 @@ public interface CorbaConnection // REVISIT - MessageMediator parameter? public void serverRequestProcessingBegins(); public void serverRequestProcessingEnds(); + + /** Clean up all connection resources. Used when shutting down an ORB. + */ + public void closeConnectionResources(); } // End of file. -- GitLab From 7720bcf09cf6dd5aa90a371882d25dbbe9683618 Mon Sep 17 00:00:00 2001 From: Sunita Koppar Date: Thu, 7 Oct 2010 00:49:05 -0700 Subject: [PATCH 003/158] 6893109: memory leak in readObject() and writeObject() using idlj from jdk 1.6.0_14 Reviewed-by: asaha --- .../tools/corba/se/idl/toJavaPortable/Stub.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java index 3efe5609535..2020fd68f89 100644 --- a/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java +++ b/corba/src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -344,17 +344,26 @@ public class Stub implements AuxGen stream.println (" String str = s.readUTF ();"); stream.println (" String[] args = null;"); stream.println (" java.util.Properties props = null;"); - stream.println (" org.omg.CORBA.Object obj = org.omg.CORBA.ORB.init (args, props).string_to_object (str);"); - stream.println (" org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl) obj)._get_delegate ();"); + stream.println (" org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);"); + stream.println (" try {"); + stream.println (" org.omg.CORBA.Object obj = orb.string_to_object (str);"); stream.println (" _set_delegate (delegate);"); + stream.println (" } finally {"); + stream.println (" orb.destroy() ;"); + stream.println (" }"); stream.println (" }"); stream.println (); stream.println (" private void writeObject (java.io.ObjectOutputStream s) throws java.io.IOException"); stream.println (" {"); stream.println (" String[] args = null;"); stream.println (" java.util.Properties props = null;"); - stream.println (" String str = org.omg.CORBA.ORB.init (args, props).object_to_string (this);"); + stream.println (" org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init (args, props);"); + stream.println (" try {"); + stream.println (" String str = orb.object_to_string (this);"); stream.println (" s.writeUTF (str);"); + stream.println (" } finally {"); + stream.println (" orb.destroy() ;"); + stream.println (" }"); stream.println (" }"); } -- GitLab From d22fa91e8641aff09ee90c20deb7b054d39fbe07 Mon Sep 17 00:00:00 2001 From: Sunita Koppar Date: Thu, 7 Oct 2010 00:51:42 -0700 Subject: [PATCH 004/158] 6896157: unsynchronized hashmap in com.sun.corba.se.impl.transport.SelectorImpl.createReaderThread Reviewed-by: asaha --- .../corba/se/impl/transport/SelectorImpl.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java index 8686439b84f..1c60088a7a3 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,6 +32,7 @@ import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map; import java.util.Iterator; import java.util.List; @@ -66,7 +67,7 @@ public class SelectorImpl private List deferredRegistrations; private List interestOpsList; private HashMap listenerThreads; - private HashMap readerThreads; + private Map readerThreads; private boolean selectorStarted; private boolean closed; private ORBUtilSystemException wrapper ; @@ -81,7 +82,7 @@ public class SelectorImpl deferredRegistrations = new ArrayList(); interestOpsList = new ArrayList(); listenerThreads = new HashMap(); - readerThreads = new HashMap(); + readerThreads = java.util.Collections.synchronizedMap(new HashMap()); closed = false; wrapper = ORBUtilSystemException.get(orb,CORBALogDomains.RPC_TRANSPORT); } @@ -178,8 +179,13 @@ public class SelectorImpl } if (eventHandler.shouldUseSelectThreadToWait()) { - SelectionKey selectionKey = eventHandler.getSelectionKey(); - selectionKey.cancel(); + SelectionKey selectionKey ; + synchronized(deferredRegistrations) { + selectionKey = eventHandler.getSelectionKey(); + } + if (selectionKey != null) { + selectionKey.cancel(); + } selector.wakeup(); return; } -- GitLab From a30e55aedd15f22214327e9f6c27d0a87092a8e0 Mon Sep 17 00:00:00 2001 From: Sunita Koppar Date: Thu, 7 Oct 2010 00:53:49 -0700 Subject: [PATCH 005/158] 6929137: java-corba: Locking too broad in com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl Reviewed-by: asaha --- .../protocol/CorbaClientRequestDispatcherImpl.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java index 5c7555f3c70..d44873bd787 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -122,9 +122,6 @@ public class CorbaClientRequestDispatcherImpl implements ClientRequestDispatcher { - // Used for locking - private Object lock = new Object(); - public OutputObject beginRequest(Object self, String opName, boolean isOneWay, ContactInfo contactInfo) { @@ -151,7 +148,8 @@ public class CorbaClientRequestDispatcherImpl // This locking is done so that multiple connections are not created // for the same endpoint - synchronized (lock) { + //6929137 - Synchronized on contactInfo to avoid blocking across multiple endpoints + synchronized (contactInfo) { if (contactInfo.isConnectionBased()) { if (contactInfo.shouldCacheConnection()) { connection = (CorbaConnection) @@ -256,7 +254,7 @@ public class CorbaClientRequestDispatcherImpl registerWaiter(messageMediator); // Do connection reclaim now - synchronized (lock) { + synchronized (contactInfo) { if (contactInfo.isConnectionBased()) { if (contactInfo.shouldCacheConnection()) { OutboundConnectionCache connectionCache = -- GitLab From 9c7a01ef27f20d185410bc72765e02bf92beaab8 Mon Sep 17 00:00:00 2001 From: Sunita Koppar Date: Thu, 7 Oct 2010 01:03:51 -0700 Subject: [PATCH 006/158] 6948223: Corba issue, fail to reload object Reviewed-by: asaha --- .../sun/corba/se/impl/oa/poa/AOMEntry.java | 28 +++++++++++++++++-- .../impl/oa/poa/POAPolicyMediatorBase_R.java | 10 ++----- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java index b7564e716e4..d906afef923 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -45,6 +45,10 @@ import com.sun.corba.se.spi.orbutil.fsm.StateEngineFactory ; import com.sun.corba.se.impl.orbutil.concurrent.Mutex ; import com.sun.corba.se.impl.orbutil.concurrent.CondVar ; +import org.omg.CORBA.SystemException ; + +import org.omg.PortableServer.POAPackage.ObjectAlreadyActive ; + /** AOMEntry represents a Servant or potential Servant in the ActiveObjectMap. * It may be in several states to allow for long incarnate or etherealize operations. * The methods on this class mostly represent input symbols to the state machine @@ -121,6 +125,12 @@ public class AOMEntry extends FSMImpl { } } ; + private static Action oaaAction = new ActionBase( "throwObjectAlreadyActive" ) { + public void doIt( FSM fsm, Input in ) { + throw new RuntimeException( new ObjectAlreadyActive() ) ; + } + } ; + private static Guard waitGuard = new GuardBase( "wait" ) { public Guard.Result evaluate( FSM fsm, Input in ) { AOMEntry entry = (AOMEntry)fsm ; @@ -173,19 +183,23 @@ public class AOMEntry extends FSMImpl { engine.add( INCARN, START_ETH, waitGuard, null, INCARN ) ; engine.add( INCARN, INC_DONE, null, VALID ) ; engine.add( INCARN, INC_FAIL, decrementAction, INVALID ) ; + engine.add( INCARN, ACTIVATE, oaaAction, INCARN ) ; engine.add( VALID, ENTER, incrementAction, VALID ) ; engine.add( VALID, EXIT, decrementAction, VALID ) ; engine.add( VALID, START_ETH, greaterZeroGuard, null, ETHP ) ; engine.add( VALID, START_ETH, zeroGuard, null, ETH ) ; + engine.add( VALID, ACTIVATE, oaaAction, VALID ) ; engine.add( ETHP, ENTER, waitGuard, null, ETHP ) ; engine.add( ETHP, START_ETH, null, ETHP ) ; engine.add( ETHP, EXIT, greaterOneGuard, decrementAction, ETHP ) ; engine.add( ETHP, EXIT, oneGuard, decrementAction, ETH ) ; + engine.add( ETHP, ACTIVATE, oaaAction, ETHP ) ; engine.add( ETH, START_ETH, null, ETH ) ; engine.add( ETH, ETH_DONE, null, DESTROYED ) ; + engine.add( ETH, ACTIVATE, oaaAction, ETH ) ; engine.add( ETH, ENTER, waitGuard, null, ETH ) ; engine.setDefault( DESTROYED, throwIllegalStateExceptionAction, DESTROYED ) ; @@ -217,7 +231,17 @@ public class AOMEntry extends FSMImpl { public void etherealizeComplete() { doIt( ETH_DONE ) ; } public void incarnateComplete() { doIt( INC_DONE ) ; } public void incarnateFailure() { doIt( INC_FAIL ) ; } - public void activateObject() { doIt( ACTIVATE ) ; } + public void activateObject() throws ObjectAlreadyActive { + try { + doIt( ACTIVATE ) ; + } catch (RuntimeException exc) { + Throwable thr = exc.getCause() ; + if (thr instanceof ObjectAlreadyActive) + throw (ObjectAlreadyActive)thr ; + else + throw exc ; + } + } public void enter() { doIt( ENTER ) ; } public void exit() { doIt( EXIT ) ; } } diff --git a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java index b396ac5227d..1bc9130e109 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -107,13 +107,9 @@ public abstract class POAPolicyMediatorBase_R extends POAPolicyMediatorBase { throw new ServantAlreadyActive(); ActiveObjectMap.Key key = new ActiveObjectMap.Key( id ) ; - // Note that this can't happen for system assigned IDs since the - // POA never hands out the same ID. However, we make this redundant - // check here to share the code. - if (activeObjectMap.containsKey(key)) - throw new ObjectAlreadyActive() ; - AOMEntry entry = activeObjectMap.get( key ) ; + + // Check for an ObjectAlreadyActive error entry.activateObject() ; activateServant( key, entry, servant ) ; } -- GitLab From 596507e5d3ebcc64b5b0260050b24e6c0e3437dc Mon Sep 17 00:00:00 2001 From: Keith McGuigan Date: Wed, 27 Oct 2010 12:53:36 -0400 Subject: [PATCH 007/158] 6865028: Illegal instructions passing verification prior to 'invokespecial Object.' Update verifier to conform to spec re: reference vs. 'Object' types Reviewed-by: dholmes, coleenp --- hotspot/src/share/vm/classfile/verifier.cpp | 17 ++++++++--------- hotspot/src/share/vm/classfile/verifier.hpp | 2 ++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/hotspot/src/share/vm/classfile/verifier.cpp b/hotspot/src/share/vm/classfile/verifier.cpp index 6f2fd206381..108793b2cc6 100644 --- a/hotspot/src/share/vm/classfile/verifier.cpp +++ b/hotspot/src/share/vm/classfile/verifier.cpp @@ -247,6 +247,10 @@ ClassVerifier::ClassVerifier( ClassVerifier::~ClassVerifier() { } +VerificationType ClassVerifier::object_type() const { + return VerificationType::reference_type(vmSymbols::java_lang_Object()); +} + void ClassVerifier::verify_class(TRAPS) { if (_verify_verbose) { tty->print_cr("Verifying class %s with new format", @@ -726,8 +730,7 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) { } no_control_flow = false; break; case Bytecodes::_aastore : - type = current_frame.pop_stack( - VerificationType::reference_check(), CHECK_VERIFY(this)); + type = current_frame.pop_stack(object_type(), CHECK_VERIFY(this)); type2 = current_frame.pop_stack( VerificationType::integer_type(), CHECK_VERIFY(this)); atype = current_frame.pop_stack( @@ -1232,8 +1235,7 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) { { index = bcs.get_index_u2(); verify_cp_class_type(index, cp, CHECK_VERIFY(this)); - current_frame.pop_stack( - VerificationType::reference_check(), CHECK_VERIFY(this)); + current_frame.pop_stack(object_type(), CHECK_VERIFY(this)); VerificationType klass_type = cp_index_to_type( index, cp, CHECK_VERIFY(this)); current_frame.push_stack(klass_type, CHECK_VERIFY(this)); @@ -1242,8 +1244,7 @@ void ClassVerifier::verify_method(methodHandle m, TRAPS) { case Bytecodes::_instanceof : { index = bcs.get_index_u2(); verify_cp_class_type(index, cp, CHECK_VERIFY(this)); - current_frame.pop_stack( - VerificationType::reference_check(), CHECK_VERIFY(this)); + current_frame.pop_stack(object_type(), CHECK_VERIFY(this)); current_frame.push_stack( VerificationType::integer_type(), CHECK_VERIFY(this)); no_control_flow = false; break; @@ -1610,9 +1611,7 @@ void ClassVerifier::verify_ldc( verify_cp_type(index, cp, types, CHECK_VERIFY(this)); } if (tag.is_string() && cp->is_pseudo_string_at(index)) { - current_frame->push_stack( - VerificationType::reference_type( - vmSymbols::java_lang_Object()), CHECK_VERIFY(this)); + current_frame->push_stack(object_type(), CHECK_VERIFY(this)); } else if (tag.is_string() || tag.is_unresolved_string()) { current_frame->push_stack( VerificationType::reference_type( diff --git a/hotspot/src/share/vm/classfile/verifier.hpp b/hotspot/src/share/vm/classfile/verifier.hpp index de6487ffc08..7ffe669ce97 100644 --- a/hotspot/src/share/vm/classfile/verifier.hpp +++ b/hotspot/src/share/vm/classfile/verifier.hpp @@ -157,6 +157,8 @@ class ClassVerifier : public StackObj { bool name_in_supers(symbolOop ref_name, instanceKlassHandle current); + VerificationType object_type() const; + instanceKlassHandle _klass; // the class being verified methodHandle _method; // current method being verified VerificationType _this_type; // the verification type of the current class -- GitLab From 2a322bbd1dd5539491dc3d030f1fc7b8539ba50e Mon Sep 17 00:00:00 2001 From: John R Rose Date: Sat, 30 Oct 2010 21:02:30 -0700 Subject: [PATCH 008/158] 6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions JDK changes which run atop the corresponding JVM hook Reviewed-by: never, twisti --- .../share/classes/java/dyn/MethodHandle.java | 7 +- .../share/classes/java/dyn/MethodHandles.java | 58 ++- .../classes/sun/dyn/AdapterMethodHandle.java | 33 ++ .../classes/sun/dyn/BoundMethodHandle.java | 2 +- .../share/classes/sun/dyn/InvokeGeneric.java | 160 ++++++ jdk/src/share/classes/sun/dyn/Invokers.java | 17 + .../classes/sun/dyn/MethodHandleImpl.java | 9 +- .../classes/sun/dyn/MethodHandleNatives.java | 14 + .../share/classes/sun/dyn/MethodTypeImpl.java | 2 + .../sun/dyn/util/ValueConversions.java | 71 ++- jdk/test/java/dyn/InvokeGenericTest.java | 484 ++++++++++++++++++ jdk/test/java/dyn/MethodHandlesTest.java | 2 +- 12 files changed, 847 insertions(+), 12 deletions(-) create mode 100644 jdk/src/share/classes/sun/dyn/InvokeGeneric.java create mode 100644 jdk/test/java/dyn/InvokeGenericTest.java diff --git a/jdk/src/share/classes/java/dyn/MethodHandle.java b/jdk/src/share/classes/java/dyn/MethodHandle.java index 4904e975306..251d338ce53 100644 --- a/jdk/src/share/classes/java/dyn/MethodHandle.java +++ b/jdk/src/share/classes/java/dyn/MethodHandle.java @@ -329,6 +329,7 @@ public abstract class MethodHandle public final Object invokeVarargs(Object... arguments) throws Throwable { int argc = arguments == null ? 0 : arguments.length; MethodType type = type(); + if (type.parameterCount() != argc) throw badParameterCount(type, argc); if (argc <= 10) { MethodHandle invoker = MethodHandles.invokers(type).genericInvoker(); switch (argc) { @@ -377,6 +378,10 @@ public abstract class MethodHandle return invokeVarargs(arguments.toArray()); } + private static WrongMethodTypeException badParameterCount(MethodType type, int argc) { + return new WrongMethodTypeException(type+" does not take "+argc+" parameters"); + } + /* --- this is intentionally NOT a javadoc yet --- * PROVISIONAL API, WORK IN PROGRESS: * Produce an adapter method handle which adapts the type of the @@ -446,7 +451,7 @@ public abstract class MethodHandle * @throws IllegalArgumentException if the conversion cannot be made * @see MethodHandles#convertArguments */ - public final MethodHandle asType(MethodType newType) { + public MethodHandle asType(MethodType newType) { return MethodHandles.convertArguments(this, newType); } diff --git a/jdk/src/share/classes/java/dyn/MethodHandles.java b/jdk/src/share/classes/java/dyn/MethodHandles.java index b6e83338340..3e1fef7ff14 100644 --- a/jdk/src/share/classes/java/dyn/MethodHandles.java +++ b/jdk/src/share/classes/java/dyn/MethodHandles.java @@ -1068,10 +1068,14 @@ public class MethodHandles { MethodType oldType = target.type(); if (oldType.equals(newType)) return target; - MethodHandle res = MethodHandleImpl.convertArguments(IMPL_TOKEN, target, - newType, oldType, null); + MethodHandle res = null; + try { + res = MethodHandleImpl.convertArguments(IMPL_TOKEN, target, + newType, oldType, null); + } catch (IllegalArgumentException ex) { + } if (res == null) - throw newIllegalArgumentException("cannot convert to "+newType+": "+target); + throw new WrongMethodTypeException("cannot convert to "+newType+": "+target); return res; } @@ -1392,6 +1396,20 @@ public class MethodHandles { return adapter; } + /** Apply the given filter function to the return value of the given target. + */ + /*public*/ static + MethodHandle filterReturnValue(MethodHandle target, MethodHandle filter) { + MethodType targetType = target.type(); + MethodType filterType = filter.type(); + if (filterType.parameterCount() != 1 + || filterType.parameterType(0) != targetType.returnType()) + throw newIllegalArgumentException("target and filter types do not match"); + // FIXME: Too many nodes here. + MethodHandle returner = dropArguments(filter, 0, targetType.parameterList()); + return foldArguments(returner, exactInvoker(target.type()).bindTo(target)); + } + /** * PROVISIONAL API, WORK IN PROGRESS: * Adapt a target method handle {@code target} by pre-processing @@ -1434,7 +1452,7 @@ public class MethodHandles { * @return method handle which incorporates the specified argument folding logic * @throws IllegalArgumentException if the first argument type of * {@code target} is not the same as {@code combiner}'s return type, - * or if the next {@code foldArgs} argument types of {@code target} + * or if the following argument types of {@code target} * are not identical with the argument types of {@code combiner} */ public static @@ -1443,12 +1461,39 @@ public class MethodHandles { MethodType combinerType = combiner.type(); int foldArgs = combinerType.parameterCount(); boolean ok = (targetType.parameterCount() >= 1 + foldArgs); + if (ok && !combinerType.parameterList().equals(targetType.parameterList().subList(1, foldArgs+1))) + ok = false; + if (ok && !combinerType.returnType().equals(targetType.parameterType(0))) + ok = false; if (!ok) throw misMatchedTypes("target and combiner types", targetType, combinerType); MethodType newType = targetType.dropParameterTypes(0, 1); return MethodHandleImpl.foldArguments(IMPL_TOKEN, target, newType, combiner); } + // /** + // * PROVISIONAL API, WORK IN PROGRESS: + // * Adapt a target method handle {@code target} by pre-processing + // * some of its arguments to derive a new target method handle. + // * Call the new target on the original arguments. + // * @param combined method handle to call initially on the incoming arguments + // * @return method handle which incorporates the specified dispatching logic + // * @throws IllegalArgumentException if the first argument type of + // * {@code combiner}'s return type is not {@link MethodHandle}, + // * or if the next argument types of {@code target} + // * are not identical with the argument types of {@code combiner} + // */ + // public static + // MethodHandle dispatchArguments(MethodType targetType, MethodHandle dispatcher) { + // MethodType dispatcherType = dispatcher.type(); + // int foldArgs = dispatcherType.parameterCount(); + // boolean ok = (targetType.parameterCount() >= foldArgs); + // if (!ok) + // throw misMatchedTypes("target and dispatcher types", targetType, dispatcherType); + // MethodHandle target = exactInvoker(targetType); + // return MethodHandleImpl.foldArguments(IMPL_TOKEN, target, targetType, dispatcher); + // } + /** * PROVISIONAL API, WORK IN PROGRESS: * Make a method handle which adapts a target method handle, @@ -1691,4 +1736,9 @@ public class MethodHandles { } return null; } + + /*non-public*/ + static MethodHandle withTypeHandler(MethodHandle target, MethodHandle typeHandler) { + return MethodHandleImpl.withTypeHandler(IMPL_TOKEN, target, typeHandler); + } } diff --git a/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java b/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java index fb9b7fa26c2..65bbd372b9c 100644 --- a/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java +++ b/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java @@ -478,6 +478,39 @@ public class AdapterMethodHandle extends BoundMethodHandle { return new AdapterMethodHandle(target, newType, makeConv(raw ? OP_RETYPE_RAW : OP_RETYPE_ONLY)); } + static MethodHandle makeTypeHandler(Access token, + MethodHandle target, MethodHandle typeHandler) { + Access.check(token); + return new WithTypeHandler(target, typeHandler); + } + + static class WithTypeHandler extends AdapterMethodHandle { + final MethodHandle target, typeHandler; + WithTypeHandler(MethodHandle target, MethodHandle typeHandler) { + super(target, target.type(), OP_RETYPE_ONLY); + this.target = target; + this.typeHandler = typeHandler.asType(TYPE_HANDLER_TYPE); + } + + public MethodHandle asType(MethodType newType) { + if (this.type() == newType) + return this; + try { + MethodHandle retyped = (MethodHandle) typeHandler.invokeExact(target, newType); + // Contract: Must return the desired type, or throw WMT + if (retyped.type() != newType) + throw new WrongMethodTypeException(retyped.toString()); + return retyped; + } catch (Throwable ex) { + if (ex instanceof Error) throw (Error)ex; + if (ex instanceof RuntimeException) throw (RuntimeException)ex; + throw new RuntimeException(ex); + } + } + private static final MethodType TYPE_HANDLER_TYPE + = MethodType.methodType(MethodHandle.class, MethodHandle.class, MethodType.class); + } + /** Can a checkcast adapter validly convert the target to newType? * The JVM supports all kind of reference casts, even silly ones. */ diff --git a/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java b/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java index f2ae32efbc9..4f25262f46f 100644 --- a/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java +++ b/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java @@ -103,7 +103,7 @@ public class BoundMethodHandle extends MethodHandle { super(Access.TOKEN, type); this.argument = argument; this.vmargslot = vmargslot; - assert(this.getClass() == AdapterMethodHandle.class); + assert(this instanceof AdapterMethodHandle); } /** Initialize the current object as a Java method handle, binding it diff --git a/jdk/src/share/classes/sun/dyn/InvokeGeneric.java b/jdk/src/share/classes/sun/dyn/InvokeGeneric.java new file mode 100644 index 00000000000..8137bb4a67a --- /dev/null +++ b/jdk/src/share/classes/sun/dyn/InvokeGeneric.java @@ -0,0 +1,160 @@ +/* + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.dyn; + +import java.dyn.*; +import java.lang.reflect.*; +import sun.dyn.util.*; + +/** + * Adapters which manage MethodHanndle.invokeGeneric calls. + * The JVM calls one of these when the exact type match fails. + * @author jrose + */ +class InvokeGeneric { + // erased type for the call, which originates from an invokeGeneric site + private final MethodType erasedCallerType; + // an invoker of type (MT, MH; A...) -> R + private final MethodHandle initialInvoker; + + /** Compute and cache information for this adapter, so that it can + * call out to targets of the erasure-family of the given erased type. + */ + private InvokeGeneric(MethodType erasedCallerType) throws NoAccessException { + this.erasedCallerType = erasedCallerType; + this.initialInvoker = makeInitialInvoker(); + assert initialInvoker.type().equals(erasedCallerType + .insertParameterTypes(0, MethodType.class, MethodHandle.class)) + : initialInvoker.type(); + } + + private static MethodHandles.Lookup lookup() { + return MethodHandleImpl.IMPL_LOOKUP; + } + + /** Return the adapter information for this type's erasure. */ + static MethodHandle genericInvokerOf(MethodType type) { + MethodTypeImpl form = MethodTypeImpl.of(type); + MethodHandle genericInvoker = form.genericInvoker; + if (genericInvoker == null) { + try { + InvokeGeneric gen = new InvokeGeneric(form.erasedType()); + form.genericInvoker = genericInvoker = gen.initialInvoker; + } catch (NoAccessException ex) { + throw new RuntimeException(ex); + } + } + return genericInvoker; + } + + private MethodHandle makeInitialInvoker() throws NoAccessException { + // postDispatch = #(MH'; MT, MH; A...){MH'(MT, MH; A)} + MethodHandle postDispatch = makePostDispatchInvoker(); + MethodHandle invoker; + if (returnConversionPossible()) { + invoker = MethodHandles.foldArguments(postDispatch, + dispatcher("dispatchWithConversion")); + } else { + invoker = MethodHandles.foldArguments(postDispatch, dispatcher("dispatch")); + } + return invoker; + } + + private static final Class[] EXTRA_ARGS = { MethodType.class, MethodHandle.class }; + private MethodHandle makePostDispatchInvoker() { + // Take (MH'; MT, MH; A...) and run MH'(MT, MH; A...). + MethodType invokerType = erasedCallerType.insertParameterTypes(0, EXTRA_ARGS); + return MethodHandles.exactInvoker(invokerType); + } + private MethodHandle dropDispatchArguments(MethodHandle targetInvoker) { + assert(targetInvoker.type().parameterType(0) == MethodHandle.class); + return MethodHandles.dropArguments(targetInvoker, 1, EXTRA_ARGS); + } + + private MethodHandle dispatcher(String dispatchName) throws NoAccessException { + return lookup().bind(this, dispatchName, + MethodType.methodType(MethodHandle.class, + MethodType.class, MethodHandle.class)); + } + + static final boolean USE_AS_TYPE_PATH = true; + + /** Return a method handle to invoke on the callerType, target, and remaining arguments. + * The method handle must finish the call. + * This is the first look at the caller type and target. + */ + private MethodHandle dispatch(MethodType callerType, MethodHandle target) { + MethodType targetType = target.type(); + if (USE_AS_TYPE_PATH || target instanceof AdapterMethodHandle.WithTypeHandler) { + MethodHandle newTarget = target.asType(callerType); + targetType = callerType; + Invokers invokers = MethodTypeImpl.invokers(Access.TOKEN, targetType); + MethodHandle invoker = invokers.erasedInvokerWithDrops; + if (invoker == null) { + invokers.erasedInvokerWithDrops = invoker = + dropDispatchArguments(invokers.erasedInvoker()); + } + return invoker.bindTo(newTarget); + } + throw new RuntimeException("NYI"); + } + + private MethodHandle dispatchWithConversion(MethodType callerType, MethodHandle target) { + MethodHandle finisher = dispatch(callerType, target); + if (returnConversionNeeded(callerType, target)) + finisher = addReturnConversion(finisher, callerType.returnType()); //FIXME: slow + return finisher; + } + + private boolean returnConversionPossible() { + Class needType = erasedCallerType.returnType(); + return !needType.isPrimitive(); + } + private boolean returnConversionNeeded(MethodType callerType, MethodHandle target) { + Class needType = callerType.returnType(); + if (needType == erasedCallerType.returnType()) + return false; // no conversions possible, since must be primitive or Object + Class haveType = target.type().returnType(); + if (VerifyType.isNullConversion(haveType, needType)) + return false; + return true; + } + private MethodHandle addReturnConversion(MethodHandle target, Class type) { + if (true) throw new RuntimeException("NYI"); + // FIXME: This is slow because it creates a closure node on every call that requires a return cast. + MethodType targetType = target.type(); + MethodHandle caster = ValueConversions.identity(type); + caster = caster.asType(MethodType.methodType(type, targetType.returnType())); + // Drop irrelevant arguments, because we only care about the return value: + caster = MethodHandles.dropArguments(caster, 1, targetType.parameterList()); + MethodHandle result = MethodHandles.foldArguments(caster, target); + return result.asType(target.type()); + } + + public String toString() { + return "InvokeGeneric"+erasedCallerType; + } +} diff --git a/jdk/src/share/classes/sun/dyn/Invokers.java b/jdk/src/share/classes/sun/dyn/Invokers.java index b3d2823d024..2f2c92a779f 100644 --- a/jdk/src/share/classes/sun/dyn/Invokers.java +++ b/jdk/src/share/classes/sun/dyn/Invokers.java @@ -38,6 +38,10 @@ public class Invokers { // exact invoker for the outgoing call private /*lazy*/ MethodHandle exactInvoker; + // erased (partially untyped but with primitives) invoker for the outgoing call + private /*lazy*/ MethodHandle erasedInvoker; + /*lazy*/ MethodHandle erasedInvokerWithDrops; // for InvokeGeneric + // generic (untyped) invoker for the outgoing call private /*lazy*/ MethodHandle genericInvoker; @@ -80,6 +84,19 @@ public class Invokers { return invoker; } + public MethodHandle erasedInvoker() { + MethodHandle invoker1 = exactInvoker(); + MethodHandle invoker = erasedInvoker; + if (invoker != null) return invoker; + MethodType erasedType = targetType.erase(); + if (erasedType == targetType.generic()) + invoker = genericInvoker(); + else + invoker = MethodHandles.convertArguments(invoker1, invokerType(erasedType)); + erasedInvoker = invoker; + return invoker; + } + public MethodHandle varargsInvoker(int objectArgCount) { MethodHandle vaInvoker = varargsInvokers[objectArgCount]; if (vaInvoker != null) return vaInvoker; diff --git a/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java b/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java index caa96b90d69..49a625367a4 100644 --- a/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java +++ b/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java @@ -560,7 +560,9 @@ public abstract class MethodHandleImpl { MethodHandle bindReceiver(Access token, MethodHandle target, Object receiver) { Access.check(token); - if (target instanceof AdapterMethodHandle) { + if (target instanceof AdapterMethodHandle && + ((AdapterMethodHandle)target).conversionOp() == MethodHandleNatives.Constants.OP_RETYPE_ONLY + ) { Object info = MethodHandleNatives.getTargetInfo(target); if (info instanceof DirectMethodHandle) { DirectMethodHandle dmh = (DirectMethodHandle) info; @@ -1257,4 +1259,9 @@ public abstract class MethodHandleImpl { Access.check(token); return MethodHandleNatives.getBootstrap(callerClass); } + + public static MethodHandle withTypeHandler(Access token, MethodHandle target, MethodHandle typeHandler) { + Access.check(token); + return AdapterMethodHandle.makeTypeHandler(token, target, typeHandler); + } } diff --git a/jdk/src/share/classes/sun/dyn/MethodHandleNatives.java b/jdk/src/share/classes/sun/dyn/MethodHandleNatives.java index 47a9a2d3de1..3d0629dd034 100644 --- a/jdk/src/share/classes/sun/dyn/MethodHandleNatives.java +++ b/jdk/src/share/classes/sun/dyn/MethodHandleNatives.java @@ -316,6 +316,20 @@ class MethodHandleNatives { return MethodTypeImpl.makeImpl(Access.TOKEN, rtype, ptypes, true); } + /** + * The JVM wants to use a MethodType with invokeGeneric. Give the runtime fair warning. + */ + static void notifyGenericMethodType(MethodType type) { + try { + // Trigger adapter creation. + InvokeGeneric.genericInvokerOf(type); + } catch (Exception ex) { + Error err = new InternalError("Exception while resolving invokeGeneric"); + err.initCause(ex); + throw err; + } + } + /** * The JVM is resolving a CONSTANT_MethodHandle CP entry. And it wants our help. * It will make an up-call to this method. (Do not change the name or signature.) diff --git a/jdk/src/share/classes/sun/dyn/MethodTypeImpl.java b/jdk/src/share/classes/sun/dyn/MethodTypeImpl.java index 0a318148a73..059f2697542 100644 --- a/jdk/src/share/classes/sun/dyn/MethodTypeImpl.java +++ b/jdk/src/share/classes/sun/dyn/MethodTypeImpl.java @@ -48,6 +48,7 @@ public class MethodTypeImpl { final long primCounts; // packed prim & double counts final int vmslots; // total number of parameter slots final MethodType erasedType; // the canonical erasure + /*lazy*/ MethodType primsAsBoxes; // replace prims by wrappers /*lazy*/ MethodType primArgsAsBoxes; // wrap args only; make raw return /*lazy*/ MethodType primsAsInts; // replace prims by int/long @@ -59,6 +60,7 @@ public class MethodTypeImpl { /*lazy*/ FromGeneric fromGeneric; // convert cs. w/o prims to with /*lazy*/ SpreadGeneric[] spreadGeneric; // expand one argument to many /*lazy*/ FilterGeneric filterGeneric; // convert argument(s) on the fly + /*lazy*/ MethodHandle genericInvoker; // hook for invokeGeneric public MethodType erasedType() { return erasedType; diff --git a/jdk/src/share/classes/sun/dyn/util/ValueConversions.java b/jdk/src/share/classes/sun/dyn/util/ValueConversions.java index f5ee5cb81fd..aeacb9e0f0f 100644 --- a/jdk/src/share/classes/sun/dyn/util/ValueConversions.java +++ b/jdk/src/share/classes/sun/dyn/util/ValueConversions.java @@ -377,7 +377,7 @@ public class ValueConversions { REBOX_CONVERSIONS = newWrapperCaches(2); /** - * Becase we normalize primitive types to reduce the number of signatures, + * Because we normalize primitive types to reduce the number of signatures, * primitives are sometimes manipulated under an "erased" type, * either int (for types other than long/double) or long (for all types). * When the erased primitive value is then boxed into an Integer or Long, @@ -475,10 +475,10 @@ public class ValueConversions { } private static final EnumMap[] - ZERO_CONSTANT_FUNCTIONS = newWrapperCaches(1); + CONSTANT_FUNCTIONS = newWrapperCaches(2); public static MethodHandle zeroConstantFunction(Wrapper wrap) { - EnumMap cache = ZERO_CONSTANT_FUNCTIONS[0]; + EnumMap cache = CONSTANT_FUNCTIONS[0]; MethodHandle mh = cache.get(wrap); if (mh != null) { return mh; @@ -543,6 +543,24 @@ public class ValueConversions { return x; } + /** + * Identity function on ints. + * @param x an arbitrary int value + * @return the same value x + */ + static int identity(int x) { + return x; + } + + /** + * Identity function on longs. + * @param x an arbitrary long value + * @return the same value x + */ + static long identity(long x) { + return x; + } + /** * Identity function, with reference cast. * @param t an arbitrary reference type @@ -553,7 +571,7 @@ public class ValueConversions { return t.cast(x); } - private static final MethodHandle IDENTITY, CAST_REFERENCE, ALWAYS_NULL, ALWAYS_ZERO, ZERO_OBJECT, IGNORE, EMPTY; + private static final MethodHandle IDENTITY, IDENTITY_I, IDENTITY_J, CAST_REFERENCE, ALWAYS_NULL, ALWAYS_ZERO, ZERO_OBJECT, IGNORE, EMPTY; static { try { MethodType idType = MethodType.genericMethodType(1); @@ -562,6 +580,8 @@ public class ValueConversions { MethodType ignoreType = idType.changeReturnType(void.class); MethodType zeroObjectType = MethodType.genericMethodType(0); IDENTITY = IMPL_LOOKUP.findStatic(ValueConversions.class, "identity", idType); + IDENTITY_I = IMPL_LOOKUP.findStatic(ValueConversions.class, "identity", MethodType.methodType(int.class, int.class)); + IDENTITY_J = IMPL_LOOKUP.findStatic(ValueConversions.class, "identity", MethodType.methodType(long.class, long.class)); //CAST_REFERENCE = IMPL_LOOKUP.findVirtual(Class.class, "cast", idType); CAST_REFERENCE = IMPL_LOOKUP.findStatic(ValueConversions.class, "castReference", castType); ALWAYS_NULL = IMPL_LOOKUP.findStatic(ValueConversions.class, "alwaysNull", idType); @@ -613,6 +633,49 @@ public class ValueConversions { return IDENTITY; } + public static MethodHandle identity(Class type) { + if (type == Object.class) + return IDENTITY; + else if (!type.isPrimitive()) + return retype(MethodType.methodType(type, type), IDENTITY); + else + return identity(Wrapper.forPrimitiveType(type)); + } + + static MethodHandle identity(Wrapper wrap) { + EnumMap cache = CONSTANT_FUNCTIONS[1]; + MethodHandle mh = cache.get(wrap); + if (mh != null) { + return mh; + } + // slow path + MethodType type = MethodType.methodType(wrap.primitiveType(), wrap.primitiveType()); + try { + mh = IMPL_LOOKUP.findStatic(ValueConversions.class, "identity", type); + } catch (NoAccessException ex) { + mh = null; + } + if (mh == null && wrap == Wrapper.VOID) { + mh = EMPTY; // #(){} : #()void + } + if (mh != null) { + cache.put(wrap, mh); + return mh; + } + + // use a raw conversion + if (wrap.isSingleWord() && wrap != Wrapper.INT) { + mh = retype(type, identity(Wrapper.INT)); + } else if (wrap.isDoubleWord() && wrap != Wrapper.LONG) { + mh = retype(type, identity(Wrapper.LONG)); + } + if (mh != null) { + cache.put(wrap, mh); + return mh; + } + throw new IllegalArgumentException("cannot find identity for " + wrap); + } + private static MethodHandle retype(MethodType type, MethodHandle mh) { return AdapterMethodHandle.makeRetypeOnly(IMPL_TOKEN, type, mh); } diff --git a/jdk/test/java/dyn/InvokeGenericTest.java b/jdk/test/java/dyn/InvokeGenericTest.java new file mode 100644 index 00000000000..83aa10b0202 --- /dev/null +++ b/jdk/test/java/dyn/InvokeGenericTest.java @@ -0,0 +1,484 @@ +/* + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + * @summary unit tests for java.dyn.MethodHandle.invokeGeneric + * @compile -target 7 InvokeGenericTest.java + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles test.java.dyn.InvokeGenericTest + */ + +package test.java.dyn; + +import java.dyn.*; +import static java.dyn.MethodHandles.*; +import static java.dyn.MethodType.*; +import java.lang.reflect.*; +import java.util.*; +import org.junit.*; +import static org.junit.Assert.*; +import static org.junit.Assume.*; + + +/** + * + * @author jrose + */ +public class InvokeGenericTest { + // How much output? + static int verbosity = 0; + static { + String vstr = System.getProperty("test.java.dyn.InvokeGenericTest.verbosity"); + if (vstr != null) verbosity = Integer.parseInt(vstr); + } + + @Test + public void testFirst() throws Throwable { + verbosity += 9; try { + // left blank for debugging + } finally { printCounts(); verbosity -= 9; } + } + + public InvokeGenericTest() { + } + + @Before + public void checkImplementedPlatform() { + boolean platformOK = false; + Properties properties = System.getProperties(); + String vers = properties.getProperty("java.vm.version"); + String name = properties.getProperty("java.vm.name"); + String arch = properties.getProperty("os.arch"); + if ((arch.equals("amd64") || arch.equals("i386") || arch.equals("x86") || + arch.equals("sparc") || arch.equals("sparcv9")) && + (name.contains("Client") || name.contains("Server")) + ) { + platformOK = true; + } else { + System.err.println("Skipping tests for unsupported platform: "+Arrays.asList(vers, name, arch)); + } + assumeTrue(platformOK); + } + + String testName; + static int allPosTests, allNegTests; + int posTests, negTests; + @After + public void printCounts() { + if (verbosity >= 2 && (posTests | negTests) != 0) { + System.out.println(); + if (posTests != 0) System.out.println("=== "+testName+": "+posTests+" positive test cases run"); + if (negTests != 0) System.out.println("=== "+testName+": "+negTests+" negative test cases run"); + allPosTests += posTests; + allNegTests += negTests; + posTests = negTests = 0; + } + } + void countTest(boolean positive) { + if (positive) ++posTests; + else ++negTests; + } + void countTest() { countTest(true); } + void startTest(String name) { + if (testName != null) printCounts(); + if (verbosity >= 1) + System.out.println(name); + posTests = negTests = 0; + testName = name; + } + + @BeforeClass + public static void setUpClass() throws Exception { + calledLog.clear(); + calledLog.add(null); + nextArgVal = INITIAL_ARG_VAL; + } + + @AfterClass + public static void tearDownClass() throws Exception { + int posTests = allPosTests, negTests = allNegTests; + if (verbosity >= 2 && (posTests | negTests) != 0) { + System.out.println(); + if (posTests != 0) System.out.println("=== "+posTests+" total positive test cases"); + if (negTests != 0) System.out.println("=== "+negTests+" total negative test cases"); + } + } + + static List calledLog = new ArrayList(); + static Object logEntry(String name, Object... args) { + return Arrays.asList(name, Arrays.asList(args)); + } + static Object called(String name, Object... args) { + Object entry = logEntry(name, args); + calledLog.add(entry); + return entry; + } + static void assertCalled(String name, Object... args) { + Object expected = logEntry(name, args); + Object actual = calledLog.get(calledLog.size() - 1); + if (expected.equals(actual) && verbosity < 9) return; + System.out.println("assertCalled "+name+":"); + System.out.println("expected: "+expected); + System.out.println("actual: "+actual); + System.out.println("ex. types: "+getClasses(expected)); + System.out.println("act. types: "+getClasses(actual)); + assertEquals("previous method call", expected, actual); + } + static void printCalled(MethodHandle target, String name, Object... args) { + if (verbosity >= 3) + System.out.println("calling MH="+target+" to "+name+Arrays.toString(args)); + } + + static Object castToWrapper(Object value, Class dst) { + Object wrap = null; + if (value instanceof Number) + wrap = castToWrapperOrNull(((Number)value).longValue(), dst); + if (value instanceof Character) + wrap = castToWrapperOrNull((char)(Character)value, dst); + if (wrap != null) return wrap; + return dst.cast(value); + } + + static Object castToWrapperOrNull(long value, Class dst) { + if (dst == int.class || dst == Integer.class) + return (int)(value); + if (dst == long.class || dst == Long.class) + return (long)(value); + if (dst == char.class || dst == Character.class) + return (char)(value); + if (dst == short.class || dst == Short.class) + return (short)(value); + if (dst == float.class || dst == Float.class) + return (float)(value); + if (dst == double.class || dst == Double.class) + return (double)(value); + if (dst == byte.class || dst == Byte.class) + return (byte)(value); + if (dst == boolean.class || dst == boolean.class) + return ((value % 29) & 1) == 0; + return null; + } + + static final int ONE_MILLION = (1000*1000), // first int value + TEN_BILLION = (10*1000*1000*1000), // scale factor to reach upper 32 bits + INITIAL_ARG_VAL = ONE_MILLION << 1; // <<1 makes space for sign bit; + static long nextArgVal; + static long nextArg(boolean moreBits) { + long val = nextArgVal++; + long sign = -(val & 1); // alternate signs + val >>= 1; + if (moreBits) + // Guarantee some bits in the high word. + // In any case keep the decimal representation simple-looking, + // with lots of zeroes, so as not to make the printed decimal + // strings unnecessarily noisy. + val += (val % ONE_MILLION) * TEN_BILLION; + return val ^ sign; + } + static int nextArg() { + // Produce a 32-bit result something like ONE_MILLION+(smallint). + // Example: 1_000_042. + return (int) nextArg(false); + } + static long nextArg(Class kind) { + if (kind == long.class || kind == Long.class || + kind == double.class || kind == Double.class) + // produce a 64-bit result something like + // ((TEN_BILLION+1) * (ONE_MILLION+(smallint))) + // Example: 10_000_420_001_000_042. + return nextArg(true); + return (long) nextArg(); + } + + static Object randomArg(Class param) { + Object wrap = castToWrapperOrNull(nextArg(param), param); + if (wrap != null) { + return wrap; + } +// import sun.dyn.util.Wrapper; +// Wrapper wrap = Wrapper.forBasicType(dst); +// if (wrap == Wrapper.OBJECT && Wrapper.isWrapperType(dst)) +// wrap = Wrapper.forWrapperType(dst); +// if (wrap != Wrapper.OBJECT) +// return wrap.wrap(nextArg++); + if (param.isInterface()) { + for (Class c : param.getClasses()) { + if (param.isAssignableFrom(c) && !c.isInterface()) + { param = c; break; } + } + } + if (param.isInterface() || param.isAssignableFrom(String.class)) + return "#"+nextArg(); + else + try { + return param.newInstance(); + } catch (InstantiationException ex) { + } catch (IllegalAccessException ex) { + } + return null; // random class not Object, String, Integer, etc. + } + static Object[] randomArgs(Class... params) { + Object[] args = new Object[params.length]; + for (int i = 0; i < args.length; i++) + args[i] = randomArg(params[i]); + return args; + } + static Object[] randomArgs(int nargs, Class param) { + Object[] args = new Object[nargs]; + for (int i = 0; i < args.length; i++) + args[i] = randomArg(param); + return args; + } + + static final Object ANON_OBJ = new Object(); + static Object zeroArg(Class param) { + Object x = castToWrapperOrNull(0L, param); + if (x != null) return x; + if (param.isInterface() || param.isAssignableFrom(String.class)) return "\"\""; + if (param == Object.class) return ANON_OBJ; + if (param.getComponentType() != null) return Array.newInstance(param.getComponentType(), 0); + return null; + } + static Object[] zeroArgs(Class... params) { + Object[] args = new Object[params.length]; + for (int i = 0; i < args.length; i++) + args[i] = zeroArg(params[i]); + return args; + } + static Object[] zeroArgs(List> params) { + return zeroArgs(params.toArray(new Class[0])); + } + + static T[] array(Class atype, E... a) { + return Arrays.copyOf(a, a.length, atype); + } + static T[] cat(T[] a, T... b) { + int alen = a.length, blen = b.length; + if (blen == 0) return a; + T[] c = Arrays.copyOf(a, alen + blen); + System.arraycopy(b, 0, c, alen, blen); + return c; + } + static Integer[] boxAll(int... vx) { + Integer[] res = new Integer[vx.length]; + for (int i = 0; i < res.length; i++) { + res[i] = vx[i]; + } + return res; + } + static Object getClasses(Object x) { + if (x == null) return x; + if (x instanceof String) return x; // keep the name + if (x instanceof List) { + // recursively report classes of the list elements + Object[] xa = ((List)x).toArray(); + for (int i = 0; i < xa.length; i++) + xa[i] = getClasses(xa[i]); + return Arrays.asList(xa); + } + return x.getClass().getSimpleName(); + } + + static MethodHandle changeArgTypes(MethodHandle target, Class argType) { + return changeArgTypes(target, 0, 999, argType); + } + static MethodHandle changeArgTypes(MethodHandle target, + int beg, int end, Class argType) { + MethodType targetType = target.type(); + end = Math.min(end, targetType.parameterCount()); + ArrayList> argTypes = new ArrayList>(targetType.parameterList()); + Collections.fill(argTypes.subList(beg, end), argType); + MethodType ttype2 = MethodType.methodType(targetType.returnType(), argTypes); + return MethodHandles.convertArguments(target, ttype2); + } + + // This lookup is good for all members in and under InvokeGenericTest. + static final Lookup LOOKUP = MethodHandles.lookup(); + + Map>, MethodHandle> CALLABLES = new HashMap>, MethodHandle>(); + MethodHandle callable(List> params) { + MethodHandle mh = CALLABLES.get(params); + if (mh == null) { + mh = collectArguments(collector_MH, methodType(Object.class, params)); + CALLABLES.put(params, mh); + } + return mh; + } + MethodHandle callable(Class... params) { + return callable(Arrays.asList(params)); + } + private static Object collector(Object... args) { + return Arrays.asList(args); + } + private static final MethodHandle collector_MH; + static { + try { + collector_MH + = LOOKUP.findStatic(LOOKUP.lookupClass(), + "collector", + methodType(Object.class, Object[].class)); + } catch (NoAccessException ex) { + throw new RuntimeException(ex); + } + } + + @Test + public void testSimple() throws Throwable { + startTest("testSimple"); + countTest(); + String[] args = { "one", "two" }; + MethodHandle mh = callable(Object.class, String.class); + Object res; List resl; + res = resl = (List) mh.invokeGeneric((String)args[0], (Object)args[1]); + //System.out.println(res); + assertEquals(Arrays.asList(args), res); + } + + @Test + public void testWrongArgumentCount() throws Throwable { + startTest("testWrongArgumentCount"); + for (int i = 0; i <= 10; i++) { + testWrongArgumentCount(Collections.>nCopies(i, Integer.class)); + if (i <= 4) { + testWrongArgumentCount(Collections.>nCopies(i, int.class)); + testWrongArgumentCount(Collections.>nCopies(i, long.class)); + } + } + } + public void testWrongArgumentCount(List> params) throws Throwable { + int max = params.size(); + for (int i = 0; i < max; i++) { + List> params2 = params.subList(0, i); + for (int k = 0; k <= 2; k++) { + if (k == 1) params = methodType(Object.class, params).generic().parameterList(); + if (k == 2) params2 = methodType(Object.class, params2).generic().parameterList(); + testWrongArgumentCount(params, params2); + testWrongArgumentCount(params2, params); + } + } + } + public void testWrongArgumentCount(List> expect, List> observe) throws Throwable { + countTest(false); + if (expect.equals(observe)) + assert(false); + MethodHandle target = callable(expect); + Object[] args = zeroArgs(observe); + Object junk; + try { + switch (args.length) { + case 0: + junk = target.invokeGeneric(); break; + case 1: + junk = target.invokeGeneric(args[0]); break; + case 2: + junk = target.invokeGeneric(args[0], args[1]); break; + case 3: + junk = target.invokeGeneric(args[0], args[1], args[2]); break; + case 4: + junk = target.invokeGeneric(args[0], args[1], args[2], args[3]); break; + default: + junk = MethodHandles.invokeVarargs(target, args); break; + } + } catch (WrongMethodTypeException ex) { + return; + } catch (Exception ex) { + throw new RuntimeException("wrong exception calling "+target+target.type()+" on "+Arrays.asList(args)+" : "+ex); + } + throw new RuntimeException("bad success calling "+target+target.type()+" on "+Arrays.asList(args)); + } + + /** Make a list of all combinations of the given types, with the given arities. + * A void return type is possible iff the first type is void.class. + */ + static List allMethodTypes(int minargc, int maxargc, Class... types) { + ArrayList result = new ArrayList(); + if (types.length > 0) { + ArrayList argcTypes = new ArrayList(); + // build arity-zero types first + for (Class rtype : types) { + argcTypes.add(MethodType.methodType(rtype)); + } + if (types[0] == void.class) + // void is not an argument type + types = Arrays.copyOfRange(types, 1, types.length); + for (int argc = 0; argc <= maxargc; argc++) { + if (argc >= minargc) + result.addAll(argcTypes); + if (argc >= maxargc) + break; + ArrayList prevTypes = argcTypes; + argcTypes = new ArrayList(); + for (MethodType prevType : prevTypes) { + for (Class ptype : types) { + argcTypes.add(prevType.insertParameterTypes(argc, ptype)); + } + } + } + } + return Collections.unmodifiableList(result); + } + static List allMethodTypes(int argc, Class... types) { + return allMethodTypes(argc, argc, types); + } + + interface RandomInterface { } + + MethodHandle toString_MH; + + @Test + public void testReferenceConversions() throws Throwable { + startTest("testReferenceConversions"); + toString_MH = LOOKUP. + findVirtual(Object.class, "toString", MethodType.methodType(String.class)); + String[] args = { "one", "two" }; + for (MethodType type : allMethodTypes(2, Object.class, String.class, RandomInterface.class)) { + testReferenceConversions(type, args); + } + } + public void testReferenceConversions(MethodType type, Object... args) throws Throwable { + countTest(); + if (verbosity > 3) System.out.println("target type: "+type); + MethodHandle mh = callable(type.parameterList()); + MethodHandle tsdrop = MethodHandles.dropArguments(toString_MH, 1, type.parameterList()); + mh = MethodHandles.foldArguments(tsdrop, mh); + mh = mh.asType(type); + Object res = mh.invokeGeneric((String)args[0], (Object)args[1]); + //System.out.println(res); + assertEquals(Arrays.asList(args).toString(), res); + } + + + @Test @Ignore("known failure pending 6939861") + public void testBoxConversions() throws Throwable { + startTest("testBoxConversions"); + countTest(); + Integer[] args = { 1, 2 }; + MethodHandle mh = callable(Object.class, int.class); + Object res; List resl; + res = resl = (List) mh.invokeGeneric((int)args[0], (Object)args[1]); + //System.out.println(res); + assertEquals(Arrays.asList(args), res); + } + +} diff --git a/jdk/test/java/dyn/MethodHandlesTest.java b/jdk/test/java/dyn/MethodHandlesTest.java index 62b0c903269..6986390c72e 100644 --- a/jdk/test/java/dyn/MethodHandlesTest.java +++ b/jdk/test/java/dyn/MethodHandlesTest.java @@ -1472,7 +1472,7 @@ public class MethodHandlesTest { if (pos != 0) return; // can fold only at pos=0 for now countTest(); MethodHandle target = ValueConversions.varargsList(1 + nargs); - MethodHandle combine = ValueConversions.varargsList(fold); + MethodHandle combine = ValueConversions.varargsList(fold).asType(MethodType.genericMethodType(fold)); List argsToPass = Arrays.asList(randomArgs(nargs, Object.class)); if (verbosity >= 3) System.out.println("fold "+target+" with "+combine); -- GitLab From 4f508abf4971a7bc1f87d0f01f929f153872e9e0 Mon Sep 17 00:00:00 2001 From: John R Rose Date: Sat, 30 Oct 2010 21:08:23 -0700 Subject: [PATCH 009/158] 6981777: implement JSR 292 EG adjustments from summer 2010 Reviewed-by: twisti --- .../classes/java/dyn/BootstrapMethod.java | 82 --- jdk/src/share/classes/java/dyn/CallSite.java | 238 +++--- .../classes/java/dyn/ConstantCallSite.java | 8 +- .../share/classes/java/dyn/InvokeDynamic.java | 80 -- jdk/src/share/classes/java/dyn/Linkage.java | 142 +--- .../classes/java/dyn/LinkagePermission.java | 102 --- .../share/classes/java/dyn/MethodHandle.java | 408 +++++++---- .../java/dyn/MethodHandleProvider.java | 80 -- .../share/classes/java/dyn/MethodHandles.java | 686 +++++++++++------- .../share/classes/java/dyn/MethodType.java | 72 +- .../classes/java/dyn/VolatileCallSite.java | 144 ++++ .../share/classes/java/dyn/package-info.java | 289 +++++--- .../classes/sun/dyn/AdapterMethodHandle.java | 2 +- .../classes/sun/dyn/BoundMethodHandle.java | 24 +- .../share/classes/sun/dyn/CallSiteImpl.java | 48 +- .../share/classes/sun/dyn/FilterGeneric.java | 8 +- .../classes/sun/dyn/FilterOneArgument.java | 4 +- .../share/classes/sun/dyn/FromGeneric.java | 6 +- jdk/src/share/classes/sun/dyn/Invokers.java | 33 + .../classes/sun/dyn/JavaMethodHandle.java | 172 ----- .../classes/sun/dyn/MethodHandleImpl.java | 41 +- .../share/classes/sun/dyn/SpreadGeneric.java | 8 +- jdk/src/share/classes/sun/dyn/ToGeneric.java | 8 +- .../sun/dyn/util/ValueConversions.java | 6 +- .../classes/sun/dyn/util/VerifyAccess.java | 27 +- .../share/classes/sun/dyn/util/Wrapper.java | 91 ++- jdk/test/java/dyn/InvokeGenericTest.java | 2 +- ...Examples.java => JavaDocExamplesTest.java} | 86 ++- jdk/test/java/dyn/MethodHandlesTest.java | 145 ++-- 29 files changed, 1571 insertions(+), 1471 deletions(-) delete mode 100644 jdk/src/share/classes/java/dyn/BootstrapMethod.java delete mode 100644 jdk/src/share/classes/java/dyn/InvokeDynamic.java delete mode 100644 jdk/src/share/classes/java/dyn/LinkagePermission.java delete mode 100644 jdk/src/share/classes/java/dyn/MethodHandleProvider.java create mode 100644 jdk/src/share/classes/java/dyn/VolatileCallSite.java delete mode 100644 jdk/src/share/classes/sun/dyn/JavaMethodHandle.java rename jdk/test/java/dyn/{JavaDocExamples.java => JavaDocExamplesTest.java} (57%) diff --git a/jdk/src/share/classes/java/dyn/BootstrapMethod.java b/jdk/src/share/classes/java/dyn/BootstrapMethod.java deleted file mode 100644 index a5c41b4854b..00000000000 --- a/jdk/src/share/classes/java/dyn/BootstrapMethod.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import java.lang.annotation.*; - -/** - * Annotation on InvokeDynamic method calls which requests the JVM to use a specific - * bootstrap method - * to link the call. This annotation is not retained as such in the class file, - * but is transformed into a constant-pool entry for the invokedynamic instruction which - * specifies the desired bootstrap method. - *

- * If only the value is given, it must name a subclass of {@link CallSite} - * with a constructor which accepts a class, string, and method type. - * If the value and name are both given, there must be - * a static method in the given class of the given name which accepts a class, string, - * and method type, and returns a reference coercible to {@link CallSite}. - *

- * This annotation can be placed either on the return type of a single {@link InvokeDynamic} - * call (see examples) or else it can be placed on an enclosing class or method, where it - * determines a default bootstrap method for any {@link InvokeDynamic} calls which are not - * specifically annotated with a bootstrap method. - * Every {@link InvokeDynamic} call must be given a bootstrap method. - *

- * Examples: -

-@BootstrapMethod(value=MyLanguageRuntime.class, name="bootstrapDynamic")
-String x = (String) InvokeDynamic.greet();
-//BSM => MyLanguageRuntime.bootstrapDynamic(Here.class, "greet", methodType(String.class))
-@BootstrapMethod(MyCallSite.class)
-void example() throws Throwable {
-    InvokeDynamic.greet();
-    //BSM => new MyCallSite(Here.class, "greet", methodType(void.class))
-}
-
- *

- */ -@Target({ElementType.TYPE_USE, - // For defaulting every indy site within a class or method; cf. @SuppressWarnings: - ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR - }) -@Retention(RetentionPolicy.SOURCE) -public @interface BootstrapMethod { - /** The class containing the bootstrap method. */ - Class value(); - - /** The name of the bootstrap method. - * If this is the empty string, an instance of the bootstrap class is created, - * and a constructor is invoked. - * Otherwise, there must be a static method of the required name. - */ - String name() default ""; // empty string denotes a constructor with 'new' - - /** The argument types of the bootstrap method, as passed out by the JVM. - * There is usually no reason to override the default. - */ - Class[] arguments() default {Class.class, String.class, MethodType.class}; -} diff --git a/jdk/src/share/classes/java/dyn/CallSite.java b/jdk/src/share/classes/java/dyn/CallSite.java index 7c4ed52ea68..7cec9bc290b 100644 --- a/jdk/src/share/classes/java/dyn/CallSite.java +++ b/jdk/src/share/classes/java/dyn/CallSite.java @@ -26,40 +26,34 @@ package java.dyn; import sun.dyn.*; +import sun.dyn.empty.Empty; +import sun.misc.Unsafe; import java.util.Collection; /** * A {@code CallSite} is a holder for a variable {@link MethodHandle}, * which is called its {@code target}. - * Every call to a {@code CallSite} is delegated to the site's current target. + * An {@code invokedynamic} instruction linked to a {@code CallSite} delegates + * all calls to the site's current target. *

- * A call site is initially created in an unlinked state, - * which is distinguished by a null target variable. - * Before the call site may be invoked (and before certain other - * operations are attempted), the call site must be linked to - * a non-null target. + * If a mutable target is not required, the {@code invokedynamic} instruction + * should be linked to a {@linkplain ConstantCallSite constant call site}. + * If a volatile target is required, because updates to the target must be + * reliably witnessed by other threads, the {@code invokedynamic} instruction + * should be linked to a {@linkplain VolatileCallSite volatile call site}. *

* A call site may be relinked by changing its target. - * The new target must be non-null and must have the same - * {@linkplain MethodHandle#type() type} + * The new target must have the same {@linkplain MethodHandle#type() type} * as the previous target. * Thus, though a call site can be relinked to a series of * successive targets, it cannot change its type. *

- * Linkage happens once in the lifetime of any given {@code CallSite} object. - * Because of call site invalidation, this linkage can be repeated for - * a single {@code invokedynamic} instruction, with multiple {@code CallSite} objects. - * When a {@code CallSite} is unlinked from an {@code invokedynamic} instruction, - * the instruction is reset so that it is no longer associated with - * the {@code CallSite} object, but the {@code CallSite} does not change - * state. - *

* Here is a sample use of call sites and bootstrap methods which links every * dynamic call site to print its arguments:


-@BootstrapMethod(value=PrintArgsDemo.class, name="bootstrapDynamic")
 static void test() throws Throwable {
-    InvokeDynamic.baz("baz arg", 2, 3.14);
+    // THE FOLLOWING LINE IS PSEUDOCODE FOR A JVM INSTRUCTION
+    InvokeDynamic[#bootstrapDynamic].baz("baz arg", 2, 3.14);
 }
 private static void printArgs(Object... args) {
   System.out.println(java.util.Arrays.deepToString(args));
@@ -71,16 +65,14 @@ static {
   printArgs = lookup.findStatic(thisClass,
       "printArgs", MethodType.methodType(void.class, Object[].class));
 }
-private static CallSite bootstrapDynamic(Class caller, String name, MethodType type) {
+private static CallSite bootstrapDynamic(MethodHandles.Lookup caller, String name, MethodType type) {
   // ignore caller and name, but match the type:
-  return new CallSite(MethodHandles.collectArguments(printArgs, type));
+  return new ConstantCallSite(MethodHandles.collectArguments(printArgs, type));
 }
 
* @author John Rose, JSR 292 EG */ -public class CallSite - implements MethodHandleProvider -{ +public class CallSite { private static final Access IMPL_TOKEN = Access.getToken(); // Fields used only by the JVM. Do not use or change. @@ -88,61 +80,44 @@ public class CallSite private int vmindex; // supplied by the JVM (BCI within calling method) // The actual payload of this call site: - private MethodHandle target; + /*package-private*/ + MethodHandle target; // Remove this field for PFD and delete deprecated methods: private MemberName calleeNameRemoveForPFD; /** - * Make a blank call site object. - * Before it is returned from a bootstrap method, this {@code CallSite} object - * must be provided with - * a target method via a call to {@link CallSite#setTarget(MethodHandle) setTarget}, - * or by a subclass override of {@link CallSite#initialTarget(Class,String,MethodType) initialTarget}. + * PROVISIONAL API, WORK IN PROGRESS: + * Make a blank call site object with the given method type. + * An initial target method is supplied which will throw + * an {@link IllegalStateException} if called. + *

+ * Before this {@code CallSite} object is returned from a bootstrap method, + * it is usually provided with a more useful target method, + * via a call to {@link CallSite#setTarget(MethodHandle) setTarget}. */ - public CallSite() { + public CallSite(MethodType type) { + target = MethodHandles.invokers(type).uninitializedCallSite(); } /** * Make a blank call site object, possibly equipped with an initial target method handle. - * The initial target reference may be null, in which case the {@code CallSite} object - * must be provided with a target method via a call to {@link CallSite#setTarget}, - * or by a subclass override of {@link CallSite#initialTarget}. - * @param target the method handle which will be the initial target of the call site, or null if there is none yet + * @param target the method handle which will be the initial target of the call site */ public CallSite(MethodHandle target) { + target.type(); // null check this.target = target; } - /** @deprecated transitional form defined in EDR but removed in PFD */ - public CallSite(Class caller, String name, MethodType type) { - this.calleeNameRemoveForPFD = new MemberName(caller, name, type); - } - /** @deprecated transitional form defined in EDR but removed in PFD */ - public Class callerClass() { - MemberName callee = this.calleeNameRemoveForPFD; - return callee == null ? null : callee.getDeclaringClass(); - } - /** @deprecated transitional form defined in EDR but removed in PFD */ - public String name() { - MemberName callee = this.calleeNameRemoveForPFD; - return callee == null ? null : callee.getName(); - } - /** @deprecated transitional form defined in EDR but removed in PFD */ - public MethodType type() { - MemberName callee = this.calleeNameRemoveForPFD; - return callee == null ? (target == null ? null : target.type()) : callee.getMethodType(); - } - /** @deprecated transitional form defined in EDR but removed in PFD */ - protected MethodHandle initialTarget() { - return initialTarget(callerClass(), name(), type()); - } - - /** Report if the JVM has linked this {@code CallSite} object to a dynamic call site instruction. - * Once it is linked, it is never unlinked. + /** + * Report the type of this call site's target. + * Although targets may change, the call site's type can never change. + * The {@code setTarget} method enforces this invariant by refusing any new target that does + * not have the previous target's type. + * @return the type of the current target, which is also the type of any future target */ - private boolean isLinked() { - return vmmethod != null; + public MethodType type() { + return target.type(); } /** Called from JVM (or low-level Java code) after the BSM returns the newly created CallSite. @@ -152,68 +127,66 @@ public class CallSite MethodType type, MemberName callerMethod, int callerBCI) { - if (this.isLinked()) { + if (this.vmmethod != null) { + // FIXME throw new InvokeDynamicBootstrapError("call site has already been linked to an invokedynamic instruction"); } - MethodHandle target = this.target; - if (target == null) { - this.target = target = this.initialTarget(callerMethod.getDeclaringClass(), name, type); - } - if (!target.type().equals(type)) { + if (!this.type().equals(type)) { throw wrongTargetType(target, type); } this.vmindex = callerBCI; this.vmmethod = callerMethod; - assert(this.isLinked()); } /** - * Just after a call site is created by a bootstrap method handle, - * if the target has not been initialized by the factory method itself, - * the method {@code initialTarget} is called to produce an initial - * non-null target. (Live call sites must never have null targets.) - *

- * The arguments are the same as those passed to the bootstrap method. - * Thus, a bootstrap method is free to ignore the arguments and simply - * create a "blank" {@code CallSite} object of an appropriate subclass. + * Report the current linkage state of the call site, a value which may change over time. *

- * If the bootstrap method itself does not initialize the call site, - * this method must be overridden, because it just raises an - * {@code InvokeDynamicBootstrapError}, which in turn causes the - * linkage of the {@code invokedynamic} instruction to terminate - * abnormally. - * @deprecated transitional form defined in EDR but removed in PFD - */ - protected MethodHandle initialTarget(Class callerClass, String name, MethodType type) { - throw new InvokeDynamicBootstrapError("target must be initialized before call site is linked: "+name+type); - } - - /** - * Report the current linkage state of the call site. (This is mutable.) - * The value may not be null after the {@code CallSite} object is returned - * from the bootstrap method of the {@code invokedynamic} instruction. - * When an {@code invokedynamic} instruction is executed, the target method - * of its associated {@code call site} object is invoked directly, - * as if via {@link MethodHandle}{@code .invoke}. + * If a {@code CallSite} object is returned + * from the bootstrap method of the {@code invokedynamic} instruction, + * the {@code CallSite} is permanently bound to that instruction. + * When the {@code invokedynamic} instruction is executed, the target method + * of its associated call site object is invoked directly. + * It is as if the instruction calls {@code getTarget} and then + * calls {@link MethodHandle#invokeExact invokeExact} on the result. *

- * The interactions of {@code getTarget} with memory are the same + * Unless specified differently by a subclass, + * the interactions of {@code getTarget} with memory are the same * as of a read from an ordinary variable, such as an array element or a * non-volatile, non-final field. *

* In particular, the current thread may choose to reuse the result * of a previous read of the target from memory, and may fail to see * a recent update to the target by another thread. - * @return the current linkage state of the call site + *

+ * In a {@linkplain ConstantCallSite constant call site}, the {@code getTarget} method behaves + * like a read from a {@code final} field of the {@code CallSite}. + *

+ * In a {@linkplain VolatileCallSite volatile call site}, the {@code getTarget} method behaves + * like a read from a {@code volatile} field of the {@code CallSite}. + *

+ * This method may not be overridden by application code. + * @return the current linkage state of the call site, its target method handle + * @see ConstantCallSite + * @see VolatileCallSite * @see #setTarget */ - public MethodHandle getTarget() { + public final MethodHandle getTarget() { + return getTarget0(); + } + + /** + * Privileged implementations can override this to force final or volatile semantics on getTarget. + */ + /*package-private*/ + MethodHandle getTarget0() { return target; } /** * Set the target method of this call site. *

- * The interactions of {@code setTarget} with memory are the same + * Unless a subclass of CallSite documents otherwise, + * the interactions of {@code setTarget} with memory are the same * as of a write to an ordinary variable, such as an array element or a * non-volatile, non-final field. *

@@ -224,27 +197,23 @@ public class CallSite * at any given call site. * @param newTarget the new target * @throws NullPointerException if the proposed new target is null - * @throws WrongMethodTypeException if the call site is linked and the proposed new target + * @throws WrongMethodTypeException if the proposed new target * has a method type that differs from the previous target */ public void setTarget(MethodHandle newTarget) { - MethodType newType = newTarget.type(); // null check! - MethodHandle oldTarget = this.target; - if (oldTarget == null) { - // CallSite is not yet linked. - assert(!isLinked()); - this.target = newTarget; // might be null! - return; - } + checkTargetChange(this.target, newTarget); + setTargetNormal(newTarget); + } + + void checkTargetChange(MethodHandle oldTarget, MethodHandle newTarget) { MethodType oldType = oldTarget.type(); - if (!newTarget.type().equals(oldType)) + MethodType newType = newTarget.type(); // null check! + if (!newType.equals(oldType)) throw wrongTargetType(newTarget, oldType); - if (oldTarget != newTarget) - CallSiteImpl.setCallSiteTarget(IMPL_TOKEN, this, newTarget); } private static WrongMethodTypeException wrongTargetType(MethodHandle target, MethodType type) { - return new WrongMethodTypeException(String.valueOf(target)+target.type()+" should be of type "+type); + return new WrongMethodTypeException(String.valueOf(target)+" should be of type "+type); } /** Produce a printed representation that displays information about this call site @@ -252,15 +221,14 @@ public class CallSite */ @Override public String toString() { - return "CallSite"+(target == null ? "" : target.type()); + return super.toString() + type(); } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle equivalent to an invokedynamic instruction * which has been linked to this call site. - *

If this call site is a {@link ConstantCallSite}, this method - * simply returns the call site's target, since that will not change. + *

If this call site is a {@linkplain ConstantCallSite constant call site}, + * this method simply returns the call site's target, since that will never change. *

Otherwise, this method is equivalent to the following code: *

      * MethodHandle getTarget, invoker, result;
@@ -271,8 +239,9 @@ public class CallSite
      * @return a method handle which always invokes this call site's current target
      */
     public final MethodHandle dynamicInvoker() {
-        if (this instanceof ConstantCallSite)
-            return getTarget();  // will not change dynamically
+        if (this instanceof ConstantCallSite) {
+            return target;  // will not change dynamically
+        }
         MethodHandle getTarget = MethodHandleImpl.bindReceiver(IMPL_TOKEN, GET_TARGET, this);
         MethodHandle invoker = MethodHandles.exactInvoker(this.type());
         return MethodHandles.foldArguments(invoker, getTarget);
@@ -287,9 +256,34 @@ public class CallSite
         }
     }
 
-    /** Implementation of {@link MethodHandleProvider} which returns {@code this.dynamicInvoker()}. */
-    public final MethodHandle asMethodHandle() { return dynamicInvoker(); }
+    /** This guy is rolled into the default target if a MethodType is supplied to the constructor. */
+    /*package-private*/
+    static Empty uninitializedCallSite() {
+        throw new IllegalStateException("uninitialized call site");
+    }
+
+    // unsafe stuff:
+    private static final Unsafe unsafe = Unsafe.getUnsafe();
+    private static final long TARGET_OFFSET;
+
+    static {
+        try {
+            TARGET_OFFSET = unsafe.objectFieldOffset(CallSite.class.getDeclaredField("target"));
+        } catch (Exception ex) { throw new Error(ex); }
+    }
 
-    /** Implementation of {@link MethodHandleProvider}, which returns {@code this.dynamicInvoker().asType(type)}. */
-    public final MethodHandle asMethodHandle(MethodType type) { return dynamicInvoker().asType(type); }
+    /*package-private*/
+    void setTargetNormal(MethodHandle newTarget) {
+        target = newTarget;
+        //CallSiteImpl.setCallSiteTarget(IMPL_TOKEN, this, newTarget);
+    }
+    /*package-private*/
+    MethodHandle getTargetVolatile() {
+        return (MethodHandle) unsafe.getObjectVolatile(this, TARGET_OFFSET);
+    }
+    /*package-private*/
+    void setTargetVolatile(MethodHandle newTarget) {
+        unsafe.putObjectVolatile(this, TARGET_OFFSET, newTarget);
+        //CallSiteImpl.setCallSiteTarget(IMPL_TOKEN, this, newTarget);
+    }
 }
diff --git a/jdk/src/share/classes/java/dyn/ConstantCallSite.java b/jdk/src/share/classes/java/dyn/ConstantCallSite.java
index e03fa8d3368..24e623b6c53 100644
--- a/jdk/src/share/classes/java/dyn/ConstantCallSite.java
+++ b/jdk/src/share/classes/java/dyn/ConstantCallSite.java
@@ -27,8 +27,8 @@ package java.dyn;
 
 /**
  * A {@code ConstantCallSite} is a {@link CallSite} whose target is permanent, and can never be changed.
- * The only way to relink an {@code invokedynamic} instruction bound to a {@code ConstantCallSite} is
- * to invalidate the instruction as a whole.
+ * An {@code invokedynamic} instruction linked to a {@code ConstantCallSite} is permanently
+ * bound to the call site's target.
  * @author John Rose, JSR 292 EG
  */
 public class ConstantCallSite extends CallSite {
@@ -36,7 +36,9 @@ public class ConstantCallSite extends CallSite {
     public ConstantCallSite(MethodHandle target) {
         super(target);
     }
-    /** Throw an {@link IllegalArgumentException}, because this kind of call site cannot change its target. */
+    /**
+     * Throw an {@link IllegalArgumentException}, because this kind of call site cannot change its target.
+     */
     @Override public final void setTarget(MethodHandle ignore) {
         throw new IllegalArgumentException("ConstantCallSite");
     }
diff --git a/jdk/src/share/classes/java/dyn/InvokeDynamic.java b/jdk/src/share/classes/java/dyn/InvokeDynamic.java
deleted file mode 100644
index 4406363a990..00000000000
--- a/jdk/src/share/classes/java/dyn/InvokeDynamic.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package java.dyn;
-
-/**
- * {@code InvokeDynamic} is a class with neither methods nor instances,
- * which serves only as a syntactic marker in Java source code for
- * an {@code invokedynamic} instruction.
- * (See the package information for specifics on this instruction.)
- * 

- * The {@code invokedynamic} instruction is incomplete without a target method. - * The target method is a property of the reified {@linkplain CallSite call site object} - * which is linked to each active {@code invokedynamic} instruction. - * The call site object is initially produced by a - * {@linkplain BootstrapMethod bootstrap method} - * associated with the class whose bytecodes include the dynamic call site. - *

- * The type {@code InvokeDynamic} has no particular meaning as a - * class or interface supertype, or an object type; it can never be instantiated. - * Logically, it denotes a source of all dynamically typed methods. - * It may be viewed as a pure syntactic marker of static calls. - * It may be imported for ease of use. - *

- * Here are some examples: -


-@BootstrapMethod(value=Here.class, name="bootstrapDynamic")
-static void example() throws Throwable {
-    Object x; String s; int i;
-    x = InvokeDynamic.greet("world"); // greet(Ljava/lang/String;)Ljava/lang/Object;
-    s = (String) InvokeDynamic.hail(x); // hail(Ljava/lang/Object;)Ljava/lang/String;
-    InvokeDynamic.cogito(); // cogito()V
-    i = (int) InvokeDynamic.#"op:+"(2, 3); // "op:+"(II)I
-}
-static MethodHandle bootstrapDynamic(Class caller, String name, MethodType type) { ... }
-
- * Each of the above calls generates a single invokedynamic instruction - * with the name-and-type descriptors indicated in the comments. - *

- * The argument types are taken directly from the actual arguments, - * while the return type corresponds to the target of the assignment. - * (Currently, the return type must be given as a false type parameter. - * This type parameter is an irregular use of the generic type syntax, - * and is likely to change in favor of a convention based on target typing.) - *

- * The final example uses a special syntax for uttering non-Java names. - * Any name legal to the JVM may be given between the double quotes. - *

- * None of these calls is complete without a bootstrap method, - * which must be declared for the enclosing class or method. - * @author John Rose, JSR 292 EG - */ -@MethodHandle.PolymorphicSignature -public final class InvokeDynamic { - private InvokeDynamic() { throw new InternalError(); } // do not instantiate - - // no statically defined static methods -} diff --git a/jdk/src/share/classes/java/dyn/Linkage.java b/jdk/src/share/classes/java/dyn/Linkage.java index 98eedbbabfb..76abe2430a3 100644 --- a/jdk/src/share/classes/java/dyn/Linkage.java +++ b/jdk/src/share/classes/java/dyn/Linkage.java @@ -29,15 +29,16 @@ import java.dyn.MethodHandles.Lookup; import java.util.WeakHashMap; import sun.dyn.Access; import sun.dyn.MethodHandleImpl; +import sun.dyn.util.VerifyAccess; import sun.reflect.Reflection; -import static sun.dyn.util.VerifyAccess.checkBootstrapPrivilege; import static sun.dyn.MemberName.newIllegalArgumentException; /** - * This class consists exclusively of static methods that control - * the linkage of {@code invokedynamic} instructions, and specifically - * their reification as {@link CallSite} objects. + * CLASS WILL BE REMOVED FOR PFD: + * Static routines for controlling invokedynamic behavior. + * Replaced by non-static APIs. * @author John Rose, JSR 292 EG + * @deprecated This class will be removed in the Public Final Draft. */ public class Linkage { private static final Access IMPL_TOKEN = Access.getToken(); @@ -45,68 +46,24 @@ public class Linkage { private Linkage() {} // do not instantiate /** - * PROVISIONAL API, WORK IN PROGRESS: + * METHOD WILL BE REMOVED FOR PFD: * Register a bootstrap method to use when linking dynamic call sites within * a given caller class. - *

- * A bootstrap method must be a method handle with a return type of {@link CallSite} - * and the following arguments: - *

    - *
  • the class containing the {@code invokedynamic} instruction, for which the bootstrap method was registered - *
  • the name of the method being invoked (a {@link String}) - *
  • the type of the method being invoked (a {@link MethodType}) - *
- * The bootstrap method acts as a factory method which accepts the given arguments - * and returns a {@code CallSite} object (possibly of a subclass of {@code CallSite}). - *

- * The registration must take place exactly once, either before the class has begun - * being initialized, or from within the class's static initializer. - * Registration will fail with an exception if any of the following conditions hold: - *

    - *
  • The immediate caller of this method is in a different package than the given caller class, - * and there is a security manager, and its {@code checkPermission} call throws - * when passed {@link LinkagePermission}("registerBootstrapMethod",callerClass). - *
  • The given caller class already has a bootstrap method registered. - *
  • The given caller class is already fully initialized. - *
  • The given caller class is in the process of initialization, in another thread. - *
- * Because of these rules, a class may install its own bootstrap method in - * a static initializer. - * @param callerClass a class that may have {@code invokedynamic} sites - * @param bootstrapMethod the method to use to bootstrap all such sites - * @exception IllegalArgumentException if the class argument is null or - * a primitive class, or if the bootstrap method is the wrong type - * @exception IllegalStateException if the class already has a bootstrap - * method, or if the its static initializer has already run - * or is already running in another thread - * @exception SecurityException if there is a security manager installed, - * and a {@link LinkagePermission} check fails for "registerBootstrapMethod" - * @deprecated Use @{@link BootstrapMethod} annotations instead + * @deprecated Use @{@link BootstrapMethod} annotations instead. */ public static void registerBootstrapMethod(Class callerClass, MethodHandle bootstrapMethod) { Class callc = Reflection.getCallerClass(2); - checkBootstrapPrivilege(callc, callerClass, "registerBootstrapMethod"); - checkBSM(bootstrapMethod); + if (callc != null && !VerifyAccess.isSamePackage(callerClass, callc)) + throw new IllegalArgumentException("cannot set bootstrap method on "+callerClass); MethodHandleImpl.registerBootstrap(IMPL_TOKEN, callerClass, bootstrapMethod); } - static private void checkBSM(MethodHandle mh) { - if (mh == null) throw newIllegalArgumentException("null bootstrap method"); - if (mh.type() == BOOTSTRAP_METHOD_TYPE) return; - throw new WrongMethodTypeException(mh.toString()); - } - /** - * PROVISIONAL API, WORK IN PROGRESS: + * METHOD WILL BE REMOVED FOR PFD: * Simplified version of {@code registerBootstrapMethod} for self-registration, * to be called from a static initializer. - * Finds a static method of the required type in the - * given runtime class, and installs it on the caller class. - * @throws NoSuchMethodException if there is no such method - * @throws IllegalStateException if the caller class's static initializer - * has already run, or is already running in another thread - * @deprecated Use @{@link BootstrapMethod} annotations instead + * @deprecated Use @{@link BootstrapMethod} annotations instead. */ public static void registerBootstrapMethod(Class runtime, String name) { @@ -115,15 +72,9 @@ public class Linkage { } /** - * PROVISIONAL API, WORK IN PROGRESS: + * METHOD WILL BE REMOVED FOR PFD: * Simplified version of {@code registerBootstrapMethod} for self-registration, - * to be called from a static initializer. - * Finds a static method of the required type in the - * caller class itself, and installs it on the caller class. - * @throws IllegalArgumentException if there is no such method - * @throws IllegalStateException if the caller class's static initializer - * has already run, or is already running in another thread - * @deprecated Use @{@link BootstrapMethod} annotations instead + * @deprecated Use @{@link BootstrapMethod} annotations instead. */ public static void registerBootstrapMethod(String name) { @@ -140,82 +91,33 @@ public class Linkage { } catch (NoAccessException ex) { throw new IllegalArgumentException("no such bootstrap method in "+runtime+": "+name, ex); } - checkBSM(bootstrapMethod); MethodHandleImpl.registerBootstrap(IMPL_TOKEN, callerClass, bootstrapMethod); } - /** - * PROVISIONAL API, WORK IN PROGRESS: - * Report the bootstrap method registered for a given caller class. - * Returns null if the class has never yet registered a bootstrap method. - * Only callers privileged to set the bootstrap method may inquire - * about it, because a bootstrap method is potentially a back-door entry - * point into its class. - * @exception IllegalArgumentException if the argument is null or - * a primitive class - * @exception SecurityException if there is a security manager installed, - * and the immediate caller of this method is not in the same - * package as the caller class - * and a {@link LinkagePermission} check fails for "getBootstrapMethod" - * @deprecated - */ - public static - MethodHandle getBootstrapMethod(Class callerClass) { - Class callc = Reflection.getCallerClass(2); - checkBootstrapPrivilege(callc, callerClass, "getBootstrapMethod"); - return MethodHandleImpl.getBootstrap(IMPL_TOKEN, callerClass); - } - - /** - * PROVISIONAL API, WORK IN PROGRESS: - * The type of any bootstrap method is a three-argument method - * {@code (Class, String, MethodType)} returning a {@code CallSite}. - */ - public static final MethodType BOOTSTRAP_METHOD_TYPE + private static final MethodType BOOTSTRAP_METHOD_TYPE = MethodType.methodType(CallSite.class, Class.class, String.class, MethodType.class); /** - * PROVISIONAL API, WORK IN PROGRESS: + * METHOD WILL BE REMOVED FOR PFD: * Invalidate all invokedynamic call sites everywhere. - *

- * When this method returns, every invokedynamic instruction - * will invoke its bootstrap method on next call. - *

- * It is unspecified whether call sites already known to the Java - * code will continue to be associated with invokedynamic - * instructions. If any call site is still so associated, its - * {@link CallSite#getTarget()} method is guaranteed to return null - * the invalidation operation completes. - *

- * Invalidation operations are likely to be slow. Use them sparingly. + * @deprecated Use {@linkplain CallSite#setTarget call site target setting} + * and {@link VolatileCallSite#invalidateAll call site invalidation} instead. */ public static Object invalidateAll() { - SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkPermission(new LinkagePermission("invalidateAll")); - } - throw new UnsupportedOperationException("NYI"); + throw new UnsupportedOperationException(); } /** - * PROVISIONAL API, WORK IN PROGRESS: + * METHOD WILL BE REMOVED FOR PFD: * Invalidate all {@code invokedynamic} call sites in the bytecodes * of any methods of the given class. - *

- * When this method returns, every matching invokedynamic - * instruction will invoke its bootstrap method on next call. - *

- * For additional semantics of call site invalidation, - * see {@link #invalidateAll()}. + * @deprecated Use {@linkplain CallSite#setTarget call site target setting} + * and {@link VolatileCallSite#invalidateAll call site invalidation} instead. */ public static Object invalidateCallerClass(Class callerClass) { - SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkPermission(new LinkagePermission("invalidateAll", callerClass)); - } - throw new UnsupportedOperationException("NYI"); + throw new UnsupportedOperationException(); } } diff --git a/jdk/src/share/classes/java/dyn/LinkagePermission.java b/jdk/src/share/classes/java/dyn/LinkagePermission.java deleted file mode 100644 index 9f1c35e85e0..00000000000 --- a/jdk/src/share/classes/java/dyn/LinkagePermission.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -import java.security.*; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.StringTokenizer; - -/** - * PROVISIONAL API, WORK IN PROGRESS: - * This class is for managing runtime permission checking for - * operations performed by methods in the {@link Linkage} class. - * Like a {@link RuntimePermission}, on which it is modeled, - * a {@code LinkagePermission} contains a target name but - * no actions list; you either have the named permission - * or you don't. - *

- * The following table lists all the possible {@code LinkagePermission} target names, - * and for each provides a description of what the permission allows - * and a discussion of the risks of granting code the permission. - *

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Permission Target NameWhat the Permission AllowsRisks of Allowing this Permission
invalidateAllForce the relinking of invokedynamic call sites everywhere.This could allow an attacker to slow down the system, - * or perhaps expose timing bugs in a dynamic language implementations, - * by forcing redundant relinking operations.
invalidateCallerClass.{class name}Force the relinking of invokedynamic call sites in the given class.See {@code invalidateAll}.
- *

ISSUE: Is this still needed? - * - * @see java.lang.RuntimePermission - * @see java.lang.SecurityManager - * - * @author John Rose, JSR 292 EG - */ - -public final class LinkagePermission extends BasicPermission { - /** - * Create a new LinkagePermission with the given name. - * The name is the symbolic name of the LinkagePermission, such as - * "invalidateCallerClass.*", etc. An asterisk - * may appear at the end of the name, following a ".", or by itself, to - * signify a wildcard match. - * - * @param name the name of the LinkagePermission - */ - public LinkagePermission(String name) { - super(name); - } - - /** - * Create a new LinkagePermission with the given name on the given class. - * Equivalent to {@code LinkagePermission(name+"."+clazz.getName())}. - * - * @param name the name of the LinkagePermission - * @param clazz the class affected by the permission - */ - public LinkagePermission(String name, Class clazz) { - super(name + "." + clazz.getName()); - } -} diff --git a/jdk/src/share/classes/java/dyn/MethodHandle.java b/jdk/src/share/classes/java/dyn/MethodHandle.java index 251d338ce53..1aec36e27b0 100644 --- a/jdk/src/share/classes/java/dyn/MethodHandle.java +++ b/jdk/src/share/classes/java/dyn/MethodHandle.java @@ -37,20 +37,29 @@ import static sun.dyn.MemberName.newIllegalArgumentException; // utility * A method handle is a typed, directly executable reference to a method, * constructor, field, or similar low-level operation, with optional * transformations of arguments or return values. - * (These transformations include conversion, insertion, deletion, - * substitution. See the methods of this class and of {@link MethodHandles}.) + * These transformations are quite general, and include such patterns as + * {@linkplain #asType conversion}, + * {@linkplain #bindTo insertion}, + * {@linkplain java.dyn.MethodHandles#dropArguments deletion}, + * and {@linkplain java.dyn.MethodHandles#filterArguments substitution}. + *

+ * Note: The super-class of MethodHandle is Object. + * Any other super-class visible in the Reference Implementation + * will be removed before the Proposed Final Draft. + * Also, the final version will not include any public or + * protected constructors. *

* Method handles are strongly typed according to signature. * They are not distinguished by method name or enclosing class. * A method handle must be invoked under a signature which matches - * the method handle's own {@link MethodType method type}. + * the method handle's own {@linkplain MethodType method type}. *

- * Every method handle confesses its type via the {@code type} accessor. + * Every method handle reports its type via the {@link #type type} accessor. * The structure of this type is a series of classes, one of which is * the return type of the method (or {@code void.class} if none). *

* Every method handle appears as an object containing a method named - * {@code invoke}, whose signature exactly matches + * {@link #invokeExact invokeExact}, whose signature exactly matches * the method handle's type. * A Java method call expression, which compiles to an * {@code invokevirtual} instruction, @@ -61,15 +70,29 @@ import static sun.dyn.MemberName.newIllegalArgumentException; // utility * (The type is specified in the {@code invokevirtual} instruction, * via a {@code CONSTANT_NameAndType} constant pool entry.) * The call looks within the receiver object for a method - * named {@code invoke} of the intended method type. + * named {@code invokeExact} of the intended method type. * The call fails with a {@link WrongMethodTypeException} - * if the method does not exist, even if there is an {@code invoke} + * if the method does not exist, even if there is an {@code invokeExact} * method of a closely similar signature. * As with other kinds * of methods in the JVM, signature matching during method linkage * is exact, and does not allow for language-level implicit conversions * such as {@code String} to {@code Object} or {@code short} to {@code int}. *

+ * Each individual method handle also contains a method named + * {@link #invokeGeneric invokeGeneric}, whose type is the same + * as {@code invokeExact}, and is therefore also reported by + * the {@link #type type} accessor. + * A call to {@code invokeGeneric} works the same as a call to + * {@code invokeExact}, if the signature specified by the caller + * exactly matches the method handle's own type. + * If there is a type mismatch, {@code invokeGeneric} attempts + * to adjust the type of the target method handle + * (as if by a call to {@link #asType asType}) + * to obtain an exactly invokable target. + * This allows a more powerful negotiation of method type + * between caller and callee. + *

* A method handle is an unrestricted capability to call a method. * A method handle can be formed on a non-public method by a class * that has access to that method; the resulting handle can be used @@ -77,31 +100,44 @@ import static sun.dyn.MemberName.newIllegalArgumentException; // utility * checking is performed when the method handle is created, not * (as in reflection) every time it is called. Handles to non-public * methods, or in non-public classes, should generally be kept secret. - * They should not be passed to untrusted code. + * They should not be passed to untrusted code unless their use from + * the untrusted code would be harmless. *

- * Bytecode in an extended JVM can directly call a method handle's - * {@code invoke} from an {@code invokevirtual} instruction. + * Bytecode in the JVM can directly call a method handle's + * {@code invokeExact} method from an {@code invokevirtual} instruction. * The receiver class type must be {@code MethodHandle} and the method name - * must be {@code invoke}. The signature of the invocation + * must be {@code invokeExact}. The signature of the invocation * (after resolving symbolic type names) must exactly match the method type * of the target method. + * Similarly, bytecode can directly call a method handle's {@code invokeGeneric} + * method. The signature of the invocation (after resolving symbolic type names) + * must either exactly match the method type or be a valid argument to + * the target's {@link #asType asType} method. *

- * Every {@code invoke} method always throws {@link Exception}, + * Every {@code invokeExact} and {@code invokeGeneric} method always + * throws {@link java.lang.Throwable Throwable}, * which is to say that there is no static restriction on what a method handle * can throw. Since the JVM does not distinguish between checked * and unchecked exceptions (other than by their class, of course), * there is no particular effect on bytecode shape from ascribing * checked exceptions to method handle invocations. But in Java source * code, methods which perform method handle calls must either explicitly - * throw {@code Exception}, or else must catch all checked exceptions locally. + * throw {@code java.lang.Throwable Throwable}, or else must catch all + * throwables locally, rethrowing only those which are legal in the context, + * and wrapping ones which are illegal. *

- * Bytecode in an extended JVM can directly obtain a method handle + * Bytecode in the JVM can directly obtain a method handle * for any accessible method from a {@code ldc} instruction * which refers to a {@code CONSTANT_Methodref} or * {@code CONSTANT_InterfaceMethodref} constant pool entry. *

- * All JVMs can also use a reflective API called {@code MethodHandles} + * Java code can also use a reflective API called + * {@link java.dyn.MethodHandles.Lookup MethodHandles.Lookup} * for creating and calling method handles. + * For example, a static method handle can be obtained + * from {@link java.dyn.MethodHandles.Lookup#findStatic Lookup.findStatic}. + * There are also bridge methods from Core Reflection API objects, + * such as {@link java.dyn.MethodHandles.Lookup#unreflect Lookup.ureflect}. *

* A method reference may refer either to a static or non-static method. * In the non-static case, the method handle type includes an explicit @@ -131,7 +167,7 @@ mh = lookup.findVirtual(String.class, "replace", mt); s = mh.<String>invokeExact("daddy",'d','n'); assert(s.equals("nanny")); // weakly typed invocation (using MHs.invoke) -s = (String) mh.invokeVarargs("sappy", 'p', 'v'); +s = (String) mh.invokeWithArguments("sappy", 'p', 'v'); assert(s.equals("savvy")); // mt is {Object[] => List} mt = MethodType.methodType(java.util.List.class, Object[].class); @@ -162,7 +198,7 @@ assert(i == 3); * Java types. *

    *
  1. Method types range over all possible arities, - * from no arguments to an arbitrary number of arguments. + * from no arguments to up to 255 of arguments (a limit imposed by the JVM). * Generics are not variadic, and so cannot represent this.
  2. *
  3. Method types can specify arguments of primitive types, * which Java generic types cannot range over.
  4. @@ -189,7 +225,6 @@ public abstract class MethodHandle // Note: This is an implementation inheritance hack, and will be removed // with a JVM change which moves the required hidden state onto this class. extends MethodHandleImpl - implements MethodHandleProvider { private static Access IMPL_TOKEN = Access.getToken(); @@ -208,7 +243,7 @@ public abstract class MethodHandle /** * Report the type of this method handle. - * Every invocation of this method handle must exactly match this type. + * Every invocation of this method handle via {@code invokeExact} must exactly match this type. * @return the method handle type */ public final MethodType type() { @@ -216,12 +251,16 @@ public abstract class MethodHandle } /** - * The constructor for MethodHandle may only be called by privileged code. - * Subclasses may be in other packages, but must possess - * a token which they obtained from MH with a security check. - * @param token non-null object which proves access permission - * @param type type (permanently assigned) of the new method handle + * CONSTRUCTOR WILL BE REMOVED FOR PFD: + * Temporary constructor in early versions of the Reference Implementation. + * Method handle inheritance (if any) will be contained completely within + * the {@code java.dyn} package. */ + // The constructor for MethodHandle may only be called by privileged code. + // Subclasses may be in other packages, but must possess + // a token which they obtained from MH with a security check. + // @param token non-null object which proves access permission + // @param type type (permanently assigned) of the new method handle protected MethodHandle(Access token, MethodType type) { super(token); Access.check(token); @@ -243,93 +282,104 @@ public abstract class MethodHandle }); } - /** The string of a direct method handle is the simple name of its target method. - * The string of an adapter or bound method handle is the string of its - * target method handle. - * The string of a Java method handle is the string of its entry point method, - * unless the Java method handle overrides the toString method. + /** Produce a printed representation that displays information about this call site + * that may be useful to the human reader. */ @Override public String toString() { return MethodHandleImpl.getNameString(IMPL_TOKEN, this); } - //// This is the "Method Handle Kernel API" discussed at the JVM Language Summit, 9/2009. - //// Implementations here currently delegate to statics in MethodHandles. Some of those statics - //// will be deprecated. Others will be kept as "algorithms" to supply degrees of freedom - //// not present in the Kernel API. - /** - * PROVISIONAL API, WORK IN PROGRESS: * Invoke the method handle, allowing any caller signature, but requiring an exact signature match. * The signature at the call site of {@code invokeExact} must - * exactly match this method handle's {@code type}. + * exactly match this method handle's {@link #type type}. * No conversions are allowed on arguments or return values. + * @throws WrongMethodTypeException if the target's type is not identical with the caller's type signature + * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ public final native @PolymorphicSignature R invokeExact(A... args) throws Throwable; - // FIXME: remove this transitional form - /** @deprecated transitional form defined in EDR but removed in PFD */ - public final native @PolymorphicSignature R invoke(A... args) throws Throwable; - /** - * PROVISIONAL API, WORK IN PROGRESS: * Invoke the method handle, allowing any caller signature, - * and performing simple conversions for arguments and return types. - * The signature at the call site of {@code invokeGeneric} must - * have the same arity as this method handle's {@code type}. + * and optionally performing conversions for arguments and return types. *

    - * If the call site signature exactly matches this method handle's {@code type}, - * the call proceeds as if by {@link #invokeExact}. + * If the call site signature exactly matches this method handle's {@link #type type}, + * the call proceeds as if by {@link #invokeExact invokeExact}. *

    * Otherwise, the call proceeds as if this method handle were first - * adjusted by calling {@link #asType} to adjust this method handle + * adjusted by calling {@link #asType asType} to adjust this method handle * to the required type, and then the call proceeds as if by - * {@link #invokeExact} on the adjusted method handle. + * {@link #invokeExact invokeExact} on the adjusted method handle. + *

    + * There is no guarantee that the {@code asType} call is actually made. + * If the JVM can predict the results of making the call, it may perform + * adaptations directly on the caller's arguments, + * and call the target method handle according to its own exact type. + *

    + * If the method handle is equipped with a + * {@linkplain #withTypeHandler type handler}, the handler must produce + * an entry point of the call site's exact type. + * Otherwise, the signature at the call site of {@code invokeGeneric} must + * be a valid argument to the standard {@code asType} method. + * In particular, the caller must specify the same argument arity + * as the callee's type. + * @throws WrongMethodTypeException if the target's type cannot be adjusted to the caller's type signature + * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ public final native @PolymorphicSignature R invokeGeneric(A... args) throws Throwable; - // ?? public final native @PolymorphicSignature R invokeVarargs(A args, V[] varargs) throws Throwable; - /** - * PROVISIONAL API, WORK IN PROGRESS: * Perform a varargs invocation, passing the arguments in the given array - * to the method handle, as if via {@link #invokeGeneric} from a call site + * to the method handle, as if via {@link #invokeGeneric invokeGeneric} from a call site * which mentions only the type {@code Object}, and whose arity is the length * of the argument array. *

    - * The length of the arguments array must equal the parameter count - * of the target's type. - * The arguments array is spread into separate arguments. + * Specifically, execution proceeds as if by the following steps, + * although the methods are not guaranteed to be called if the JVM + * can predict their effects. + *

      + *
    • Determine the length of the argument array as {@code N}. + * For a null reference, {@code N=0}.
    • + *
    • Determine the generic type {@code TN} of {@code N} arguments as + * as {@code TN=MethodType.genericMethodType(N)}.
    • + *
    • Force the original target method handle {@code MH0} to the + * required type, as {@code MH1 = MH0.asType(TN)}.
    • + *
    • Spread the array into {@code N} separate arguments {@code A0, ...}.
    • + *
    • Invoke the type-adjusted method handle on the unpacked arguments: + * MH1.invokeExact(A0, ...).
    • + *
    • Take the return value as an {@code Object} reference.
    • + *
    *

    - * In order to match the type of the target, the following argument + * Because of the action of the {@code asType} step, the following argument * conversions are applied as necessary: *

      *
    • reference casting *
    • unboxing + *
    • widening primitive conversions *
    - * The following conversions are not applied: - *
      - *
    • primitive conversions (e.g., {@code byte} to {@code int} - *
    • varargs conversions other than the initial spread - *
    • any application-specific conversions (e.g., string to number) - *
    + *

    * The result returned by the call is boxed if it is a primitive, * or forced to null if the return type is void. *

    * This call is equivalent to the following code: *

    -     *   MethodHandle invoker = MethodHandles.genericInvoker(this.type(), 0, true);
    -     *   Object result = invoker.invokeExact(this, arguments);
    +     * MethodHandle invoker = MethodHandles.varargsInvoker(this.type(), 0);
    +     * Object result = invoker.invokeExact(this, arguments);
          * 
    * @param arguments the arguments to pass to the target * @return the result returned by the target - * @see MethodHandles#genericInvoker + * @throws WrongMethodTypeException if the target's type cannot be adjusted to take the arguments + * @throws Throwable anything thrown by the target method invocation + * @see MethodHandles#varargsInvoker */ - public final Object invokeVarargs(Object... arguments) throws Throwable { + public final Object invokeWithArguments(Object... arguments) throws Throwable { int argc = arguments == null ? 0 : arguments.length; MethodType type = type(); - if (type.parameterCount() != argc) throw badParameterCount(type, argc); + if (type.parameterCount() != argc) { + // simulate invokeGeneric + return asType(MethodType.genericMethodType(argc)).invokeWithArguments(arguments); + } if (argc <= 10) { MethodHandle invoker = MethodHandles.invokers(type).genericInvoker(); switch (argc) { @@ -373,82 +423,48 @@ public abstract class MethodHandle MethodHandle invoker = MethodHandles.invokers(type).varargsInvoker(0); return invoker.invokeExact(this, arguments); } - /** Equivalent to {@code invokeVarargs(arguments.toArray())}. */ - public final Object invokeVarargs(java.util.List arguments) throws Throwable { - return invokeVarargs(arguments.toArray()); + /** Equivalent to {@code invokeWithArguments(arguments.toArray())}. */ + public final Object invokeWithArguments(java.util.List arguments) throws Throwable { + return invokeWithArguments(arguments.toArray()); } - - private static WrongMethodTypeException badParameterCount(MethodType type, int argc) { - return new WrongMethodTypeException(type+" does not take "+argc+" parameters"); + @Deprecated + public final Object invokeVarargs(Object... arguments) throws Throwable { + return invokeWithArguments(arguments); + } + @Deprecated + public final Object invokeVarargs(java.util.List arguments) throws Throwable { + return invokeWithArguments(arguments.toArray()); } - /* --- this is intentionally NOT a javadoc yet --- - * PROVISIONAL API, WORK IN PROGRESS: + /** * Produce an adapter method handle which adapts the type of the - * current method handle to a new type by pairwise argument conversion. - * The original type and new type must have the same number of arguments. - * The resulting method handle is guaranteed to confess a type + * current method handle to a new type + * The resulting method handle is guaranteed to report a type * which is equal to the desired new type. *

    * If the original type and new type are equal, returns {@code this}. *

    - * The following conversions are applied as needed both to - * arguments and return types. Let T0 and T1 be the differing - * new and old parameter types (or old and new return types) - * for corresponding values passed by the new and old method types. - * Given those types T0, T1, one of the following conversions is applied - * if possible: - *

      - *
    • If T0 and T1 are references, and T1 is not an interface type, - * then a cast to T1 is applied. - * (The types do not need to be related in any particular way.) - *
    • If T0 and T1 are references, and T1 is an interface type, - * then the value of type T0 is passed as a T1 without a cast. - * (This treatment of interfaces follows the usage of the bytecode verifier.) - *
    • If T0 and T1 are primitives, then a Java casting - * conversion (JLS 5.5) is applied, if one exists. - *
    • If T0 and T1 are primitives and one is boolean, - * the boolean is treated as a one-bit unsigned integer. - * (This treatment follows the usage of the bytecode verifier.) - * A conversion from another primitive type behaves as if - * it first converts to byte, and then masks all but the low bit. - *
    • If T0 is a primitive and T1 a reference, a boxing - * conversion is applied if one exists, possibly followed by - * an reference conversion to a superclass. - * T1 must be a wrapper class or a supertype of one. - * If T1 is a wrapper class, T0 is converted if necessary - * to T1's primitive type by one of the preceding conversions. - * Otherwise, T0 is boxed, and its wrapper converted to T1. - *
    • If T0 is a reference and T1 a primitive, an unboxing - * conversion is applied if one exists, possibly preceded by - * a reference conversion to a wrapper class. - * T0 must be a wrapper class or a supertype of one. - * If T0 is a wrapper class, its primitive value is converted - * if necessary to T1 by one of the preceding conversions. - * Otherwise, T0 is converted directly to the wrapper type for T1, - * which is then unboxed. - *
    • If the return type T1 is void, any returned value is discarded - *
    • If the return type T0 is void and T1 a reference, a null value is introduced. - *
    • If the return type T0 is void and T1 a primitive, a zero value is introduced. - *
    - *

    - */ - /** - * PROVISIONAL API, WORK IN PROGRESS: - * Produce an adapter method handle which adapts the type of the - * current method handle to a new type by pairwise argument conversion. - * The original type and new type must have the same number of arguments. - * The resulting method handle is guaranteed to confess a type - * which is equal to the desired new type. + * This method provides the crucial behavioral difference between + * {@link #invokeExact invokeExact} and {@link #invokeGeneric invokeGeneric}. The two methods + * perform the same steps when the caller's type descriptor is identical + * with the callee's, but when the types differ, {@link #invokeGeneric invokeGeneric} + * also calls {@code asType} (or some internal equivalent) in order + * to match up the caller's and callee's types. *

    - * If the original type and new type are equal, returns {@code this}. + * This method is equivalent to {@link MethodHandles#convertArguments convertArguments}, + * except for method handles produced by {@link #withTypeHandler withTypeHandler}, + * in which case the specified type handler is used for calls to {@code asType}. *

    - * This method is equivalent to {@link MethodHandles#convertArguments}. + * Note that the default behavior of {@code asType} only performs + * pairwise argument conversion and return value conversion. + * Because of this, unless the method handle has a type handler, + * the original type and new type must have the same number of arguments. + * * @param newType the expected type of the new method handle * @return a method handle which delegates to {@code this} after performing * any necessary argument conversions, and arranges for any * necessary return value conversions - * @throws IllegalArgumentException if the conversion cannot be made + * @throws WrongMethodTypeException if the conversion cannot be made * @see MethodHandles#convertArguments */ public MethodHandle asType(MethodType newType) { @@ -456,20 +472,21 @@ public abstract class MethodHandle } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which adapts, as its target, * the current method handle. The type of the adapter will be - * the same as the type of the target, except that all but the first - * {@code keepPosArgs} parameters of the target's type are replaced - * by a single array parameter of type {@code Object[]}. - * Thus, if {@code keepPosArgs} is zero, the adapter will take all - * arguments in a single object array. + * the same as the type of the target, except that the final + * {@code arrayLength} parameters of the target's type are replaced + * by a single array parameter of type {@code arrayType}. + *

    + * If the array element type differs from any of the corresponding + * argument types on original target, + * the original target is adapted to take the array elements directly, + * as if by a call to {@link #asType asType}. *

    * When called, the adapter replaces a trailing array argument * by the array's elements, each as its own argument to the target. * (The order of the arguments is preserved.) * They are converted pairwise by casting and/or unboxing - * (as if by {@link MethodHandles#convertArguments}) * to the types of the trailing parameters of the target. * Finally the target is called. * What the target eventually returns is returned unchanged by the adapter. @@ -478,54 +495,67 @@ public abstract class MethodHandle * contains exactly enough elements to provide a correct argument count * to the target method handle. * (The array may also be null when zero elements are required.) - * @param keepPosArgs the number of leading positional arguments to preserve - * @return a new method handle which spreads its final argument, + * @param arrayType usually {@code Object[]}, the type of the array argument from which to extract the spread arguments + * @param arrayLength the number of arguments to spread from an incoming array argument + * @return a new method handle which spreads its final array argument, * before calling the original method handle + * @throws IllegalArgumentException if {@code arrayType} is not an array type * @throws IllegalArgumentException if target does not have at least - * {@code keepPosArgs} parameter types + * {@code arrayLength} parameter types + * @throws WrongMethodTypeException if the implied {@code asType} call fails */ - public final MethodHandle asSpreader(int keepPosArgs) { + public final MethodHandle asSpreader(Class arrayType, int arrayLength) { + Class arrayElement = arrayType.getComponentType(); + if (arrayElement == null) throw newIllegalArgumentException("not an array type"); MethodType oldType = type(); int nargs = oldType.parameterCount(); + if (nargs < arrayLength) throw newIllegalArgumentException("bad spread array length"); + int keepPosArgs = nargs - arrayLength; MethodType newType = oldType.dropParameterTypes(keepPosArgs, nargs); - newType = newType.insertParameterTypes(keepPosArgs, Object[].class); + newType = newType.insertParameterTypes(keepPosArgs, arrayElement); return MethodHandles.spreadArguments(this, newType); } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which adapts, as its target, * the current method handle. The type of the adapter will be * the same as the type of the target, except that a single trailing - * array parameter of type {@code Object[]} is replaced by - * {@code spreadArrayArgs} parameters of type {@code Object}. + * parameter (usually of type {@code arrayType}) is replaced by + * {@code arrayLength} parameters whose type is element type of {@code arrayType}. + *

    + * If the array type differs from the final argument type on original target, + * the original target is adapted to take the array type directly, + * as if by a call to {@link #asType asType}. *

    - * When called, the adapter replaces its trailing {@code spreadArrayArgs} - * arguments by a single new {@code Object} array, whose elements + * When called, the adapter replaces its trailing {@code arrayLength} + * arguments by a single new array of type {@code arrayType}, whose elements * comprise (in order) the replaced arguments. * Finally the target is called. * What the target eventually returns is returned unchanged by the adapter. *

    - * (The array may also be a shared constant when {@code spreadArrayArgs} is zero.) - * @param spreadArrayArgs the number of arguments to spread from the trailing array + * (The array may also be a shared constant when {@code arrayLength} is zero.) + * @param arrayType usually {@code Object[]}, the type of the array argument which will collect the arguments + * @param arrayLength the number of arguments to collect into a new array argument * @return a new method handle which collects some trailing argument * into an array, before calling the original method handle - * @throws IllegalArgumentException if the last argument of the target - * is not {@code Object[]} - * @throws IllegalArgumentException if {@code spreadArrayArgs} is not + * @throws IllegalArgumentException if {@code arrayType} is not an array type + or {@code arrayType} is not assignable to this method handle's trailing parameter type + * @throws IllegalArgumentException if {@code arrayLength} is not * a legal array size - * @deprecated Provisional and unstable; use {@link MethodHandles#collectArguments}. + * @throws WrongMethodTypeException if the implied {@code asType} call fails */ - public final MethodHandle asCollector(int spreadArrayArgs) { + public final MethodHandle asCollector(Class arrayType, int arrayLength) { + Class arrayElement = arrayType.getComponentType(); + if (arrayElement == null) throw newIllegalArgumentException("not an array type"); MethodType oldType = type(); int nargs = oldType.parameterCount(); MethodType newType = oldType.dropParameterTypes(nargs-1, nargs); - newType = newType.insertParameterTypes(nargs-1, MethodType.genericMethodType(spreadArrayArgs).parameterArray()); + newType = newType.insertParameterTypes(nargs-1, + java.util.Collections.>nCopies(arrayLength, arrayElement)); return MethodHandles.collectArguments(this, newType); } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which binds the given argument * to the current method handle as target. * The type of the bound handle will be @@ -546,15 +576,73 @@ public abstract class MethodHandle * leading parameter type that is a reference type * @throws ClassCastException if {@code x} cannot be converted * to the leading parameter type of the target - * @deprecated Provisional and unstable; use {@link MethodHandles#insertArguments}. + * @see MethodHandles#insertArguments */ public final MethodHandle bindTo(Object x) { return MethodHandles.insertArguments(this, 0, x); } - /** Implementation of {@link MethodHandleProvider}, which returns {@code this}. */ - public final MethodHandle asMethodHandle() { return this; } + /** + * PROVISIONAL API, WORK IN PROGRESS: + * Create a new method handle with the same type as this one, + * but whose {@code asType} method invokes the given + * {@code typeHandler} on this method handle, + * instead of the standard {@code MethodHandles.convertArguments}. + *

    + * The new method handle will have the same behavior as the + * old one when invoked by {@code invokeExact}. + * For {@code invokeGeneric} calls which exactly match + * the method type, the two method handles will also + * have the same behavior. + * For other {@code invokeGeneric} calls, the {@code typeHandler} + * will control the behavior of the new method handle. + *

    + * Thus, a method handle with an {@code asType} handler can + * be configured to accept more than one arity of {@code invokeGeneric} + * call, and potentially every possible arity. + * It can also be configured to supply default values for + * optional arguments, when the caller does not specify them. + *

    + * The given method handle must take two arguments and return + * one result. The result it returns must be a method handle + * of exactly the requested type. If the result returned by + * the target is null, a {@link NullPointerException} is thrown, + * else if the type of the target does not exactly match + * the requested type, a {@link WrongMethodTypeException} is thrown. + *

    + * Therefore, the type handler is invoked as if by this code: + *

    +     * MethodHandle target = this;      // original method handle
    +     * MethodHandle adapter = ...;      // adapted method handle
    +     * MethodType requestedType = ...;  // argument to asType()
    +     * if (type().equals(requestedType))
    +     *    return adapter;
    +     * MethodHandle result = (MethodHandle)
    +     *    typeHandler.invokeGeneric(target, requestedType);
    +     * if (!result.type().equals(requestedType))
    +     *    throw new WrongMethodTypeException();
    +     * return result;
    +     * 
    + *

    + * For example, here is a list-making variable-arity method handle: + *

    +MethodHandle makeEmptyList = MethodHandles.constant(List.class, Arrays.asList());
    +MethodHandle asList = lookup()
    +  .findStatic(Arrays.class, "asList", methodType(List.class, Object[].class));
    +static MethodHandle collectingTypeHandler(MethodHandle base, MethodType newType) {
    +  return asList.asCollector(Object[].class, newType.parameterCount()).asType(newType);
    +}
    +MethodHandle collectingTypeHandler = lookup()
    +  .findStatic(lookup().lookupClass(), "collectingTypeHandler",
    +     methodType(MethodHandle.class, MethodHandle.class, MethodType.class));
    +MethodHandle makeAnyList = makeEmptyList.withTypeHandler(collectingTypeHandler);
     
    -    /** Implementation of {@link MethodHandleProvider}, which returns {@code this.asType(type)}. */
    -    public final MethodHandle asMethodHandle(MethodType type) { return this.asType(type); }
    +System.out.println(makeAnyList.invokeGeneric()); // prints []
    +System.out.println(makeAnyList.invokeGeneric(1)); // prints [1]
    +System.out.println(makeAnyList.invokeGeneric("two", "too")); // prints [two, too]
    +     * 
    + */ + public MethodHandle withTypeHandler(MethodHandle typeHandler) { + return MethodHandles.withTypeHandler(this, typeHandler); + } } diff --git a/jdk/src/share/classes/java/dyn/MethodHandleProvider.java b/jdk/src/share/classes/java/dyn/MethodHandleProvider.java deleted file mode 100644 index 365b605469e..00000000000 --- a/jdk/src/share/classes/java/dyn/MethodHandleProvider.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.dyn; - -/** - * An interface for an object to provide a target {@linkplain MethodHandle method handle} to a {@code invokedynamic} instruction. - * There are many function-like objects in various Java APIs. - * This interface provides a standard way for such function-like objects to be bound - * to a dynamic call site, by providing a view of their behavior in the form of a low-level method handle. - *

    - * The type {@link MethodHandle} is a concrete class whose implementation - * hierarchy (if any) may be tightly coupled to the underlying JVM implementation. - * It cannot also serve as a base type for user-defined functional APIs. - * For this reason, {@code MethodHandle} cannot be subclassed to add new - * behavior to method handles. But this interface can be used to provide - * a link between a user-defined function and the {@code invokedynamic} - * instruction and the method handle API. - */ -public interface MethodHandleProvider { - /** Produce a method handle which will serve as a behavioral proxy for the current object. - * The type and invocation behavior of the proxy method handle are user-defined, - * and should have some relation to the intended meaning of the original object itself. - *

    - * The current object may have a changeable behavior. - * For example, {@link CallSite} has a {@code setTarget} method which changes its invocation. - * In such a case, it is incorrect for {@code asMethodHandle} to return - * a method handle whose behavior may diverge from that of the current object. - * Rather, the returned method handle must stably and permanently access - * the behavior of the current object, even if that behavior is changeable. - *

    - * The reference identity of the proxy method handle is not guaranteed to - * have any particular relation to the reference identity of the object. - * In particular, several objects with the same intended meaning could - * share a common method handle, or the same object could return different - * method handles at different times. In the latter case, the different - * method handles should have the same type and invocation behavior, - * and be usable from any thread at any time. - * In particular, if a MethodHandleProvider is bound to an invokedynamic - * call site, the proxy method handle extracted at the time of binding - * will be used for an unlimited time, until the call site is rebound. - *

    - * The type {@link MethodHandle} itself implements {@code MethodHandleProvider}, and - * for this method simply returns {@code this}. - */ - public MethodHandle asMethodHandle(); - - /** Produce a method handle of a given type which will serve as a behavioral proxy for the current object. - * As for the no-argument version {@link #asMethodHandle()}, the invocation behavior of the - * proxy method handle is user-defined. But the type must be the given type, - * or else a {@link WrongMethodTypeException} must be thrown. - *

    - * If the current object somehow represents a variadic or overloaded behavior, - * the method handle returned for a given type might represent only a subset of - * the current object's repertoire of behaviors, which correspond to that type. - */ - public MethodHandle asMethodHandle(MethodType type) throws WrongMethodTypeException; -} diff --git a/jdk/src/share/classes/java/dyn/MethodHandles.java b/jdk/src/share/classes/java/dyn/MethodHandles.java index 3e1fef7ff14..e7a9cd31b23 100644 --- a/jdk/src/share/classes/java/dyn/MethodHandles.java +++ b/jdk/src/share/classes/java/dyn/MethodHandles.java @@ -29,6 +29,7 @@ import java.lang.reflect.*; import sun.dyn.Access; import sun.dyn.MemberName; import sun.dyn.MethodHandleImpl; +import sun.dyn.util.ValueConversions; import sun.dyn.util.VerifyAccess; import sun.dyn.util.Wrapper; import java.util.List; @@ -135,12 +136,19 @@ public class MethodHandles { * In general, the conditions under which a method handle may be * created for a method {@code M} are exactly as restrictive as the conditions * under which the lookup class could have compiled a call to {@code M}. - * This rule is applied even if the Java compiler might have created + *

    + * In some cases, this access is obtained by the Java compiler by creating * an wrapper method to access a private method of another class * in the same top-level declaration. - * For example, a lookup object created for a nested class {@code C.D} + * For example, a nested class {@code C.D} * can access private members within other related classes such as - * {@code C}, {@code C.D.E}, or {@code C.B}. + * {@code C}, {@code C.D.E}, or {@code C.B}, + * but the Java compiler may need to generate wrapper methods in + * those related classes. In such cases, a {@code Lookup} object on + * {@code C.E} would be unable to those private members. + * A workaround for this limitation is the {@link Lookup#in Lookup.in} method, + * which can transform a lookup on {@code C.E} into one on any of those other + * classes, without special elevation of privilege. */ public static final class Lookup { @@ -181,13 +189,23 @@ public class MethodHandles { } /** Which types of members can this lookup object produce? - * The result is a bit-mask of the {@link Modifier} bits - * {@linkplain Modifier#PUBLIC PUBLIC (0x01)}, - * {@linkplain Modifier#PROTECTED PROTECTED (0x02)}, - * {@linkplain Modifier#PRIVATE PRIVATE (0x04)}, - * and {@linkplain Modifier#STATIC STATIC (0x08)}. + * The result is a bit-mask of the {@link java.lang.reflect.Modifier Modifier} bits + * {@linkplain java.lang.reflect.Modifier#PUBLIC PUBLIC (0x01)}, + * {@linkplain java.lang.reflect.Modifier#PROTECTED PROTECTED (0x02)}, + * {@linkplain java.lang.reflect.Modifier#PRIVATE PRIVATE (0x04)}, + * and {@linkplain java.lang.reflect.Modifier#STATIC STATIC (0x08)}. * The modifier bit {@code STATIC} stands in for the package protection mode, * which does not have an explicit modifier bit. + *

    + * A freshly-created lookup object + * on the {@linkplain java.dyn.MethodHandles#lookup() caller's class} + * has all possible bits set, since the caller class can access all its own members. + * A lookup object on a new lookup class + * {@linkplain java.dyn.MethodHandles.Lookup#in created from a previous lookup object} + * may have some mode bits set to zero. + * The purpose of this is to restrict access via the new lookup object, + * so that it can access only names which can be reached by the original + * lookup object, and also by the new lookup class. */ public int lookupModes() { return allowedModes & ALL_MODES; @@ -224,14 +242,17 @@ public class MethodHandles { *

    * However, the resulting {@code Lookup} object is guaranteed * to have no more access capabilities than the original. - * In particular:

      + * In particular, access capabilities can be lost as follows:
        *
      • If the new lookup class differs from the old one, * protected members will not be accessible by virtue of inheritance. + * (Protected members may continue to be accessible because of package sharing.) *
      • If the new lookup class is in a different package * than the old one, protected and default (package) members will not be accessible. *
      • If the new lookup class is not within the same package member * as the old one, private members will not be accessible. - *
      • In all cases, public members will continue to be accessible. + *
      • If the new lookup class is not accessible to the old lookup class, + * then no members, not even public members, will be accessible. + * (In all other cases, public members will continue to be accessible.) *
      */ public Lookup in(Class requestedLookupClass) { @@ -245,10 +266,17 @@ public class MethodHandles { && !VerifyAccess.isSamePackage(this.lookupClass, requestedLookupClass)) { newModes &= ~(PACKAGE|PRIVATE); } + // Allow nestmate lookups to be created without special privilege: if ((newModes & PRIVATE) != 0 && !VerifyAccess.isSamePackageMember(this.lookupClass, requestedLookupClass)) { newModes &= ~PRIVATE; } + if (newModes == PUBLIC + && !VerifyAccess.isClassAccessible(requestedLookupClass, this.lookupClass)) { + // The requested class it not accessible from the lookup class. + // No permissions. + newModes = 0; + } checkUnprivilegedlookupClass(requestedLookupClass); return new Lookup(requestedLookupClass, newModes); } @@ -290,8 +318,8 @@ public class MethodHandles { break; case PUBLIC|PACKAGE: return cname + "/package"; - case 0: // should not happen - return cname + "/empty"; + case 0: // no privileges + return cname + "/noaccess"; case ALL_MODES: return cname; } @@ -326,7 +354,6 @@ public class MethodHandles { * @param name the name of the method * @param type the type of the method * @return the desired method handle - * @exception SecurityException TBD * @exception NoAccessException if the method does not exist or access checking fails */ public @@ -358,7 +385,6 @@ public class MethodHandles { * @param name the name of the method * @param type the type of the method, with the receiver argument omitted * @return the desired method handle - * @exception SecurityException TBD * @exception NoAccessException if the method does not exist or access checking fails */ public MethodHandle findVirtual(Class refc, String name, MethodType type) throws NoAccessException { @@ -382,7 +408,6 @@ public class MethodHandles { * @param refc the class or interface from which the method is accessed * @param type the type of the method, with the receiver argument omitted, and a void return type * @return the desired method handle - * @exception SecurityException TBD * @exception NoAccessException if the method does not exist or access checking fails */ public MethodHandle findConstructor(Class refc, MethodType type) throws NoAccessException { @@ -409,13 +434,13 @@ public class MethodHandles { * {@code invokespecial} instruction.) *

      * If the explicitly specified caller class is not identical with the - * lookup class, a security check TBD is performed. + * lookup class, or if this lookup object does not have private access + * privileges, the access fails. * @param refc the class or interface from which the method is accessed * @param name the name of the method (which must not be "<init>") * @param type the type of the method, with the receiver argument omitted * @param specialCaller the proposed calling class to perform the {@code invokespecial} * @return the desired method handle - * @exception SecurityException TBD * @exception NoAccessException if the method does not exist or access checking fails */ public MethodHandle findSpecial(Class refc, String name, MethodType type, @@ -428,7 +453,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving read access to a non-static field. * The type of the method handle will have a return type of the field's * value type. @@ -445,7 +469,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving write access to a non-static field. * The type of the method handle will have a void return type. * The method handle will take two arguments, the instance containing @@ -462,7 +485,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving read access to a static field. * The type of the method handle will have a return type of the field's * value type. @@ -478,7 +500,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving write access to a static field. * The type of the method handle will have a void return type. * The method handle will take a single @@ -515,7 +536,6 @@ public class MethodHandles { * @param name the name of the method * @param type the type of the method, with the receiver argument omitted * @return the desired method handle - * @exception SecurityException TBD * @exception NoAccessException if the method does not exist or access checking fails */ public MethodHandle bind(Object receiver, String name, MethodType type) throws NoAccessException { @@ -530,7 +550,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Make a direct method handle to m, if the lookup class has permission. * If m is non-static, the receiver argument is treated as an initial argument. * If m is virtual, overriding is respected on every call. @@ -554,7 +573,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle for a reflected method. * It will bypass checks for overriding methods on the receiver, * as if by a {@code invokespecial} instruction from within the {@code specialCaller}. @@ -579,7 +597,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle for a reflected constructor. * The type of the method handle will be that of the constructor, * with the return type changed to the declaring class. @@ -602,7 +619,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving read access to a reflected field. * The type of the method handle will have a return type of the field's * value type. @@ -620,7 +636,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving write access to a reflected field. * The type of the method handle will have a void return type. * If the field is static, the method handle will take a single @@ -681,7 +696,7 @@ public class MethodHandles { int allowedModes = this.allowedModes; if (allowedModes == TRUSTED) return; int mods = m.getModifiers(); - if (Modifier.isPublic(mods) && Modifier.isPublic(refc.getModifiers())) + if (Modifier.isPublic(mods) && Modifier.isPublic(refc.getModifiers()) && allowedModes != 0) return; // common case int requestedModes = fixmods(mods); // adjust 0 => PACKAGE if ((requestedModes & allowedModes) != 0 @@ -706,6 +721,8 @@ public class MethodHandles { return "access to public member failed"; // (how?) else if (allowedModes == PUBLIC) return "member is not public"; + else if (allowedModes == 0) + return "attempted member access through a non-public class"; if (Modifier.isPrivate(mods)) return "member is private"; if (Modifier.isProtected(mods)) @@ -713,9 +730,14 @@ public class MethodHandles { return "member is private to package"; } + private static final boolean ALLOW_NESTMATE_ACCESS = false; + void checkSpecialCaller(Class specialCaller) throws NoAccessException { if (allowedModes == TRUSTED) return; - if (!VerifyAccess.isSamePackageMember(specialCaller, lookupClass())) + if ((allowedModes & PRIVATE) == 0 + || (specialCaller != lookupClass() + && !(ALLOW_NESTMATE_ACCESS && + VerifyAccess.isSamePackageMember(specialCaller, lookupClass())))) throw newNoAccessException("no private access for invokespecial", new MemberName(specialCaller), lookupClass()); } @@ -725,7 +747,9 @@ public class MethodHandles { // on itself or a subclass. Enforce that restriction, from JVMS 5.4.4, etc. if (!method.isProtected() || method.isStatic() || allowedModes == TRUSTED - || VerifyAccess.isSamePackageMember(method.getDeclaringClass(), lookupClass())) + || method.getDeclaringClass() == lookupClass() + || (ALLOW_NESTMATE_ACCESS && + VerifyAccess.isSamePackageMember(method.getDeclaringClass(), lookupClass()))) return mh; else return restrictReceiver(method, mh, lookupClass()); @@ -765,7 +789,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving read access to elements of an array. * The type of the method handle will have a return type of the array's * element type. Its first argument will be the array type, @@ -780,7 +803,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle giving write access to elements of an array. * The type of the method handle will have a void return type. * Its last argument will be the array's element type. @@ -796,25 +818,6 @@ public class MethodHandles { /// method handle invocation (reflective style) /** - * @deprecated Alias for MethodHandle.invokeVarargs. - */ - @Deprecated - public static - Object invokeVarargs(MethodHandle target, Object... arguments) throws Throwable { - return target.invokeVarargs(arguments); - } - - /** - * @deprecated Alias for MethodHandle.invokeVarargs. - */ - @Deprecated - public static - Object invoke(MethodHandle target, Object... arguments) throws Throwable { - return target.invokeVarargs(arguments); - } - - /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which will invoke any method handle of the * given type on a standard set of {@code Object} type arguments. * The resulting invoker will be a method handle with the following @@ -823,18 +826,28 @@ public class MethodHandles { *

    • a single {@code MethodHandle} target *
    • zero or more {@code Object} values (one for each argument in {@code type}) *
    - * The invoker will apply reference casts as necessary and unbox primitive arguments, - * as if by {@link #convertArguments}. + *

    + * The invoker will behave like a call to {@link MethodHandle.invokeGeneric} with + * the indicated {@code type}. + * That is, if the target is exactly of the given {@code type}, it will behave + * like {@code invokeExact}; otherwise it behave as if {@link MethodHandle.asType} + * is used to convert the target to the required {@code type}. + *

    + * The type of the returned invoker will not be the given {@code type}, but rather + * will have all parameter and return types replaced by {@code Object}. + *

    + * Before invoking its target, the invoker will apply reference casts as + * necessary and unbox and widen primitive arguments, as if by {@link #convertArguments}. * The return value of the invoker will be an {@code Object} reference, * boxing a primitive value if the original type returns a primitive, * and always null if the original type returns void. *

    * This method is equivalent to the following code (though it may be more efficient): *

    -     * MethodHandle invoker = exactInvoker(type);
    +     * MethodHandle invoker = lookup().findVirtual(MethodHandle.class, "invokeGeneric", type);
          * MethodType genericType = type.generic();
          * genericType = genericType.insertParameterType(0, MethodHandle.class);
    -     * return convertArguments(invoker, genericType);
    +     * return invoker.asType(genericType);
          * 
    * @param type the type of target methods which the invoker will apply to * @return a method handle suitable for invoking any method handle of the given type @@ -845,9 +858,8 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which will invoke any method handle of the - * given type on a standard set of {@code Object} type arguments + * given {@code type} on a standard set of {@code Object} type arguments * and a single trailing {@code Object[]} array. * The resulting invoker will be a method handle with the following * arguments: @@ -856,18 +868,31 @@ public class MethodHandles { *
  5. zero or more {@code Object} values (counted by {@code objectArgCount}) *
  6. an {@code Object[]} array containing more arguments * - * The invoker will spread the varargs array, apply - * reference casts as necessary, and unbox primitive arguments. + *

    + * The invoker will behave like a call to {@link MethodHandle.invokeGeneric} with + * the indicated {@code type}. + * That is, if the target is exactly of the given {@code type}, it will behave + * like {@code invokeExact}; otherwise it behave as if {@link MethodHandle.asType} + * is used to convert the target to the required {@code type}. + *

    + * The type of the returned invoker will not be the given {@code type}, but rather + * will have all parameter and return types replaced by {@code Object}, except for + * the last parameter type, which will be the array type {@code Object[]}. + *

    + * Before invoking its target, the invoker will spread the varargs array, apply + * reference casts as necessary, and unbox and widen primitive arguments. * The return value of the invoker will be an {@code Object} reference, * boxing a primitive value if the original type returns a primitive, * and always null if the original type returns void. *

    * This method is equivalent to the following code (though it may be more efficient): *

    -     * MethodHandle invoker = exactInvoker(type);
    -     * MethodType vaType = MethodType.makeGeneric(objectArgCount, true);
    +     * MethodHandle invoker = lookup().findVirtual(MethodHandle.class, "invokeGeneric", type);
    +     * MethodType vaType = MethodType.genericMethodType(objectArgCount, true);
          * vaType = vaType.insertParameterType(0, MethodHandle.class);
    -     * return spreadArguments(invoker, vaType);
    +     * int spreadArgCount = type.parameterCount - objectArgCount;
    +     * invoker = invoker.asSpreader(Object.class, spreadArgCount);
    +     * return invoker.asType(vaType);
          * 
    * @param type the desired target type * @param objectArgCount number of fixed (non-varargs) {@code Object} arguments @@ -881,7 +906,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which will take a invoke any method handle of the * given type. The resulting invoker will have a type which is * exactly equal to the desired type, except that it will accept @@ -889,7 +913,7 @@ public class MethodHandles { *

    * This method is equivalent to the following code (though it may be more efficient): *

    -     * lookup().findVirtual(MethodHandle.class, "invoke", type);
    +     * lookup().findVirtual(MethodHandle.class, "invokeExact", type);
          * 
    * @param type the desired target type * @return a method handle suitable for invoking any method handle of the given type @@ -900,37 +924,16 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: + * METHOD WILL BE REMOVED FOR PFD: * Produce a method handle equivalent to an invokedynamic instruction * which has been linked to the given call site. - * Along with {@link Lookup#findVirtual}, {@link Lookup#findStatic}, - * and {@link Lookup#findSpecial}, this completes the emulation - * of the JVM's {@code invoke} instructions. - *

    This method is equivalent to the following code: - *

    -     * MethodHandle getTarget, invoker, result;
    -     * getTarget = lookup().bind(site, "getTarget", methodType(MethodHandle.class));
    -     * invoker = exactInvoker(site.type());
    -     * result = foldArguments(invoker, getTarget)
    -     * 
    * @return a method handle which always invokes the call site's target + * @deprecated Use {@link CallSite#dynamicInvoker} instead. */ public static MethodHandle dynamicInvoker(CallSite site) throws NoAccessException { - MethodHandle getCSTarget = GET_TARGET; - if (getCSTarget == null) { - try { - GET_TARGET = getCSTarget = Lookup.IMPL_LOOKUP. - findVirtual(CallSite.class, "getTarget", MethodType.methodType(MethodHandle.class)); - } catch (NoAccessException ex) { - throw new InternalError(); - } - } - MethodHandle getTarget = MethodHandleImpl.bindReceiver(IMPL_TOKEN, getCSTarget, site); - MethodHandle invoker = exactInvoker(site.type()); - return foldArguments(invoker, getTarget); + return site.dynamicInvoker(); } - private static MethodHandle GET_TARGET = null; // link this lazily, not eagerly static Invokers invokers(MethodType type) { return MethodTypeImpl.invokers(IMPL_TOKEN, type); @@ -974,23 +977,23 @@ public class MethodHandles { if (t0.isPrimitive()) return Wrapper.asPrimitiveType(t1).cast(value); else - return Wrapper.OBJECT.cast(value, t1); + return Wrapper.OBJECT.convert(value, t1); } boolean prim0 = t0.isPrimitive(), prim1 = t1.isPrimitive(); if (!prim0) { // check contract with caller - Wrapper.OBJECT.cast(value, t0); + Wrapper.OBJECT.convert(value, t0); if (!prim1) { - return Wrapper.OBJECT.cast(value, t1); + return Wrapper.OBJECT.convert(value, t1); } // convert reference to primitive by unboxing Wrapper w1 = Wrapper.forPrimitiveType(t1); - return w1.cast(value, t1); + return w1.convert(value, t1); } // check contract with caller: Wrapper.asWrapperType(t0).cast(value); Wrapper w1 = Wrapper.forPrimitiveType(t1); - return w1.cast(value, t1); + return w1.convert(value, t1); } static @@ -1011,7 +1014,7 @@ public class MethodHandles { * Produce a method handle which adapts the type of the * given method handle to a new type by pairwise argument conversion. * The original type and new type must have the same number of arguments. - * The resulting method handle is guaranteed to confess a type + * The resulting method handle is guaranteed to report a type * which is equal to the desired new type. *

    * If the original type and new type are equal, returns target. @@ -1023,34 +1026,21 @@ public class MethodHandles { * Given those types T0, T1, one of the following conversions is applied * if possible: *

      - *
    • If T0 and T1 are references, and T1 is not an interface type, - * then a cast to T1 is applied. + *
    • If T0 and T1 are references, then a cast to T1 is applied. * (The types do not need to be related in any particular way.) - *
    • If T0 and T1 are references, and T1 is an interface type, - * then the value of type T0 is passed as a T1 without a cast. - * (This treatment of interfaces follows the usage of the bytecode verifier.) - *
    • If T0 and T1 are primitives, then a Java casting - * conversion (JLS 5.5) is applied, if one exists. - *
    • If T0 and T1 are primitives and one is boolean, - * the boolean is treated as a one-bit unsigned integer. - * (This treatment follows the usage of the bytecode verifier.) - * A conversion from another primitive type behaves as if - * it first converts to byte, and then masks all but the low bit. + *
    • If T0 and T1 are primitives, then a Java method invocation + * conversion (JLS 5.3) is applied, if one exists. *
    • If T0 is a primitive and T1 a reference, a boxing * conversion is applied if one exists, possibly followed by - * an reference conversion to a superclass. + * a reference conversion to a superclass. * T1 must be a wrapper class or a supertype of one. - * If T1 is a wrapper class, T0 is converted if necessary - * to T1's primitive type by one of the preceding conversions. - * Otherwise, T0 is boxed, and its wrapper converted to T1. *
    • If T0 is a reference and T1 a primitive, an unboxing - * conversion is applied if one exists, possibly preceded by - * a reference conversion to a wrapper class. + * conversion will be applied at runtime, possibly followed + * by a Java method invocation conversion (JLS 5.3) + * on the primitive value. (These are the widening conversions.) * T0 must be a wrapper class or a supertype of one. - * If T0 is a wrapper class, its primitive value is converted - * if necessary to T1 by one of the preceding conversions. - * Otherwise, T0 is converted directly to the wrapper type for T1, - * which is then unboxed. + * (In the case where T0 is Object, these are the conversions + * allowed by java.lang.reflect.Method.invoke.) *
    • If the return type T1 is void, any returned value is discarded *
    • If the return type T0 is void and T1 a reference, a null value is introduced. *
    • If the return type T0 is void and T1 a primitive, a zero value is introduced. @@ -1060,8 +1050,9 @@ public class MethodHandles { * @return a method handle which delegates to {@code target} after performing * any necessary argument conversions, and arranges for any * necessary return value conversions - * @throws IllegalArgumentException if the conversion cannot be made + * @throws WrongMethodTypeException if the conversion cannot be made * @see MethodHandle#asType + * @see MethodHandles#explicitCastArguments */ public static MethodHandle convertArguments(MethodHandle target, MethodType newType) { @@ -1081,9 +1072,88 @@ public class MethodHandles { /** * PROVISIONAL API, WORK IN PROGRESS: + * Produce a method handle which adapts the type of the + * given method handle to a new type by pairwise argument conversion. + * The original type and new type must have the same number of arguments. + * The resulting method handle is guaranteed to report a type + * which is equal to the desired new type. + *

      + * If the original type and new type are equal, returns target. + *

      + * The same conversions are allowed as for {@link #convertArguments convertArguments}, + * and some additional conversions are also applied if those conversions fail. + * Given types T0, T1, one of the following conversions is applied + * in addition, if the conversions specified for {@code convertArguments} + * would be insufficient: + *

        + *
      • If T0 and T1 are references, and T1 is an interface type, + * then the value of type T0 is passed as a T1 without a cast. + * (This treatment of interfaces follows the usage of the bytecode verifier.) + *
      • If T0 and T1 are primitives and one is boolean, + * the boolean is treated as a one-bit unsigned integer. + * (This treatment follows the usage of the bytecode verifier.) + * A conversion from another primitive type behaves as if + * it first converts to byte, and then masks all but the low bit. + *
      • If a primitive value would be converted by {@code convertArguments} + * using Java method invocation conversion (JLS 5.3), + * Java casting conversion (JLS 5.5) may be used also. + * This allows primitives to be narrowed as well as widened. + *
      + * @param target the method handle to invoke after arguments are retyped + * @param newType the expected type of the new method handle + * @return a method handle which delegates to {@code target} after performing + * any necessary argument conversions, and arranges for any + * necessary return value conversions + * @throws WrongMethodTypeException if the conversion cannot be made + * @see MethodHandle#asType + * @see MethodHandles#convertArguments + */ + public static + MethodHandle explicitCastArguments(MethodHandle target, MethodType newType) { + return convertArguments(target, newType); // FIXME! + } + + /* + FIXME: Reconcile javadoc with 10/22/2010 EG notes on conversion: + + Both converters arrange for their method handles to convert arguments + and return values. The conversion rules are the same for arguments + and return values, and depend only on source and target types, S and + T. The conversions allowed by castConvertArguments are a strict + superset of those performed by convertArguments. + + In all cases, if S and T are references, a simple checkcast is done. + If neither S nor T is a primitive, no attempt is made to unbox and + box. A failed conversion throws ClassCastException. + + If T is void, the value is dropped. + + For compatibility with reflection, if S is void and T is a reference, + a null value is produced. + + For compatibility with reflection, if S is a reference and T is a + primitive, S is first unboxed and then undergoes primitive conversion. + In the case of 'convertArguments', only assignment conversion is + performed (no narrowing primitive conversion). + + If S is a primitive, S is boxed, and then the above rules are applied. + If S and T are both primitives, the boxing will be undetectable; only + the primitive conversions will be apparent to the user. The key point + is that if S is a primitive type, the implementation may box it and + treat is as Object, without loss of information, or it may use a "fast + path" which does not use boxing. + + Notwithstanding the rules above, for compatibility with the verifier, + if T is an interface, it is treated as if it were Object. [KEEP THIS?] + + Also, for compatibility with the verifier, a boolean may be undergo + widening or narrowing conversion to any other primitive type. [KEEP THIS?] + */ + + /** * Produce a method handle which adapts the calling sequence of the * given method handle to a new type, by reordering the arguments. - * The resulting method handle is guaranteed to confess a type + * The resulting method handle is guaranteed to report a type * which is equal to the desired new type. *

      * The given array controls the reordering. @@ -1096,22 +1166,42 @@ public class MethodHandles { * outgoing argument will be taken from the {@code I}-th incoming * argument, where {@code I} is {@code reorder[N]}. *

      + * No argument or return value conversions are applied. + * The type of each incoming argument, as determined by {@code newType}, + * must be identical to the type of the corresponding outgoing argument + * or arguments in the target method handle. + * The return type of {@code newType} must be identical to the return + * type of the original target. + *

      * The reordering array need not specify an actual permutation. * An incoming argument will be duplicated if its index appears * more than once in the array, and an incoming argument will be dropped * if its index does not appear in the array. - *

      - * Pairwise conversions are applied as needed to arguments and return - * values, as with {@link #convertArguments}. + * As in the case of {@link #dropArguments(MethodHandle,int,List) dropArguments}, + * incoming arguments which are not mentioned in the reordering array + * are may be any type, as determined only by {@code newType}. + *

      +MethodType intfn1 = MethodType.methodType(int.class, int.class);
      +MethodType intfn2 = MethodType.methodType(int.class, int.class, int.class);
      +MethodHandle sub = ... {int x, int y => x-y} ...;
      +assert(sub.type().equals(intfn2));
      +MethodHandle sub1 = MethodHandles.permuteArguments(sub, intfn2, 0, 1);
      +MethodHandle rsub = MethodHandles.permuteArguments(sub, intfn2, 1, 0);
      +assert((int)rsub.invokeExact(1, 100) == 99);
      +MethodHandle add = ... {int x, int y => x+y} ...;
      +assert(add.type().equals(intfn2));
      +MethodHandle twice = MethodHandles.permuteArguments(add, intfn1, 0, 0);
      +assert(twice.type().equals(intfn1));
      +assert((int)twice.invokeExact(21) == 42);
      +     * 
      * @param target the method handle to invoke after arguments are reordered * @param newType the expected type of the new method handle * @param reorder a string which controls the reordering - * @return a method handle which delegates to {@code target} after performing - * any necessary argument motion and conversions, and arranges for any - * necessary return value conversions + * @return a method handle which delegates to {@code target} after it + * drops unused arguments and moves and/or duplicates the other arguments */ public static - MethodHandle permuteArguments(MethodHandle target, MethodType newType, int[] reorder) { + MethodHandle permuteArguments(MethodHandle target, MethodType newType, int... reorder) { MethodType oldType = target.type(); checkReorder(reorder, newType, oldType); return MethodHandleImpl.convertArguments(IMPL_TOKEN, target, @@ -1134,33 +1224,21 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: - * Produce a method handle which adapts the type of the - * given method handle to a new type, by spreading the final argument. - * The resulting method handle is guaranteed to confess a type - * which is equal to the desired new type. - *

      - * The final parameter type of the new type must be an array type T[]. - * This is the type of what is called the spread argument. - * All other arguments of the new type are called ordinary arguments. - *

      - * The ordinary arguments of the new type are pairwise converted - * to the initial parameter types of the old type, according to the - * rules in {@link #convertArguments}. - * Any additional arguments in the old type - * are converted from the array element type T, - * again according to the rules in {@link #convertArguments}. - * The return value is converted according likewise. - *

      - * The call verifies that the spread argument is in fact an array - * of exactly the type length, i.e., the excess number of - * arguments in the old type over the ordinary arguments in the new type. - * If there are no excess arguments, the spread argument is also - * allowed to be null. - * @param target the method handle to invoke after the argument is prepended + * METHOD WILL BE REMOVED FOR PFD: + * Equivalent to the following code: + *

      +     * int spreadPos = newType.parameterCount() - 1;
      +     * Class spreadType = newType.parameterType(spreadPos);
      +     * int spreadCount = target.type().parameterCount() - spreadPos;
      +     * MethodHandle adapter = target.asSpreader(spreadType, spreadCount);
      +     * adapter = adapter.asType(newType);
      +     * return adapter;
      +     * 
      + * @param target the method handle to invoke after argument spreading * @param newType the expected type of the new method handle - * @return a new method handle which spreads its final argument, + * @return a method handle which spreads its final argument, * before calling the original method handle + * @deprecated Use {@link MethodHandle#asSpreader} */ public static MethodHandle spreadArguments(MethodHandle target, MethodType newType) { @@ -1180,21 +1258,22 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: - * Produce a method handle which adapts the type of the - * given method handle to a new type, by collecting a series of - * trailing arguments as elements to a single argument array. - *

      - * This method may be used as an inverse to {@link #spreadArguments}. - * The final parameter type of the old type must be an array type T[], - * which is the type of what is called the spread argument. - * The trailing arguments of the new type which correspond to - * the spread argument are all converted to type T and collected - * into an array before the original method is called. - * @param target the method handle to invoke after the argument is prepended + * METHOD WILL BE REMOVED FOR PFD: + * Equivalent to the following code: + *

      +     * int collectPos = target.type().parameterCount() - 1;
      +     * Class collectType = target.type().parameterType(collectPos);
      +     * if (!collectType.isArray())  collectType = Object[].class;
      +     * int collectCount = newType.parameterCount() - collectPos;
      +     * MethodHandle adapter = target.asCollector(collectType, collectCount);
      +     * adapter = adapter.asType(newType);
      +     * return adapter;
      +     * 
      + * @param target the method handle to invoke after argument collection * @param newType the expected type of the new method handle - * @return a new method handle which collects some trailing argument + * @return a method handle which collects some trailing argument * into an array, before calling the original method handle + * @deprecated Use {@link MethodHandle#asCollector} instead. */ public static MethodHandle collectArguments(MethodHandle target, MethodType newType) { @@ -1214,6 +1293,92 @@ public class MethodHandles { /** * PROVISIONAL API, WORK IN PROGRESS: + * Produce a method handle of the requested return type which returns the given + * constant value every time it is invoked. + *

      + * Before the method handle is returned, the passed-in value is converted to the requested type. + * If the requested type is primitive, widening primitive conversions are attempted, + * else reference conversions are attempted. + *

      The returned method handle is equivalent to {@code identity(type).bindTo(value)}, + * unless the type is {@code void}, in which case it is {@code identity(type)}. + * @param type the return type of the desired method handle + * @param value the value to return + * @return a method handle of the given return type and no arguments, which always returns the given value + * @throws WrongMethodTypeException if the value cannot be converted to the required return type + */ + public static + MethodHandle constant(Class type, Object value) { + if (type.isPrimitive()) { + if (type == void.class) return identity(type); + Wrapper w = Wrapper.forPrimitiveType(type); + return identity(type).bindTo(w.convert(value, type)); + } else { + return identity(type).bindTo(type.cast(value)); + } + } + + /** + * PROVISIONAL API, WORK IN PROGRESS: + * Produce a method handle of the requested type which returns the given + * constant value every time it is invoked. + *

      + * Before the method handle is returned, the passed-in value is converted to the requested return type, + * as if by {@link #explicitCastArguments #explicitCastArguments}. + * That is, if the return type is primitive, the value is unboxed, + * and the primitive value is widened and/or narrowed. + * Otherwise, reference conversions are attempted. + * @param type the type of the desired method handle + * @param value the value to return + * @return a method handle of the given return type and no arguments, which always returns the given value + * @throws WrongMethodTypeException if the value cannot be converted to the required return type + */ + public static + MethodHandle constant(MethodType type, Object value) { + MethodHandle target = constant(type.returnType(), value); + int len = type.parameterCount(); + if (len == 0) + return target.asType(type); + target = target.asType(type.dropParameterTypes(0, len)); + return dropArguments(target, 0, type.parameterList().subList(0, len)); + } + + /** + * PROVISIONAL API, WORK IN PROGRESS: + * Produce a method handle which returns its sole argument when invoked. + *

      The identity function for {@code void} takes no arguments and returns no values. + * @param type the type of the sole parameter and return value of the desired method handle + * @return a unary method handle which accepts and returns the given type + */ + public static + MethodHandle identity(Class type) { + return ValueConversions.identity(type); + } + + /** + * PROVISIONAL API, WORK IN PROGRESS: + * Produce a method handle of the requested type which returns its argument when invoked. + * If the return type differs from the first argument type, the argument will be + * converted as if by {@link #explicitCastArguments explicitCastArguments}. + * All other arguments are discarded. + *

      The identity function for {@code void} discards all its arguments. + *

      + * @param type the type of the desired method handle + * @return a method handle of the given type, which always returns its first argument + * @throws WrongMethodTypeException if the first argument cannot be converted to the required return type + */ + public static + MethodHandle identity(MethodType type) { + MethodHandle target = identity(type.returnType()); + int len = type.parameterCount(); + if (len == 1) + return explicitCastArguments(target, type); + if (len == 0) + throw new IllegalArgumentException("not enough arguments"); + target = explicitCastArguments(target, type.dropParameterTypes(1, len)); + return dropArguments(target, 1, type.parameterList().subList(1, len)); + } + + /** * Produce a method handle which calls the original method handle {@code target}, * after inserting the given argument(s) at the given position. * The formal parameters to {@code target} which will be supplied by those @@ -1233,8 +1398,9 @@ public class MethodHandles { * @param target the method handle to invoke after the argument is inserted * @param pos where to insert the argument (zero for the first) * @param values the series of arguments to insert - * @return a new method handle which inserts an additional argument, + * @return a method handle which inserts an additional argument, * before calling the original method handle + * @see MethodHandle#bindTo */ public static MethodHandle insertArguments(MethodHandle target, int pos, Object... values) { @@ -1267,14 +1433,7 @@ public class MethodHandles { return result; } - @Deprecated // "use MethodHandles.insertArguments instead" - public static - MethodHandle insertArgument(MethodHandle target, int pos, Object value) { - return insertArguments(target, pos, value); - } - /** - * PROVISIONAL API, WORK IN PROGRESS: * Produce a method handle which calls the original method handle, * after dropping the given argument(s) at the given position. * The type of the new method handle will insert the given argument @@ -1302,10 +1461,10 @@ public class MethodHandles { * MethodHandle d12 = dropArguments(cat, 1, int.class, boolean.class); * System.out.println((String) d12.invokeExact("x", 12, true, "z")); // xz *

  7. - * @param target the method handle to invoke after the argument is dropped - * @param valueTypes the type(s) of the argument to drop - * @param pos which argument to drop (zero for the first) - * @return a new method handle which drops an argument of the given type, + * @param target the method handle to invoke after the arguments are dropped + * @param valueTypes the type(s) of the argument(s) to drop + * @param pos position of first argument to drop (zero for the leftmost) + * @return a method handle which drops arguments of the given types, * before calling the original method handle */ public static @@ -1323,23 +1482,36 @@ public class MethodHandles { return MethodHandleImpl.dropArguments(IMPL_TOKEN, target, newType, pos); } + /** + * Produce a method handle which calls the original method handle, + * after dropping the given argument(s) at the given position. + * The type of the new method handle will insert the given argument + * type(s), at that position, into the original handle's type. + * This method is equivalent to the following code: + * + * {@link #dropArguments(MethodHandle,int,List) dropArguments}(target, pos, Arrays.asList(valueTypes)) + * + * @param target the method handle to invoke after the arguments are dropped + * @param valueTypes the type(s) of the argument(s) to drop + * @param pos position of first argument to drop (zero for the leftmost) + * @return a method handle which drops arguments of the given types, + * before calling the original method handle + */ public static MethodHandle dropArguments(MethodHandle target, int pos, Class... valueTypes) { return dropArguments(target, pos, Arrays.asList(valueTypes)); } /** - * PROVISIONAL API, WORK IN PROGRESS: * Adapt a target method handle {@code target} by pre-processing * one or more of its arguments, each with its own unary filter function, * and then calling the target with each pre-processed argument * replaced by the result of its corresponding filter function. *

    * The pre-processing is performed by one or more method handles, - * specified in the non-null elements of the {@code filters} array. - * (If there are no such elements, the original target is returned.) - * Each filter (that is, each non-null element of {@code filters}) - * is applied to the corresponding argument of the adapter. + * specified in the elements of the {@code filters} array. + * (If there are no elements in the array, the original target is returned.) + * Each filter is applied to the corresponding argument of the adapter. *

    * If a filter {@code F} applies to the {@code N}th argument of * the method handle, then {@code F} must be a method handle which @@ -1349,46 +1521,49 @@ public class MethodHandles { * The return type of {@code F} must be identical to the corresponding * parameter type of the target. *

    - * It is an error if there are non-null elements of {@code filters} + * It is an error if there are elements of {@code filters} * which do not correspond to argument positions in the target. - * The actual length of the target array may be any number, it need - * not be the same as the parameter count of the target type. - * (This provides an easy way to filter just the first argument or two - * of a target method handle.) - *

    Here is pseudocode for the resulting adapter: - *

    -     * // there are N arguments in the A sequence
    -     * T target(A[N]...);
    -     * [i<N] V[i] filter[i](B[i]) = filters[i] ?: identity;
    -     * T adapter(B[N]... b) {
    -     *   A[N] a...;
    -     *   [i<N] a[i] = filter[i](b[i]);
    -     *   return target(a...);
    -     * }
    +     * Example:
    +     * 

    +import static java.dyn.MethodHandles.*;
    +import static java.dyn.MethodType.*;
    +...
    +MethodHandle cat = lookup().findVirtual(String.class,
    +  "concat", methodType(String.class, String.class));
    +MethodHandle upcase = lookup().findVirtual(String.class,
    +  "toUpperCase", methodType(String.class));
    +System.out.println((String) cat.invokeExact("x", "y")); // xy
    +MethodHandle f0 = filterArguments(cat, 0, upcase);
    +System.out.println((String) f0.invokeExact("x", "y")); // Xy
    +MethodHandle f1 = filterArguments(cat, 1, upcase);
    +System.out.println((String) f1.invokeExact("x", "y")); // xY
    +MethodHandle f2 = filterArguments(cat, 0, upcase, upcase);
    +System.out.println((String) f2.invokeExact("x", "y")); // XY
          * 
    * @param target the method handle to invoke after arguments are filtered + * @param pos the position of the first argument to filter * @param filters method handles to call initially on filtered arguments * @return method handle which incorporates the specified argument filtering logic - * @throws IllegalArgumentException if a non-null element of {@code filters} - * does not match a corresponding argument type of {@code target} + * @throws IllegalArgumentException if an element of {@code filters} is null or + * does not match a corresponding argument type of {@code target} as described above */ public static - MethodHandle filterArguments(MethodHandle target, MethodHandle... filters) { + MethodHandle filterArguments(MethodHandle target, int pos, MethodHandle... filters) { MethodType targetType = target.type(); MethodHandle adapter = target; MethodType adapterType = targetType; - int pos = -1, maxPos = targetType.parameterCount(); + int maxPos = targetType.parameterCount(); + int curPos = pos; for (MethodHandle filter : filters) { - pos += 1; - if (filter == null) continue; - if (pos >= maxPos) + if (curPos >= maxPos) throw newIllegalArgumentException("too many filters"); MethodType filterType = filter.type(); if (filterType.parameterCount() != 1 - || filterType.returnType() != targetType.parameterType(pos)) + || filterType.returnType() != targetType.parameterType(curPos)) throw newIllegalArgumentException("target and filter types do not match"); - adapterType = adapterType.changeParameterType(pos, filterType.parameterType(0)); - adapter = MethodHandleImpl.filterArgument(IMPL_TOKEN, adapter, pos, filter); + adapterType = adapterType.changeParameterType(curPos, filterType.parameterType(0)); + adapter = MethodHandleImpl.filterArgument(IMPL_TOKEN, adapter, curPos, filter); + curPos += 1; } MethodType midType = adapter.type(); if (midType != adapterType) @@ -1396,9 +1571,37 @@ public class MethodHandles { return adapter; } - /** Apply the given filter function to the return value of the given target. + /** PROVISIONAL API, WORK IN PROGRESS: + * Adapt a target method handle {@code target} by post-processing + * its return value with a unary filter function. + *

    + * If a filter {@code F} applies to the return value of + * the target method handle, then {@code F} must be a method handle which + * takes exactly one argument. The return type of {@code F} + * replaces the return type of the target + * in the resulting adapted method handle. + * The argument type of {@code F} must be identical to the + * return type of the target. + * Example: + *

    +import static java.dyn.MethodHandles.*;
    +import static java.dyn.MethodType.*;
    +...
    +MethodHandle cat = lookup().findVirtual(String.class,
    +  "concat", methodType(String.class, String.class));
    +MethodHandle length = lookup().findVirtual(String.class,
    +  "length", methodType(int.class));
    +System.out.println((String) cat.invokeExact("x", "y")); // xy
    +MethodHandle f0 = filterReturnValue(cat, length);
    +System.out.println((int) f0.invokeExact("x", "y")); // 2
    +     * 
    + * @param target the method handle to invoke before filtering the return value + * @param filter method handle to call on the return value + * @return method handle which incorporates the specified return value filtering logic + * @throws IllegalArgumentException if {@code filter} is null or + * does not match the return type of {@code target} as described above */ - /*public*/ static + public static MethodHandle filterReturnValue(MethodHandle target, MethodHandle filter) { MethodType targetType = target.type(); MethodType filterType = filter.type(); @@ -1411,7 +1614,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Adapt a target method handle {@code target} by pre-processing * some of its arguments, and then calling the target with * the result of the pre-processing, plus all original arguments. @@ -1428,10 +1630,10 @@ public class MethodHandles { * The resulting adapter is the same type as the target, except that the * initial argument type of the target is dropped. *

    - * (Note that {@link #dropArguments} can be used to remove any arguments + * (Note that {@link #dropArguments(MethodHandle,int,List) dropArguments} can be used to remove any arguments * that either the {@code combiner} or {@code target} does not wish to receive. * If some of the incoming arguments are destined only for the combiner, - * consider using {@link #collectArguments} instead, since those + * consider using {@link MethodHandle#asCollector} instead, since those * arguments will not need to be live on the stack on entry to the * target.) *

    @@ -1471,31 +1673,7 @@ public class MethodHandles { return MethodHandleImpl.foldArguments(IMPL_TOKEN, target, newType, combiner); } - // /** - // * PROVISIONAL API, WORK IN PROGRESS: - // * Adapt a target method handle {@code target} by pre-processing - // * some of its arguments to derive a new target method handle. - // * Call the new target on the original arguments. - // * @param combined method handle to call initially on the incoming arguments - // * @return method handle which incorporates the specified dispatching logic - // * @throws IllegalArgumentException if the first argument type of - // * {@code combiner}'s return type is not {@link MethodHandle}, - // * or if the next argument types of {@code target} - // * are not identical with the argument types of {@code combiner} - // */ - // public static - // MethodHandle dispatchArguments(MethodType targetType, MethodHandle dispatcher) { - // MethodType dispatcherType = dispatcher.type(); - // int foldArgs = dispatcherType.parameterCount(); - // boolean ok = (targetType.parameterCount() >= foldArgs); - // if (!ok) - // throw misMatchedTypes("target and dispatcher types", targetType, dispatcherType); - // MethodHandle target = exactInvoker(targetType); - // return MethodHandleImpl.foldArguments(IMPL_TOKEN, target, targetType, dispatcher); - // } - /** - * PROVISIONAL API, WORK IN PROGRESS: * Make a method handle which adapts a target method handle, * by guarding it with a test, a boolean-valued method handle. * If the guard fails, a fallback handle is called instead. @@ -1572,7 +1750,6 @@ public class MethodHandles { } /** - * PROVISIONAL API, WORK IN PROGRESS: * Make a method handle which adapts a target method handle, * by running it inside an exception handler. * If the target returns normally, the adapter returns that value. @@ -1635,6 +1812,7 @@ public class MethodHandles { } /** + * PROVISIONAL API, WORK IN PROGRESS: * Produce a wrapper instance of the given "SAM" type which redirects its calls to the given method handle. * A SAM type is a type which declares a single abstract method. * Additionally, it must have either no constructor (as an interface) @@ -1663,7 +1841,6 @@ public class MethodHandles { *

  8. the SAM type itself and any methods in the SAM type *
  9. the supertypes of the SAM type (if any) and their methods *
  10. {@link Object} and its methods - *
  11. {@link MethodHandleProvider} and its methods * *

    * No stable mapping is promised between the SAM type and @@ -1684,9 +1861,9 @@ public class MethodHandles { */ // ISSUE: Should we delegate equals/hashCode to the targets? // Not useful unless there is a stable equals/hashCode behavior - // for MethodHandle, and for MethodHandleProvider.asMethodHandle. + // for MethodHandle, but there isn't. public static - T asInstance(MethodHandle target, Class samType) { + T asInstance(final MethodHandle target, final Class samType) { // POC implementation only; violates the above contract several ways final Method sam = getSamMethod(samType); if (sam == null) @@ -1694,21 +1871,42 @@ public class MethodHandles { MethodType samMT = MethodType.methodType(sam.getReturnType(), sam.getParameterTypes()); if (!samMT.equals(target.type())) throw new IllegalArgumentException("wrong method type"); - final MethodHandle mh = target; return samType.cast(Proxy.newProxyInstance( samType.getClassLoader(), - new Class[]{ samType, MethodHandleProvider.class }, + new Class[]{ samType, AsInstanceObject.class }, new InvocationHandler() { + private Object getArg(String name) { + if ((Object)name == "getAsInstanceTarget") return target; + if ((Object)name == "getAsInstanceType") return samType; + throw new AssertionError(); + } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - if (method.getDeclaringClass() == MethodHandleProvider.class) { - return method.invoke(mh, args); - } + if (method.getDeclaringClass() == AsInstanceObject.class) + return getArg(method.getName()); assert method.equals(sam) : method; - return mh.invokeVarargs(args); + return target.invokeVarargs(args); } })); } + /** + * PROVISIONAL API, WORK IN PROGRESS: + * Interface implemented by every object which is produced by {@link #asInstance asInstance}. + * The methods of this interface allow a caller to recover the parameters + * to {@code asInstance}. + * This allows applications to repeatedly convert between method handles + * and SAM objects, without the risk of creating unbounded delegation chains. + */ + public interface AsInstanceObject { + /** Produce or recover a target method handle which is behaviorally + * equivalent to the SAM method of this object. + */ + public MethodHandle getAsInstanceTarget(); + /** Recover the SAM type for which this object was created. + */ + public Class getAsInstanceType(); + } + private static Method getSamMethod(Class samType) { Method sam = null; diff --git a/jdk/src/share/classes/java/dyn/MethodType.java b/jdk/src/share/classes/java/dyn/MethodType.java index e7e948bdb7e..1e8fce7adf2 100644 --- a/jdk/src/share/classes/java/dyn/MethodType.java +++ b/jdk/src/share/classes/java/dyn/MethodType.java @@ -119,7 +119,7 @@ class MethodType implements java.lang.reflect.Type { for (Class ptype : ptypes) { ptype.equals(ptype); // null check if (ptype == void.class) - throw newIllegalArgumentException("void parameter: "+this); + throw newIllegalArgumentException("parameter type cannot be void"); } } @@ -139,10 +139,6 @@ class MethodType implements java.lang.reflect.Type { MethodType methodType(Class rtype, Class[] ptypes) { return makeImpl(rtype, ptypes, false); } - @Deprecated public static - MethodType make(Class rtype, Class[] ptypes) { - return methodType(rtype, ptypes); - } /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. */ public static @@ -150,10 +146,6 @@ class MethodType implements java.lang.reflect.Type { boolean notrust = false; // random List impl. could return evil ptypes array return makeImpl(rtype, ptypes.toArray(NO_PTYPES), notrust); } - @Deprecated public static - MethodType make(Class rtype, List> ptypes) { - return methodType(rtype, ptypes); - } /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * The leading parameter type is prepended to the remaining array. @@ -165,10 +157,6 @@ class MethodType implements java.lang.reflect.Type { System.arraycopy(ptypes, 0, ptypes1, 1, ptypes.length); return makeImpl(rtype, ptypes1, true); } - @Deprecated public static - MethodType make(Class rtype, Class ptype0, Class... ptypes) { - return methodType(rtype, ptype0, ptypes); - } /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * The resulting method has no parameter types. @@ -177,10 +165,6 @@ class MethodType implements java.lang.reflect.Type { MethodType methodType(Class rtype) { return makeImpl(rtype, NO_PTYPES, true); } - @Deprecated public static - MethodType make(Class rtype) { - return methodType(rtype); - } /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * The resulting method has the single given parameter type. @@ -189,10 +173,6 @@ class MethodType implements java.lang.reflect.Type { MethodType methodType(Class rtype, Class ptype0) { return makeImpl(rtype, new Class[]{ ptype0 }, true); } - @Deprecated public static - MethodType make(Class rtype, Class ptype0) { - return methodType(rtype, ptype0); - } /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * The resulting method has the same parameter types as {@code ptypes}, @@ -202,10 +182,6 @@ class MethodType implements java.lang.reflect.Type { MethodType methodType(Class rtype, MethodType ptypes) { return makeImpl(rtype, ptypes.ptypes, true); } - @Deprecated public static - MethodType make(Class rtype, MethodType ptypes) { - return methodType(rtype, ptypes); - } /** * Sole factory method to find or create an interned method type. @@ -275,10 +251,6 @@ class MethodType implements java.lang.reflect.Type { } return mt; } - @Deprecated public static - MethodType makeGeneric(int objectArgCount, boolean varargs) { - return genericMethodType(objectArgCount, varargs); - } /** * All parameters and the return type will be Object. @@ -290,10 +262,6 @@ class MethodType implements java.lang.reflect.Type { MethodType genericMethodType(int objectArgCount) { return genericMethodType(objectArgCount, false); } - @Deprecated public static - MethodType makeGeneric(int objectArgCount) { - return genericMethodType(objectArgCount); - } /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * @param num the index (zero-based) of the parameter type to change @@ -307,18 +275,6 @@ class MethodType implements java.lang.reflect.Type { return makeImpl(rtype, nptypes, true); } - /** Convenience method for {@link #insertParameterTypes}. - * @deprecated Use {@link #insertParameterTypes} instead. - */ - @Deprecated - public MethodType insertParameterType(int num, Class nptype) { - int len = ptypes.length; - Class[] nptypes = Arrays.copyOfRange(ptypes, 0, len+1); - System.arraycopy(nptypes, num, nptypes, num+1, len-num); - nptypes[num] = nptype; - return makeImpl(rtype, nptypes, true); - } - /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * @param num the position (zero-based) of the inserted parameter type(s) * @param ptypesToInsert zero or more a new parameter types to insert into the parameter list @@ -336,6 +292,14 @@ class MethodType implements java.lang.reflect.Type { return makeImpl(rtype, nptypes, true); } + /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. + * @param ptypesToInsert zero or more a new parameter types to insert after the end of the parameter list + * @return the same type, except with the selected parameter(s) appended + */ + public MethodType appendParameterTypes(Class... ptypesToInsert) { + return insertParameterTypes(parameterCount(), ptypesToInsert); + } + /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * @param num the position (zero-based) of the inserted parameter type(s) * @param ptypesToInsert zero or more a new parameter types to insert into the parameter list @@ -377,14 +341,6 @@ class MethodType implements java.lang.reflect.Type { return makeImpl(rtype, nptypes, true); } - /** Convenience method for {@link #dropParameterTypes}. - * @deprecated Use {@link #dropParameterTypes} instead. - */ - @Deprecated - public MethodType dropParameterType(int num) { - return dropParameterTypes(num, num+1); - } - /** Convenience method for {@link #methodType(java.lang.Class, java.lang.Class[])}. * @param nrtype a return parameter type to replace the old one with * @return the same type, except with the return type change @@ -690,14 +646,4 @@ class MethodType implements java.lang.reflect.Type { public String toMethodDescriptorString() { return BytecodeDescriptor.unparse(this); } - - /** Temporary alias for toMethodDescriptorString; delete after M3. */ - public String toBytecodeString() { - return toMethodDescriptorString(); - } - /** Temporary alias for fromMethodDescriptorString; delete after M3. */ - public static MethodType fromBytecodeString(String descriptor, ClassLoader loader) - throws IllegalArgumentException, TypeNotPresentException { - return fromMethodDescriptorString(descriptor, loader); - } } diff --git a/jdk/src/share/classes/java/dyn/VolatileCallSite.java b/jdk/src/share/classes/java/dyn/VolatileCallSite.java new file mode 100644 index 00000000000..4a28431aae9 --- /dev/null +++ b/jdk/src/share/classes/java/dyn/VolatileCallSite.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.dyn; + +import java.util.List; + +/** + * PROVISIONAL API, WORK IN PROGRESS: + * A {@code VolatileCallSite} is a {@link CallSite} whose target acts like a volatile variable. + * An {@code invokedynamic} instruction linked to a {@code VolatileCallSite} sees updates + * to its call site target immediately, even if the update occurs in another thread. + *

    + * Also, a volatile call site has the ability to be invalidated, + * or reset to a well-defined fallback state. + *

    + * A volatile call site can be used as a switch to control the behavior + * of another method handle. For example: + *

    +MethodHandle strcat = MethodHandles.lookup()
    +  .findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class));
    +MethodHandle trueCon  = MethodHandles.constant(boolean.class, true);
    +MethodHandle falseCon = MethodHandles.constant(boolean.class, false);
    +VolatileCallSite switcher = new VolatileCallSite(trueCon, falseCon);
    +// following steps may be repeated to re-use the same switcher:
    +MethodHandle worker1 = strcat;
    +MethodHandle worker2 = MethodHandles.permuteArguments(strcat, strcat.type(), 1, 0);
    +MethodHandle worker = MethodHandles.guardWithTest(switcher.dynamicInvoker(), worker1, worker2);
    +System.out.println((String) worker.invokeExact("met", "hod"));  // method
    +switcher.invalidate();
    +System.out.println((String) worker.invokeExact("met", "hod"));  // hodmet
    + * 
    + * In this case, the fallback path (worker2) does not cause a state change. + * In a real application, the fallback path could cause call sites to relink + * themselves in response to a global data structure change. + * Thus, volatile call sites can be used to build dependency mechanisms. + * @author John Rose, JSR 292 EG + */ +public class VolatileCallSite extends CallSite { + volatile MethodHandle fallback; + + /** Create a call site with a volatile target. + * The initial target and fallback are both set to a method handle + * of the given type which will throw {@code IllegalStateException}. + */ + public VolatileCallSite(MethodType type) { + super(type); + fallback = target; + } + + /** Create a call site with a volatile target. + * The fallback and target are both set to the same initial value. + */ + public VolatileCallSite(MethodHandle target) { + super(target); + fallback = target; + } + + /** Create a call site with a volatile target. + * The fallback and target are set to the given initial values. + */ + public VolatileCallSite(MethodHandle target, MethodHandle fallback) { + this(target); + checkTargetChange(target, fallback); // make sure they have the same type + this.fallback = fallback; + } + + /** Internal override to nominally final getTarget. */ + @Override + MethodHandle getTarget0() { + return getTargetVolatile(); + } + + /** + * Set the target method of this call site, as a volatile variable. + * Has the same effect as {@link CallSite#setTarget}, with the additional + * effects associated with volatiles, in the Java Memory Model. + */ + @Override public void setTarget(MethodHandle newTarget) { + checkTargetChange(getTargetVolatile(), newTarget); + setTargetVolatile(newTarget); + } + + /** + * Return the fallback target for this call site. + * It is initialized to the target the call site had when it was constructed, + * but it may be changed by {@link setFallbackTarget}. + *

    + * Like the regular target of a volatile call site, + * the fallback target also has the behavior of a volatile variable. + */ + public MethodHandle getFallbackTarget() { + return fallback; + } + + /** + * Update the fallback target for this call site. + * @see #getFallbackTarget + */ + public void setFallbackTarget(MethodHandle newFallbackTarget) { + checkTargetChange(fallback, newFallbackTarget); + fallback = newFallbackTarget; + } + + /** + * Reset this call site to a known state by changing the target to the fallback target value. + * Equivalent to {@code setTarget(getFallbackTarget())}. + */ + public void invalidate() { + setTargetVolatile(getFallbackTarget()); + } + + /** + * Reset all call sites in a list by changing the target of each to its fallback value. + */ + public static void invalidateAll(List sites) { + for (VolatileCallSite site : sites) { + site.invalidate(); + } + } + +} diff --git a/jdk/src/share/classes/java/dyn/package-info.java b/jdk/src/share/classes/java/dyn/package-info.java index 37555be14b4..428ca60acd8 100644 --- a/jdk/src/share/classes/java/dyn/package-info.java +++ b/jdk/src/share/classes/java/dyn/package-info.java @@ -24,7 +24,6 @@ */ /** - * PROVISIONAL API, WORK IN PROGRESS: * This package contains dynamic language support provided directly by * the Java core class libraries and virtual machine. *

    @@ -42,13 +41,6 @@ * argument and return value conversions are applied. *

  12. * - *
  13. In source code, the class {@link java.dyn.InvokeDynamic InvokeDynamic} appears to accept - * any static method invocation, of any name and any signature. - * But instead of emitting - * an {@code invokestatic} instruction for such a call, the Java compiler emits - * an {@code invokedynamic} instruction with the given name and signature. - *
  14. - * *
  15. The JVM bytecode format supports immediate constants of * the classes {@link java.dyn.MethodHandle MethodHandle} and {@link java.dyn.MethodType MethodType}. *
  16. @@ -56,7 +48,8 @@ * *

    Corresponding JVM bytecode format changes

    * The following low-level information is presented here as a preview of - * changes being made to the Java Virtual Machine specification for JSR 292. + * changes being made to the Java Virtual Machine specification for JSR 292. + * This information will be incorporated in a future version of the JVM specification. * *

    {@code invokedynamic} instruction format

    * In bytecode, an {@code invokedynamic} instruction is formatted as five bytes. @@ -64,22 +57,21 @@ * The next two bytes are a constant pool index (in the same format as for the other {@code invoke} instructions). * The final two bytes are reserved for future use and required to be zero. * The constant pool reference of an {@code invokedynamic} instruction is to a entry - * with tag {@code CONSTANT_InvokeDynamic} (decimal 17). See below for its format. - * The entry specifies the bootstrap method (a {@link java.dyn.MethodHandle MethodHandle} constant), - * the dynamic invocation name, and the argument types and return type of the call. + * with tag {@code CONSTANT_InvokeDynamic} (decimal 18). See below for its format. + * (The tag value 17 is also allowed. See below.) + * The entry specifies the following information: + *
      + *
    • a bootstrap method (a {@link java.dyn.MethodHandle MethodHandle} constant)
    • + *
    • the dynamic invocation name (a UTF8 string)
    • + *
    • the argument and return types of the call (encoded as a signature in a UTF8 string)
    • + *
    • optionally, a sequence of additional static arguments to the bootstrap method (constants loadable via {@code ldc})
    • + *
    *

    * Each instance of an {@code invokedynamic} instruction is called a dynamic call site. * Multiple instances of an {@code invokedynamic} instruction can share a single * {@code CONSTANT_InvokeDynamic} entry. * In any case, distinct call sites always have distinct linkage state. *

    - * Moreover, for the purpose of distinguishing dynamic call sites, - * the JVM is allowed (but not required) to make internal copies - * of {@code invokedynamic} instructions, each one - * constituting a separate dynamic call site with its own linkage state. - * Such copying, if it occurs, cannot be observed except indirectly via - * execution of bootstrap methods and target methods. - *

    * A dynamic call site is originally in an unlinked state. In this state, there is * no target method for the call site to invoke. * A dynamic call site is linked by means of a bootstrap method, @@ -90,17 +82,35 @@ * bootstrap method was specified dynamically, in a per-class basis, during class initialization.) * *

    constant pool entries for {@code invokedynamic} instructions

    - * If a constant pool entry has the tag {@code CONSTANT_InvokeDynamic} (decimal 17), - * it must contain exactly four more bytes. - * The first two bytes after the tag must be an index to a {@code CONSTANT_MethodHandle} - * entry, and the second two bytes must be an index to a {@code CONSTANT_NameAndType}. + * PROVISIONAL API, WORK IN PROGRESS: + * If a constant pool entry has the tag {@code CONSTANT_InvokeDynamic} (decimal 18), + * it must contain at least six more bytes after the tag. + * All of these bytes are grouped in pairs, + * and each pair is interpreted as a 16-bit index (in the usual {@code u2} format). + * The first pair of bytes after the tag must be an index to a {@code CONSTANT_MethodHandle} + * entry, and the second pair of bytes must be an index to a {@code CONSTANT_NameAndType}. + * The third pair of bytes specifies a count N of remaining byte pairs. + * After the tag and required bytes, there must be exactly 2N remaining bytes + * in the constant pool entry, each pair providing the index of a constant pool entry. + *

    * The first index specifies a bootstrap method used by the associated dynamic call sites. * The second index specifies the method name, argument types, and return type of the dynamic call site. * The structure of such an entry is therefore analogous to a {@code CONSTANT_Methodref}, - * except that the {@code CONSTANT_Class} reference in a {@code CONSTANT_Methodref} entry - * is replaced by a bootstrap method reference. + * except that the bootstrap method reference replaces + * the {@code CONSTANT_Class} reference of a {@code CONSTANT_Methodref} entry. + * The remaining indexes (if there is a non-zero count) specify + * additional static arguments for the bootstrap method. + *

    + * Some older JVMs may allow an older constant pool entry tag of decimal 17. + * The format and behavior of a constant pool entry with this tag is identical to + * an entry with a tag of decimal 18, except that the constant pool entry must not + * contain extra static arguments or a static argument count. + * The fixed size of such an entry is therefore four bytes after the tag. + * The value of the missing static argument count is taken to be zero. + * (Note: The Proposed Final Draft of this specification is not likely to support + * both of these formats.) * - *

    constant pool entries for {@code MethodType}s

    + *

    constant pool entries for {@linkplain java.dyn.MethodType method types}

    * If a constant pool entry has the tag {@code CONSTANT_MethodType} (decimal 16), * it must contain exactly two more bytes, which must be an index to a {@code CONSTANT_Utf8} * entry which represents a method type signature. @@ -112,8 +122,13 @@ * but not initialized. * Access checking and error reporting is performed exactly as it is for * references by {@code ldc} instructions to {@code CONSTANT_Class} constants. + *

    + * Every use of this constant pool entry must lead to the same outcome. + * If the resolution of the names in the method type constant causes an exception to occur, + * this exception must be recorded by the JVM, and re-thrown on every subsequent attempt + * to use this particular constant. * - *

    constant pool entries for {@code MethodHandle}s

    + *

    constant pool entries for {@linkplain java.dyn.MethodHandle method handles}

    * If a constant pool entry has the tag {@code CONSTANT_MethodHandle} (decimal 15), * it must contain exactly three more bytes. The first byte after the tag is a subtag * value which must be in the range 1 through 9, and the last two must be an index to a @@ -129,7 +144,7 @@ *

    * As with {@code CONSTANT_Class} and {@code CONSTANT_MethodType} constants, * the {@code Class} or {@code MethodType} object which reifies the field or method's - * type is created. Any classes mentioned in this reificaiton will be loaded if necessary, + * type is created. Any classes mentioned in this reification will be loaded if necessary, * but not initialized, and access checking and error reporting performed as usual. *

    * The method handle itself will have a type and behavior determined by the subtag as follows: @@ -150,14 +165,29 @@ *

    * The special names {@code } and {@code } are not allowed except for subtag 8 as shown. *

    - * The verifier applies the same access checks and restrictions for these references as for the hypothetical + * The JVM verifier and linker apply the same access checks and restrictions for these references as for the hypothetical * bytecode instructions specified in the last column of the table. In particular, method handles to * private and protected members can be created in exactly those classes for which the corresponding * normal accesses are legal. *

    - * None of these constant types force class initialization. - * Method handles for subtags {@code REF_getStatic}, {@code REF_putStatic}, and {@code REF_invokeStatic} + * A constant may refer to a method or constructor with the {@code varargs} + * bit (hexadecimal {@code 80}) set in its modifier bitmask. + * The method handle constant produced for such a method behaves the same + * as if the {@code varargs} bit were not set. + * The argument-collecting behavior of {@code varargs} can be emulated by + * adapting the method handle constant with + * {@link java.dyn.MethodHandle#asCollector asCollector}. + * There is no provision for doing this automatically. + *

    + * Although the {@code CONSTANT_MethodHandle} and {@code CONSTANT_MethodType} constant types + * resolve class names, they do not force class initialization. + * Method handle constants for subtags {@code REF_getStatic}, {@code REF_putStatic}, and {@code REF_invokeStatic} * may force class initialization on their first invocation, just like the corresponding bytecodes. + *

    + * Every use of this constant pool entry must lead to the same outcome. + * If the resolution of the names in the method handle constant causes an exception to occur, + * this exception must be recorded by the JVM, and re-thrown on every subsequent attempt + * to use this particular constant. * *

    Bootstrap Methods

    * Before the JVM can execute a dynamic call site (an {@code invokedynamic} instruction), @@ -181,24 +211,36 @@ * call site execution. * Linkage does not trigger class initialization. *

    - * Next, the bootstrap method call is started, with four values being stacked: + * Next, the bootstrap method call is started, with four or five values being stacked: *

      *
    • a {@code MethodHandle}, the resolved bootstrap method itself
    • - *
    • a {@code Class}, the caller class in which dynamic call site occurs
    • + *
    • a {@code MethodHandles.Lookup}, a lookup object on the caller class in which dynamic call site occurs
    • *
    • a {@code String}, the method name mentioned in the call site
    • *
    • a {@code MethodType}, the resolved type signature of the call
    • + *
    • optionally, a single object representing one or more additional static arguments
    • *
    * The method handle is then applied to the other values as if by - * {@linkplain java.dyn.MethodHandle#invokeGeneric the invokeGeneric method}. - * The returned result must be a {@link java.dyn.CallSite CallSite}, a {@link java.dyn.MethodHandle MethodHandle}, - * or another {@link java.dyn.MethodHandleProvider MethodHandleProvider} value. - * The method {@linkplain java.dyn.MethodHandleProvider#asMethodHandle asMethodHandle} - * is then called on the returned value. The result of that second - * call is the {@code MethodHandle} which becomes the - * permanent binding for the dynamic call site. - * That method handle's type must be exactly equal to the type + * {@link java.dyn.MethodHandle#invokeGeneric invokeGeneric}. + * The returned result must be a {@link java.dyn.CallSite CallSite} (or a subclass). + * The type of the call site's target must be exactly equal to the type * derived from the dynamic call site signature and passed to * the bootstrap method. + * The call site then becomes permanently linked to the dynamic call site. + *

    + * As long as each bootstrap method can be correctly invoked + * by invokeGeneric, its detailed type is arbitrary. + * For example, the first argument could be {@code Object} + * instead of {@code MethodHandles.Lookup}, and the return type + * could also be {@code Object} instead of {@code CallSite}. + *

    + * As with any method handle constant, a {@code varargs} modifier bit + * on the bootstrap method is ignored. + *

    + * Note that the first argument of the bootstrap method cannot be + * a simple {@code Class} reference. (This is a change from earlier + * versions of this specification. If the caller class is needed, + * it is easy to {@linkplain java.dyn.MethodHandles.Lookup#lookupClass() extract it} + * from the {@code Lookup} object. *

    * After resolution, the linkage process may fail in a variety of ways. * All failures are reported by an {@link java.dyn.InvokeDynamicBootstrapError InvokeDynamicBootstrapError}, @@ -206,13 +248,14 @@ * site execution. * The following circumstances will cause this: *

      + *
    • the bootstrap method cannot be resolved
    • + *
    • the bootstrap method has the wrong arity, + * causing {@code invokeGeneric} to throw {@code WrongMethodTypeException}
    • + *
    • the bootstrap method has a wrong argument or return type
    • *
    • the bootstrap method invocation completes abnormally
    • *
    • the result from the bootstrap invocation is not a reference to - * an object of type {@link java.dyn.MethodHandleProvider MethodHandleProvider}
    • - *
    • the call to {@code asMethodHandle} completes abnormally
    • - *
    • the call to {@code asMethodHandle} fails to return a reference to - * an object of type {@link java.dyn.MethodHandle MethodHandle}
    • - *
    • the method handle produced by {@code asMethodHandle} does not have + * an object of type {@link java.dyn.CallSite CallSite}
    • + *
    • the target of the {@code CallSite} does not have a target of * the expected {@code MethodType}
    • *
    *

    timing of linkage

    @@ -220,67 +263,119 @@ * The bootstrap method call implementing the linkage occurs within * a thread that is attempting a first execution. *

    - * If there are several such threads, the JVM picks one thread - * and runs the bootstrap method while the others wait for the - * invocation to terminate normally or abnormally. - *

    - * After a bootstrap method is called and a method handle target - * successfully extracted, the JVM attempts to link the instruction - * being executed to the target method handle. - * This may fail if there has been intervening linkage - * or invalidation event for the same instruction. - * If such a failure occurs, the dynamic call site must be - * re-executed from the beginning, either re-linking it - * (if it has been invalidated) or invoking the target - * (if it the instruction has been linked by some other means). - *

    - * If the instruction is linked successfully, the target method - * handle is invoked to complete the instruction execution. - * The state of linkage continues until the method containing the - * dynamic call site is garbage collected, or the dynamic call site - * is invalidated by an explicit request, - * such as {@link java.dyn.Linkage#invalidateCallerClass Linkage.invalidateCallerClass}. + * If there are several such threads, the bootstrap method may be + * invoked in several threads concurrently. + * Therefore, bootstrap methods which access global application + * data must take the usual precautions against race conditions. + * In any case, every {@code invokedynamic} instruction is either + * unlinked or linked to a unique {@code CallSite} object. *

    * In an application which requires dynamic call sites with individually * mutable behaviors, their bootstrap methods should produce distinct * {@link java.dyn.CallSite CallSite} objects, one for each linkage request. - *

    - * If a class containing {@code invokedynamic} instructions - * is {@linkplain java.dyn.Linkage#invalidateCallerClass(Class) invalidated}, - * subsequent execution of those {@code invokedynamic} instructions - * will require linking. - * It is as if they had never been executed in the first place. - * (However, invalidation does not cause constant pool entries to be - * resolved a second time.) - *

    - * Invalidation events and bootstrap method calls for a particular - * dynamic call site are globally ordered relative to each other. - * When an invokedynamic instruction is invalidated, if there is - * simultaneously a bootstrap method invocation in process - * (in the same thread or a different thread), the result - * eventually returned must not be used to link the call site. - * Put another way, when a call site is invalidated, its - * subsequent linkage (if any) must be performed by a bootstrap method - * call initiated after the invalidation occurred. + * Alternatively, an application can link a single {@code CallSite} object + * to several {@code invokedynamic} instructions, in which case + * a change to the target method will become visible at each of + * the instructions. *

    * If several threads simultaneously execute a bootstrap method for a single dynamic - * call site, the JVM must choose one target object and installs it visibly to + * call site, the JVM must choose one {@code CallSite} object and install it visibly to * all threads. Any other bootstrap method calls are allowed to complete, but their * results are ignored, and their dynamic call site invocations proceed with the originally * chosen target object. *

    - * The JVM is free to duplicate dynamic call sites. - * This means that, even if a class contains just one {@code invokedynamic} - * instruction, its bootstrap method may be executed several times, - * once for each duplicate. Thus, bootstrap method code should not - * assume an exclusive one-to-one correspondence between particular occurrences - * of {@code invokedynamic} bytecodes in class files and linkage events. - *

    - * In principle, each individual execution of an {@code invokedynamic} - * instruction could be deemed (by a conforming implementation) to be a separate - * duplicate, requiring its own execution of the bootstrap method. - * However, implementations are expected to perform code duplication - * (if at all) in order to improve performance, not make it worse. + * Note: Unlike some previous versions of this specification, + * these rules do not enable the JVM to duplicate dynamic call sites, + * or to issue “causeless” bootstrap method calls. + * Every dynamic call site transitions at most once from unlinked to linked, + * just before its first invocation. + * + *

    static arguments to the bootstrap method

    + * PROVISIONAL API, WORK IN PROGRESS: + * An {@code invokedynamic} instruction specifies at least three arguments + * to pass to its bootstrap method: + * The caller class (expressed as a {@link java.dyn.MethodHandles.Lookup Lookup object}, + * the name (extracted from the {@code CONSTANT_NameAndType} entry), + * and the type (also extracted from the {@code CONSTANT_NameAndType} entry). + * The {@code invokedynamic} instruction may specify additional metadata values + * to pass to its bootstrap method. + * Collectively, these values are called static arguments to the + * {@code invokedynamic} instruction, because they are used once at link + * time to determine the instruction's behavior on subsequent sets of + * dynamic arguments. + *

    + * Static arguments are used to communicate application-specific meta-data + * to the bootstrap method. + * Drawn from the constant pool, they may include references to classes, method handles, + * or numeric data that may be relevant to the task of linking that particular call site. + *

    + * The third byte pair in a {@code CONSTANT_InvokeDynamic} entry, if it is not zero, + * counts up to 65535 additional constant pool indexes which contribute to a static argument. + * Each of these indexes must refer to one of a type of constant entry which is compatible with + * the {@code ldc} instruction. + * Before the bootstrap method is invoked, each index is used to compute an {@code Object} + * reference to the indexed value in the constant pool. + * If the value is a primitive type, it is converted to a reference by boxing conversion. + * The valid constant pool entries are listed in this table: + * + * + * + * + * + * + * + * + * + * + * + *
    entry typeargument typeargument value
    CONSTANT_Stringjava.lang.Stringthe indexed string literal
    CONSTANT_Classjava.lang.Classthe indexed class, resolved
    CONSTANT_Integerjava.lang.Integerthe indexed int value
    CONSTANT_Longjava.lang.Longthe indexed long value
    CONSTANT_Floatjava.lang.Floatthe indexed float value
    CONSTANT_Doublejava.lang.Doublethe indexed double value
    CONSTANT_MethodHandlejava.dyn.MethodHandlethe indexed method handle constant
    CONSTANT_MethodTypejava.dyn.MethodTypethe indexed method type constant
    + *
    + *

    + * If a given {@code invokedynamic} instruction specifies no static arguments, + * the instruction's bootstrap method will be invoked on three arguments, + * conveying the instruction's caller class, name, and method type. + * If the {@code invokedynamic} instruction specifies one or more static arguments, + * a fourth argument will be passed to the bootstrap argument, + * either an {@code Object} reference to the sole extra argument (if there is one) + * or an {@code Object} array of references to all the arguments (if there are two or more), + * as if the bootstrap method is a variable-arity method. + * + * + * + * + * + * + *
    Nsample bootstrap method
    0CallSite bootstrap(Lookup caller, String name, MethodType type)
    1CallSite bootstrap(Lookup caller, String name, MethodType type, Object arg)
    2CallSite bootstrap(Lookup caller, String name, MethodType type, Object... args)
    + *
    + *

    + * The argument and return types listed here are used by the {@code invokeGeneric} + * call to the bootstrap method. + * As noted above, the actual method type of the bootstrap method can vary. + * For example, the fourth argument could be {@code MethodHandle}, + * if that is the type of the corresponding constant in + * the {@code CONSTANT_InvokeDynamic} entry. + * In that case, the {@code invokeGeneric} call will pass the extra method handle + * constant as an {@code Object}, but the type matching machinery of {@code invokeGeneric} + * will cast the reference back to {@code MethodHandle} before invoking the bootstrap method. + * (If a string constant were passed instead, by badly generated code, that cast would then fail.) + *

    + * If the fourth argument is an array, the array element type must be {@code Object}, + * since object arrays (as produced by the JVM at this point) cannot be converted + * to other array types. + *

    + * If an array is provided, it will appear to be freshly allocated. + * That is, the same array will not appear to two bootstrap method calls. + *

    + * Extra bootstrap method arguments are intended to allow language implementors + * to safely and compactly encode metadata. + * In principle, the name and extra arguments are redundant, + * since each call site could be given its own unique bootstrap method. + * Such a practice is likely to produce large class files and constant pools. + *

    + * The Proposed Final Draft of JSR 292 may remove extra static arguments, + * with the associated constant tag of 18, leaving the constant tag 17. + * If the constant tag of 18 is retained, the constant tag 17 may be removed + * for the sake of simplicity. * * @author John Rose, JSR 292 EG */ diff --git a/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java b/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java index 65bbd372b9c..06a24faba49 100644 --- a/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java +++ b/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java @@ -487,7 +487,7 @@ public class AdapterMethodHandle extends BoundMethodHandle { static class WithTypeHandler extends AdapterMethodHandle { final MethodHandle target, typeHandler; WithTypeHandler(MethodHandle target, MethodHandle typeHandler) { - super(target, target.type(), OP_RETYPE_ONLY); + super(target, target.type(), makeConv(OP_RETYPE_ONLY)); this.target = target; this.typeHandler = typeHandler.asType(TYPE_HANDLER_TYPE); } diff --git a/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java b/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java index 4f25262f46f..cfe19663a27 100644 --- a/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java +++ b/jdk/src/share/classes/sun/dyn/BoundMethodHandle.java @@ -106,18 +106,17 @@ public class BoundMethodHandle extends MethodHandle { assert(this instanceof AdapterMethodHandle); } - /** Initialize the current object as a Java method handle, binding it + /** Initialize the current object as a self-bound method handle, binding it * as the first argument of the method handle {@code entryPoint}. * The invocation type of the resulting method handle will be the * same as {@code entryPoint}, except that the first argument * type will be dropped. */ - protected BoundMethodHandle(MethodHandle entryPoint) { - super(Access.TOKEN, entryPoint.type().dropParameterTypes(0, 1)); + protected BoundMethodHandle(Access token, MethodHandle entryPoint) { + super(token, entryPoint.type().dropParameterTypes(0, 1)); this.argument = this; // kludge; get rid of this.vmargslot = this.type().parameterSlotDepth(0); initTarget(entryPoint, 0); - assert(this instanceof JavaMethodHandle); } /** Make sure the given {@code argument} can be used as {@code argnum}-th @@ -173,6 +172,11 @@ public class BoundMethodHandle extends MethodHandle { @Override public String toString() { + return MethodHandleImpl.addTypeString(baseName(), this); + } + + /** Component of toString() before the type string. */ + protected String baseName() { MethodHandle mh = this; while (mh instanceof BoundMethodHandle) { Object info = MethodHandleNatives.getTargetInfo(mh); @@ -185,12 +189,16 @@ public class BoundMethodHandle extends MethodHandle { if (name != null) return name; else - return super.toString(); // , probably + return noParens(super.toString()); // "invoke", probably } assert(mh != this); - if (mh instanceof JavaMethodHandle) - break; // access JMH.toString(), not BMH.toString() } - return mh.toString(); + return noParens(mh.toString()); + } + + private static String noParens(String str) { + int paren = str.indexOf('('); + if (paren >= 0) str = str.substring(0, paren); + return str; } } diff --git a/jdk/src/share/classes/sun/dyn/CallSiteImpl.java b/jdk/src/share/classes/sun/dyn/CallSiteImpl.java index f7c2d7099a7..f9bea6d5486 100644 --- a/jdk/src/share/classes/sun/dyn/CallSiteImpl.java +++ b/jdk/src/share/classes/sun/dyn/CallSiteImpl.java @@ -41,25 +41,39 @@ public class CallSiteImpl { Object info, // Caller information: MemberName callerMethod, int callerBCI) { - Class caller = callerMethod.getDeclaringClass(); + Class callerClass = callerMethod.getDeclaringClass(); + Object caller; + if (bootstrapMethod.type().parameterType(0) == Class.class) + caller = callerClass; // remove for PFD + else + caller = MethodHandleImpl.IMPL_LOOKUP.in(callerClass); if (bootstrapMethod == null) { // If there is no bootstrap method, throw IncompatibleClassChangeError. // This is a valid generic error type for resolution (JLS 12.3.3). throw new IncompatibleClassChangeError - ("Class "+caller.getName()+" has not declared a bootstrap method for invokedynamic"); + ("Class "+callerClass.getName()+" has not declared a bootstrap method for invokedynamic"); } CallSite site; try { Object binding; - if (false) // switch when invokeGeneric works - binding = bootstrapMethod.invokeGeneric(caller, name, type); - else - binding = bootstrapMethod.invokeVarargs(new Object[]{ caller, name, type }); + if (info == null) { + if (false) // switch when invokeGeneric works + binding = bootstrapMethod.invokeGeneric(caller, name, type); + else + binding = bootstrapMethod.invokeVarargs(new Object[]{ caller, name, type }); + } else { + info = maybeReBox(info); + if (false) // switch when invokeGeneric works + binding = bootstrapMethod.invokeGeneric(caller, name, type, info); + else + binding = bootstrapMethod.invokeVarargs(new Object[]{ caller, name, type, info }); + } //System.out.println("BSM for "+name+type+" => "+binding); if (binding instanceof CallSite) { site = (CallSite) binding; - } else if (binding instanceof MethodHandleProvider) { - MethodHandle target = ((MethodHandleProvider) binding).asMethodHandle(); + } else if (binding instanceof MethodHandle) { + // Transitional! + MethodHandle target = (MethodHandle) binding; site = new ConstantCallSite(target); } else { throw new ClassCastException("bootstrap method failed to produce a MethodHandle or CallSite"); @@ -79,6 +93,24 @@ public class CallSiteImpl { return site; } + private static Object maybeReBox(Object x) { + if (x instanceof Integer) { + int xi = (int) x; + if (xi == (byte) xi) + x = xi; // must rebox; see JLS 5.1.7 + return x; + } else if (x instanceof Object[]) { + Object[] xa = (Object[]) x; + for (int i = 0; i < xa.length; i++) { + if (xa[i] instanceof Integer) + xa[i] = maybeReBox(xa[i]); + } + return xa; + } else { + return x; + } + } + // This method is private in CallSite because it touches private fields in CallSite. // These private fields (vmmethod, vmindex) are specific to the JVM. private static final MethodHandle PRIVATE_INITIALIZE_CALL_SITE; diff --git a/jdk/src/share/classes/sun/dyn/FilterGeneric.java b/jdk/src/share/classes/sun/dyn/FilterGeneric.java index 1e7b594dd93..1eaf34d5a13 100644 --- a/jdk/src/share/classes/sun/dyn/FilterGeneric.java +++ b/jdk/src/share/classes/sun/dyn/FilterGeneric.java @@ -115,7 +115,7 @@ class FilterGeneric { static MethodHandle make(Kind kind, int pos, MethodHandle filter, MethodHandle target) { FilterGeneric fgen = of(kind, pos, filter.type(), target.type()); - return fgen.makeInstance(kind, pos, filter, target).asMethodHandle(); + return fgen.makeInstance(kind, pos, filter, target); } /** Return the adapter information for this target and filter type. */ @@ -225,13 +225,13 @@ class FilterGeneric { * The invoker is kept separate from the target because it can be * generated once per type erasure family, and reused across adapters. */ - static abstract class Adapter extends JavaMethodHandle { + static abstract class Adapter extends BoundMethodHandle { protected final MethodHandle filter; // transforms one or more arguments protected final MethodHandle target; // ultimate target @Override public String toString() { - return target.toString(); + return MethodHandleImpl.addTypeString(target, this); } protected boolean isPrototype() { return target == null; } @@ -246,7 +246,7 @@ class FilterGeneric { protected Adapter(MethodHandle entryPoint, MethodHandle filter, MethodHandle target) { - super(entryPoint); + super(Access.TOKEN, entryPoint); this.filter = filter; this.target = target; } diff --git a/jdk/src/share/classes/sun/dyn/FilterOneArgument.java b/jdk/src/share/classes/sun/dyn/FilterOneArgument.java index cc8ecf66d19..2712242c289 100644 --- a/jdk/src/share/classes/sun/dyn/FilterOneArgument.java +++ b/jdk/src/share/classes/sun/dyn/FilterOneArgument.java @@ -36,7 +36,7 @@ import static sun.dyn.MemberName.uncaughtException; * final method type is the responsibility of a JVM-level adapter. * @author jrose */ -public class FilterOneArgument extends JavaMethodHandle { +public class FilterOneArgument extends BoundMethodHandle { protected final MethodHandle filter; // Object -> Object protected final MethodHandle target; // Object -> Object @@ -62,7 +62,7 @@ public class FilterOneArgument extends JavaMethodHandle { } protected FilterOneArgument(MethodHandle filter, MethodHandle target) { - super(INVOKE); + super(Access.TOKEN, INVOKE); this.filter = filter; this.target = target; } diff --git a/jdk/src/share/classes/sun/dyn/FromGeneric.java b/jdk/src/share/classes/sun/dyn/FromGeneric.java index 24f40c0c1ac..3e0d215fc97 100644 --- a/jdk/src/share/classes/sun/dyn/FromGeneric.java +++ b/jdk/src/share/classes/sun/dyn/FromGeneric.java @@ -241,7 +241,7 @@ class FromGeneric { * The invoker is kept separate from the target because it can be * generated once per type erasure family, and reused across adapters. */ - static abstract class Adapter extends JavaMethodHandle { + static abstract class Adapter extends BoundMethodHandle { /* * class X<> extends Adapter { * (MH, Object**N)=>raw(R) invoker; @@ -256,7 +256,7 @@ class FromGeneric { @Override public String toString() { - return target.toString(); + return MethodHandleImpl.addTypeString(target, this); } protected boolean isPrototype() { return target == null; } @@ -271,7 +271,7 @@ class FromGeneric { protected Adapter(MethodHandle entryPoint, MethodHandle invoker, MethodHandle convert, MethodHandle target) { - super(entryPoint); + super(Access.TOKEN, entryPoint); this.invoker = invoker; this.convert = convert; this.target = target; diff --git a/jdk/src/share/classes/sun/dyn/Invokers.java b/jdk/src/share/classes/sun/dyn/Invokers.java index 2f2c92a779f..123dd53fb94 100644 --- a/jdk/src/share/classes/sun/dyn/Invokers.java +++ b/jdk/src/share/classes/sun/dyn/Invokers.java @@ -26,6 +26,7 @@ package sun.dyn; import java.dyn.*; +import sun.dyn.empty.Empty; /** * Construction and caching of often-used invokers. @@ -48,6 +49,9 @@ public class Invokers { // generic (untyped) invoker for the outgoing call; accepts a single Object[] private final /*lazy*/ MethodHandle[] varargsInvokers; + // invoker for an unbound callsite + private /*lazy*/ MethodHandle uninitializedCallSite; + /** Compute and cache information common to all collecting adapters * that implement members of the erasure-family of the given erased type. */ @@ -107,6 +111,35 @@ public class Invokers { return vaInvoker; } + private static MethodHandle THROW_UCS = null; + + public MethodHandle uninitializedCallSite() { + MethodHandle invoker = uninitializedCallSite; + if (invoker != null) return invoker; + if (targetType.parameterCount() > 0) { + MethodType type0 = targetType.dropParameterTypes(0, targetType.parameterCount()); + Invokers invokers0 = MethodTypeImpl.invokers(Access.TOKEN, type0); + invoker = MethodHandles.dropArguments(invokers0.uninitializedCallSite(), + 0, targetType.parameterList()); + assert(invoker.type().equals(targetType)); + uninitializedCallSite = invoker; + return invoker; + } + if (THROW_UCS == null) { + try { + THROW_UCS = MethodHandleImpl.IMPL_LOOKUP + .findStatic(CallSite.class, "uninitializedCallSite", + MethodType.methodType(Empty.class)); + } catch (NoAccessException ex) { + throw new RuntimeException(ex); + } + } + invoker = AdapterMethodHandle.makeRetypeRaw(Access.TOKEN, targetType, THROW_UCS); + assert(invoker.type().equals(targetType)); + uninitializedCallSite = invoker; + return invoker; + } + public String toString() { return "Invokers"+targetType; } diff --git a/jdk/src/share/classes/sun/dyn/JavaMethodHandle.java b/jdk/src/share/classes/sun/dyn/JavaMethodHandle.java deleted file mode 100644 index 2ce44d1d89e..00000000000 --- a/jdk/src/share/classes/sun/dyn/JavaMethodHandle.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package sun.dyn; - -import java.dyn.*; -import sun.dyn.Access; - -/** - * A Java method handle is a deprecated proposal for extending - * the basic method handle type with additional - * programmer defined methods and fields. - * Its behavior as a method handle is determined at instance creation time, - * by providing the new instance with an "entry point" method handle - * to handle calls. This entry point must accept a leading argument - * whose type is the Java method handle itself or a supertype, and the - * entry point is always called with the Java method handle itself as - * the first argument. This is similar to ordinary virtual methods, which also - * accept the receiver object {@code this} as an implicit leading argument. - * The {@code MethodType} of the Java method handle is the same as that - * of the entry point method handle, with the leading parameter type - * omitted. - *

    - * Here is an example of usage, creating a hybrid object/functional datum: - *

    - * class Greeter extends JavaMethodHandle {
    - *     private String greeting = "hello";
    - *     public void setGreeting(String s) { greeting = s; }
    - *     public void run() { System.out.println(greeting+", "+greetee); }
    - *     private final String greetee;
    - *     Greeter(String greetee) {
    - *         super(RUN); // alternatively, super("run")
    - *         this.greetee = greetee;
    - *     }
    - *     // the entry point function is computed once:
    - *     private static final MethodHandle RUN
    - *         = MethodHandles.lookup().findVirtual(Greeter.class, "run",
    - *               MethodType.make(void.class));
    - * }
    - * // class Main { public static void main(String... av) { ...
    - * Greeter greeter = new Greeter("world");
    - * greeter.run();  // prints "hello, world"
    - * // Statically typed method handle invocation (most direct):
    - * MethodHandle mh = greeter;
    - * mh.<void>invokeExact();  // also prints "hello, world"
    - * // Dynamically typed method handle invocation:
    - * MethodHandles.invokeExact(greeter);  // also prints "hello, world"
    - * greeter.setGreeting("howdy");
    - * mh.invokeExact();  // prints "howdy, world" (object-like mutable behavior)
    - * 
    - *

    - * In the example of {@code Greeter}, the method {@code run} provides the entry point. - * The entry point need not be a constant value; it may be independently - * computed in each call to the constructor. The entry point does not - * even need to be a method on the {@code Greeter} class, though - * that is the typical case. - *

    - * The entry point may also be provided symbolically, in which case the the - * {@code JavaMethodHandle} constructor performs the lookup of the entry point. - * This makes it possible to use {@code JavaMethodHandle} to create an anonymous - * inner class: - *

    - * // We can also do this with symbolic names and/or inner classes:
    - * MethodHandles.invokeExact(new JavaMethodHandle("yow") {
    - *     void yow() { System.out.println("yow, world"); }
    - * });
    - * 
    - *

    - * Here is similar lower-level code which works in terms of a bound method handle. - *

    - *     class Greeter {
    - *         public void run() { System.out.println("hello, "+greetee); }
    - *         private final String greetee;
    - *         Greeter(String greetee) { this.greetee = greetee; }
    - *         // the entry point function is computed once:
    - *         private static final MethodHandle RUN
    - *             = MethodHandles.findVirtual(Greeter.class, "run",
    - *                   MethodType.make(void.class));
    - *     }
    - *     // class Main { public static void main(String... av) { ...
    - *     Greeter greeter = new Greeter("world");
    - *     greeter.run();  // prints "hello, world"
    - *     MethodHandle mh = MethodHanndles.insertArgument(Greeter.RUN, 0, greeter);
    - *     mh.invokeExact();  // also prints "hello, world"
    - * 
    - * Note that the method handle must be separately created as a view on the base object. - * This increases footprint, complexity, and dynamic indirections. - *

    - * Here is a pure functional value expressed most concisely as an anonymous inner class: - *

    - *     // class Main { public static void main(String... av) { ...
    - *     final String greetee = "world";
    - *     MethodHandle greeter = new JavaMethodHandle("run") {
    - *         private void run() { System.out.println("hello, "+greetee); }
    - *     }
    - *     greeter.invokeExact();  // prints "hello, world"
    - * 
    - *

    - * Here is an abstract parameterized lvalue, efficiently expressed as a subtype of MethodHandle, - * and instantiated as an anonymous class. The data structure is a handle to 1-D array, - * with a specialized index type (long). It is created by inner class, and uses - * signature-polymorphic APIs throughout. - *

    - *     abstract class AssignableMethodHandle extends JavaMethodHandle {
    - *       private final MethodHandle setter;
    - *       public MethodHandle setter() { return setter; }
    - *       public AssignableMethodHandle(String get, String set) {
    - *         super(get);
    - *         MethodType getType = this.type();
    - *         MethodType setType = getType.insertParameterType(getType.parameterCount(), getType.returnType()).changeReturnType(void.class);
    - *         this.setter = MethodHandles.publicLookup().bind(this, set, setType);
    - *       }
    - *     }
    - *     // class Main { public static void main(String... av) { ...
    - *     final Number[] stuff = { 123, 456 };
    - *     AssignableMethodHandle stuffPtr = new AssignableMethodHandle("get", "set") {
    - *         public Number get(long i)           { return stuff[(int)i]; }
    - *         public void   set(long i, Object x) {        stuff[(int)i] = x; }
    - *     }
    - *     int x = (Integer) stuffPtr.<Number>invokeExact(1L);  // 456
    - *     stuffPtr.setter().<void>invokeExact(0L, (Number) 789);  // replaces 123 with 789
    - * 
    - * @see MethodHandle - * @deprecated The JSR 292 EG intends to replace {@code JavaMethodHandle} with - * an interface-based API for mixing method handle behavior with other classes. - * @author John Rose, JSR 292 EG - */ -public abstract class JavaMethodHandle - // Note: This is an implementation inheritance hack, and will be removed - // with a JVM change which moves the required hidden behavior onto this class. - extends sun.dyn.BoundMethodHandle -{ - private static final Access IMPL_TOKEN = Access.getToken(); - - /** - * When creating a {@code JavaMethodHandle}, the actual method handle - * invocation behavior will be delegated to the specified {@code entryPoint}. - * This may be any method handle which can take the newly constructed object - * as a leading parameter. - *

    - * The method handle type of {@code this} (i.e, the fully constructed object) - * will be {@code entryPoint}, minus the leading argument. - * The leading argument will be bound to {@code this} on every method - * handle invocation. - * @param entryPoint the method handle to handle calls - */ - protected JavaMethodHandle(MethodHandle entryPoint) { - super(entryPoint); - } -} diff --git a/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java b/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java index 49a625367a4..85b9f01f55d 100644 --- a/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java +++ b/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java @@ -199,7 +199,7 @@ public abstract class MethodHandleImpl { return allocator; } - static final class AllocateObject extends JavaMethodHandle { + static final class AllocateObject extends BoundMethodHandle { private static final Unsafe unsafe = Unsafe.getUnsafe(); private final Class allocateClass; @@ -207,7 +207,7 @@ public abstract class MethodHandleImpl { private AllocateObject(MethodHandle invoker, Class allocateClass, MethodHandle rawConstructor) { - super(invoker); + super(Access.TOKEN, invoker); this.allocateClass = allocateClass; this.rawConstructor = rawConstructor; } @@ -237,7 +237,7 @@ public abstract class MethodHandleImpl { } @Override public String toString() { - return allocateClass.getSimpleName(); + return addTypeString(allocateClass.getSimpleName(), this); } @SuppressWarnings("unchecked") private C allocate() throws InstantiationException { @@ -369,19 +369,19 @@ public abstract class MethodHandleImpl { return mhs[isSetter ? 1 : 0]; } - static final class FieldAccessor extends JavaMethodHandle { + static final class FieldAccessor extends BoundMethodHandle { private static final Unsafe unsafe = Unsafe.getUnsafe(); final Object base; // for static refs only final long offset; final String name; public FieldAccessor(Access token, MemberName field, boolean isSetter) { - super(fhandle(field.getDeclaringClass(), field.getFieldType(), isSetter, field.isStatic())); + super(Access.TOKEN, fhandle(field.getDeclaringClass(), field.getFieldType(), isSetter, field.isStatic())); this.offset = (long) field.getVMIndex(token); this.name = field.getName(); this.base = staticBase(field); } - public String toString() { return name; } + public String toString() { return addTypeString(name, this); } int getFieldI(C obj) { return unsafe.getInt(obj, offset); } void setFieldI(C obj, int x) { unsafe.putInt(obj, offset, x); } @@ -910,11 +910,11 @@ public abstract class MethodHandleImpl { throw new UnsupportedOperationException("NYI"); } - private static class GuardWithTest extends JavaMethodHandle { + private static class GuardWithTest extends BoundMethodHandle { private final MethodHandle test, target, fallback; private GuardWithTest(MethodHandle invoker, MethodHandle test, MethodHandle target, MethodHandle fallback) { - super(invoker); + super(Access.TOKEN, invoker); this.test = test; this.target = target; this.fallback = fallback; @@ -948,7 +948,7 @@ public abstract class MethodHandleImpl { } @Override public String toString() { - return target.toString(); + return addTypeString(target, this); } private Object invoke_V(Object... av) throws Throwable { if (test.invokeExact(av)) @@ -1038,7 +1038,7 @@ public abstract class MethodHandleImpl { return GuardWithTest.make(token, test, target, fallback); } - private static class GuardWithCatch extends JavaMethodHandle { + private static class GuardWithCatch extends BoundMethodHandle { private final MethodHandle target; private final Class exType; private final MethodHandle catcher; @@ -1047,14 +1047,14 @@ public abstract class MethodHandleImpl { } public GuardWithCatch(MethodHandle invoker, MethodHandle target, Class exType, MethodHandle catcher) { - super(invoker); + super(Access.TOKEN, invoker); this.target = target; this.exType = exType; this.catcher = catcher; } @Override public String toString() { - return target.toString(); + return addTypeString(target, this); } private Object invoke_V(Object... av) throws Throwable { try { @@ -1219,21 +1219,24 @@ public abstract class MethodHandleImpl { if (target != null) name = MethodHandleNatives.getMethodName(target); if (name == null) - return ""; - return name.getName(); + return "invoke" + target.type(); + return name.getName() + target.type(); } - public static String addTypeString(MethodHandle target) { - if (target == null) return "null"; - return target.toString() + target.type(); + static String addTypeString(Object obj, MethodHandle target) { + String str = String.valueOf(obj); + if (target == null) return str; + int paren = str.indexOf('('); + if (paren >= 0) str = str.substring(0, paren); + return str + target.type(); } - public static void checkSpreadArgument(Object av, int n) { + static void checkSpreadArgument(Object av, int n) { if (av == null ? n != 0 : ((Object[])av).length != n) throw newIllegalArgumentException("Array is not of length "+n); } - public static void raiseException(int code, Object actual, Object required) { + static void raiseException(int code, Object actual, Object required) { String message; // disregard the identity of the actual object, if it is not a class: if (!(actual instanceof Class) && !(actual instanceof MethodType)) diff --git a/jdk/src/share/classes/sun/dyn/SpreadGeneric.java b/jdk/src/share/classes/sun/dyn/SpreadGeneric.java index 2b12b067666..5ba601b13d7 100644 --- a/jdk/src/share/classes/sun/dyn/SpreadGeneric.java +++ b/jdk/src/share/classes/sun/dyn/SpreadGeneric.java @@ -208,7 +208,7 @@ class SpreadGeneric { * The invoker is kept separate from the target because it can be * generated once per type erasure family, and reused across adapters. */ - static abstract class Adapter extends JavaMethodHandle { + static abstract class Adapter extends BoundMethodHandle { /* * class X<> extends Adapter { * (Object**N)=>R target; @@ -221,21 +221,21 @@ class SpreadGeneric { @Override public String toString() { - return target.toString(); + return MethodHandleImpl.addTypeString(target, this); } static final MethodHandle NO_ENTRY = ValueConversions.identity(); protected boolean isPrototype() { return target == null; } protected Adapter(SpreadGeneric outer) { - super(NO_ENTRY); + super(Access.TOKEN, NO_ENTRY); this.outer = outer; this.target = null; assert(isPrototype()); } protected Adapter(SpreadGeneric outer, MethodHandle target) { - super(outer.entryPoint); + super(Access.TOKEN, outer.entryPoint); this.outer = outer; this.target = target; } diff --git a/jdk/src/share/classes/sun/dyn/ToGeneric.java b/jdk/src/share/classes/sun/dyn/ToGeneric.java index 65acc6f65b0..80e7430dbe6 100644 --- a/jdk/src/share/classes/sun/dyn/ToGeneric.java +++ b/jdk/src/share/classes/sun/dyn/ToGeneric.java @@ -323,7 +323,7 @@ class ToGeneric { * via another method handle {@code convert}, which is responsible for * converting the object result into the raw return value. */ - static abstract class Adapter extends JavaMethodHandle { + static abstract class Adapter extends BoundMethodHandle { /* * class X<> extends Adapter { * Object...=>Object target; @@ -337,13 +337,13 @@ class ToGeneric { @Override public String toString() { - return target == null ? "prototype:"+convert : target.toString(); + return target == null ? "prototype:"+convert : MethodHandleImpl.addTypeString(target, this); } protected boolean isPrototype() { return target == null; } /* Prototype constructor. */ protected Adapter(MethodHandle entryPoint) { - super(entryPoint); + super(Access.TOKEN, entryPoint); this.invoker = null; this.convert = entryPoint; this.target = null; @@ -355,7 +355,7 @@ class ToGeneric { } protected Adapter(MethodHandle entryPoint, MethodHandle invoker, MethodHandle convert, MethodHandle target) { - super(entryPoint); + super(Access.TOKEN, entryPoint); this.invoker = invoker; this.convert = convert; this.target = target; diff --git a/jdk/src/share/classes/sun/dyn/util/ValueConversions.java b/jdk/src/share/classes/sun/dyn/util/ValueConversions.java index aeacb9e0f0f..8cb5ece3967 100644 --- a/jdk/src/share/classes/sun/dyn/util/ValueConversions.java +++ b/jdk/src/share/classes/sun/dyn/util/ValueConversions.java @@ -649,7 +649,9 @@ public class ValueConversions { return mh; } // slow path - MethodType type = MethodType.methodType(wrap.primitiveType(), wrap.primitiveType()); + MethodType type = MethodType.methodType(wrap.primitiveType()); + if (wrap != Wrapper.VOID) + type = type.appendParameterTypes(wrap.primitiveType()); try { mh = IMPL_LOOKUP.findStatic(ValueConversions.class, "identity", type); } catch (NoAccessException ex) { @@ -677,7 +679,7 @@ public class ValueConversions { } private static MethodHandle retype(MethodType type, MethodHandle mh) { - return AdapterMethodHandle.makeRetypeOnly(IMPL_TOKEN, type, mh); + return AdapterMethodHandle.makeRetypeRaw(IMPL_TOKEN, type, mh); } private static final Object[] NO_ARGS_ARRAY = {}; diff --git a/jdk/src/share/classes/sun/dyn/util/VerifyAccess.java b/jdk/src/share/classes/sun/dyn/util/VerifyAccess.java index 13987dad9a9..0382bea42cd 100644 --- a/jdk/src/share/classes/sun/dyn/util/VerifyAccess.java +++ b/jdk/src/share/classes/sun/dyn/util/VerifyAccess.java @@ -25,7 +25,6 @@ package sun.dyn.util; -import java.dyn.LinkagePermission; import java.dyn.NoAccessException; import java.lang.reflect.Modifier; import sun.dyn.MemberName; @@ -43,6 +42,7 @@ public class VerifyAccess { private static final int PACKAGE_ONLY = 0; private static final int ALL_ACCESS_MODES = (PUBLIC|PRIVATE|PROTECTED|PACKAGE_ONLY); + private static final boolean ALLOW_NESTMATE_ACCESS = false; /** * Evaluate the JVM linkage rules for access to the given method @@ -102,6 +102,8 @@ public class VerifyAccess { // a superclass of the lookup class. } } + if (defc == lookupClass) + return true; // easy check; all self-access is OK switch (mods & ALL_ACCESS_MODES) { case PUBLIC: if (refc != defc) return true; // already checked above @@ -112,7 +114,8 @@ public class VerifyAccess { return isSamePackage(defc, lookupClass); case PRIVATE: // Loosened rules for privates follows access rules for inner classes. - return isSamePackageMember(defc, lookupClass); + return (ALLOW_NESTMATE_ACCESS && + isSamePackageMember(defc, lookupClass)); default: throw new IllegalArgumentException("bad modifiers: "+Modifier.toString(mods)); } @@ -206,24 +209,4 @@ public class VerifyAccess { } return false; } - - /** - * Ensure the requesting class have privileges to perform invokedynamic - * linkage operations on subjectClass. True if requestingClass is - * Access.class (meaning the request originates from the JVM) or if the - * classes are in the same package and have consistent class loaders. - * (The subject class loader must be identical with or be a child of - * the requesting class loader.) - * @param requestingClass - * @param subjectClass - */ - public static void checkBootstrapPrivilege(Class requestingClass, Class subjectClass, - String permissionName) { - if (requestingClass == null) return; - if (requestingClass == subjectClass) return; - SecurityManager security = System.getSecurityManager(); - if (security == null) return; // open season - if (isSamePackage(requestingClass, subjectClass)) return; - security.checkPermission(new LinkagePermission(permissionName, requestingClass)); - } } diff --git a/jdk/src/share/classes/sun/dyn/util/Wrapper.java b/jdk/src/share/classes/sun/dyn/util/Wrapper.java index 5229c807310..a3e34dd8147 100644 --- a/jdk/src/share/classes/sun/dyn/util/Wrapper.java +++ b/jdk/src/share/classes/sun/dyn/util/Wrapper.java @@ -26,17 +26,19 @@ package sun.dyn.util; public enum Wrapper { - INT(Integer.class, int.class, 'I', (Integer)(int)0, Format.signed(32)), - LONG(Long.class, long.class, 'J', (Long)(long)0, Format.signed(64)), + BOOLEAN(Boolean.class, boolean.class, 'Z', (Boolean)false, Format.unsigned(1)), + // These must be in the order defined for widening primitive conversions in JLS 5.1.2 BYTE(Byte.class, byte.class, 'B', (Byte)(byte)0, Format.signed(8)), SHORT(Short.class, short.class, 'S', (Short)(short)0, Format.signed(16)), CHAR(Character.class, char.class, 'C', (Character)(char)0, Format.unsigned(16)), - BOOLEAN(Boolean.class, boolean.class, 'Z', (Boolean)false, Format.unsigned(1)), + INT(Integer.class, int.class, 'I', (Integer)(int)0, Format.signed(32)), + LONG(Long.class, long.class, 'J', (Long)(long)0, Format.signed(64)), FLOAT(Float.class, float.class, 'F', (Float)(float)0, Format.floating(32)), DOUBLE(Double.class, double.class, 'D', (Double)(double)0, Format.floating(64)), - VOID(Void.class, void.class, 'V', null, Format.other(0)), //NULL(Null.class, null.class, 'N', null, Format.other(1)), OBJECT(Object.class, Object.class, 'L', null, Format.other(1)), + // VOID must be the last type, since it is "assignable" from any other type: + VOID(Void.class, void.class, 'V', null, Format.other(0)), ; private final Class wrapperType; @@ -76,9 +78,11 @@ public enum Wrapper { false); return kind | (size << SIZE_SHIFT) | (slots << SLOT_SHIFT); } - static int + static final int INT = SIGNED | (32 << SIZE_SHIFT) | (1 << SLOT_SHIFT), + SHORT = SIGNED | (16 << SIZE_SHIFT) | (1 << SLOT_SHIFT), BOOLEAN = UNSIGNED | (1 << SIZE_SHIFT) | (1 << SLOT_SHIFT), + CHAR = UNSIGNED | (16 << SIZE_SHIFT) | (1 << SLOT_SHIFT), FLOAT = FLOATING | (32 << SIZE_SHIFT) | (1 << SLOT_SHIFT), VOID = UNSIGNED | (0 << SIZE_SHIFT) | (0 << SLOT_SHIFT), NUM_MASK = (-1) << SIZE_SHIFT; @@ -111,6 +115,29 @@ public enum Wrapper { /** Is the wrapped type either float or double? */ public boolean isFloating() { return format >= Format.FLOAT; } + /** Does the JVM verifier allow a variable of this wrapper's + * primitive type to be assigned from a value of the given wrapper's primitive type? + * Cases: + *

      + *
    • unboxing followed by widening primitive conversion + *
    • any type converted to {@code void} + *
    • boxing conversion followed by widening reference conversion to {@code Object} + *
    • conversion of {@code boolean} to any type + *
    + */ + public boolean isConvertibleFrom(Wrapper source) { + if (this == source) return true; + if (this.compareTo(source) < 0) { + // At best, this is a narrowing conversion. + return false; + } + if ((this.format ^ source.format) == (Format.SHORT ^ Format.CHAR)) { + assert (this == SHORT && source == CHAR) || (this == CHAR && source == SHORT); + return false; + } + return true; + } + /** Produce a zero value for the given wrapper type. * This will be a numeric zero for a number or character, * false for a boolean, and null for a reference or void. @@ -122,10 +149,10 @@ public enum Wrapper { public Object zero() { return zero; } /** Produce a zero value for the given wrapper type T. - * The optinoal argument must a type compatible with this wrapper. + * The optional argument must a type compatible with this wrapper. * Equivalent to {@code this.cast(this.zero(), type)}. */ - public T zero(Class type) { return cast(zero, type); } + public T zero(Class type) { return convert(zero, type); } // /** Produce a wrapper for the given wrapper or primitive type. */ // public static Wrapper valueOf(Class type) { @@ -264,7 +291,11 @@ public enum Wrapper { exampleType.isInterface()) { return forceType(wrapperType, exampleType); } - throw new ClassCastException(exampleType + " not <:" + wrapperType); + throw newClassCastException(exampleType, primitiveType); + } + + private static ClassCastException newClassCastException(Class actual, Class expected) { + return new ClassCastException(actual + " is not compatible with " + expected); } /** If {@code type} is a primitive type, return the corresponding @@ -325,17 +356,55 @@ public enum Wrapper { // } /** Cast a wrapped value to the given type, which may be either a primitive or wrapper type. + * The given target type must be this wrapper's primitive or wrapper type. + * If this wrapper is OBJECT, the target type may also be an interface, perform no runtime check. * Performs standard primitive conversions, including truncation and float conversions. * The given type must be compatible with this wrapper. That is, it must either * be the wrapper type (or a subtype, in the case of {@code OBJECT}) or else * it must be the wrapper's primitive type. + * Primitive conversions are only performed if the given type is itself a primitive. * @throws ClassCastException if the given type is not compatible with this wrapper */ public T cast(Object x, Class type) { + return convert(x, type, true); + } + + /** Convert a wrapped value to the given type. + * The given target type must be this wrapper's primitive or wrapper type. + * This is equivalent to {@link #cast}, except that it refuses to perform + * narrowing primitive conversions. + */ + public T convert(Object x, Class type) { + return convert(x, type, false); + } + + private T convert(Object x, Class type, boolean isCast) { + if (this == OBJECT) { + // If the target wrapper is OBJECT, just do a reference cast. + // If the target type is an interface, perform no runtime check. + // (This loophole is safe, and is allowed by the JVM verifier.) + // If the target type is a primitive, change it to a wrapper. + @SuppressWarnings("unchecked") + T result = (T) x; // unchecked warning is expected here + return result; + } Class wtype = wrapperType(type); - if (wtype.isInstance(x)) - return wtype.cast(x); - return wtype.cast(wrap(x)); + if (wtype.isInstance(x)) { + @SuppressWarnings("unchecked") + T result = (T) x; // unchecked warning is expected here + return result; + } + Class sourceType = x.getClass(); // throw NPE if x is null + if (!isCast) { + Wrapper source = findWrapperType(sourceType); + if (source == null || !this.isConvertibleFrom(source)) { + throw newClassCastException(wtype, sourceType); + } + } + @SuppressWarnings("unchecked") + T result = (T) wrap(x); // unchecked warning is expected here + assert result.getClass() == wtype; + return result; } /** Cast a reference type to another reference type. diff --git a/jdk/test/java/dyn/InvokeGenericTest.java b/jdk/test/java/dyn/InvokeGenericTest.java index 83aa10b0202..1b20d95ea61 100644 --- a/jdk/test/java/dyn/InvokeGenericTest.java +++ b/jdk/test/java/dyn/InvokeGenericTest.java @@ -398,7 +398,7 @@ public class InvokeGenericTest { case 4: junk = target.invokeGeneric(args[0], args[1], args[2], args[3]); break; default: - junk = MethodHandles.invokeVarargs(target, args); break; + junk = target.invokeWithArguments(args); break; } } catch (WrongMethodTypeException ex) { return; diff --git a/jdk/test/java/dyn/JavaDocExamples.java b/jdk/test/java/dyn/JavaDocExamplesTest.java similarity index 57% rename from jdk/test/java/dyn/JavaDocExamples.java rename to jdk/test/java/dyn/JavaDocExamplesTest.java index db5a5ef2a21..90290c60da6 100644 --- a/jdk/test/java/dyn/JavaDocExamples.java +++ b/jdk/test/java/dyn/JavaDocExamplesTest.java @@ -25,18 +25,18 @@ /* @test * @summary example code used in javadoc for java.dyn API - * @compile -XDallowTransitionalJSR292=no JavaDocExamples.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles test.java.dyn.JavaDocExamples + * @compile -XDallowTransitionalJSR292=no JavaDocExamplesTest.java + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles test.java.dyn.JavaDocExamplesTest */ /* ---- To run outside jtreg: $ $JAVA7X_HOME/bin/javac -cp $JUNIT4_JAR -d /tmp/Classes \ - $DAVINCI/sources/jdk/test/java/dyn/JavaDocExamples.java + $DAVINCI/sources/jdk/test/java/dyn/JavaDocExamplesTest.java $ $JAVA7X_HOME/bin/java -cp $JUNIT4_JAR:/tmp/Classes \ -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles \ - -Dtest.java.dyn.JavaDocExamples.verbosity=1 \ - test.java.dyn.JavaDocExamples + -Dtest.java.dyn.JavaDocExamplesTest.verbosity=1 \ + test.java.dyn.JavaDocExamplesTest ---- */ @@ -57,15 +57,15 @@ import static org.junit.Assume.*; /** * @author jrose */ -public class JavaDocExamples { +public class JavaDocExamplesTest { /** Wrapper for running the JUnit tests in this module. * Put JUnit on the classpath! */ public static void main(String... ignore) { - org.junit.runner.JUnitCore.runClasses(JavaDocExamples.class); + org.junit.runner.JUnitCore.runClasses(JavaDocExamplesTest.class); } // How much output? - static int verbosity = Integer.getInteger("test.java.dyn.JavaDocExamples.verbosity", 0); + static int verbosity = Integer.getInteger("test.java.dyn.JavaDocExamplesTest.verbosity", 0); {} static final private Lookup LOOKUP = lookup(); @@ -120,9 +120,79 @@ assertEquals("xz", /*(String)*/ d12.invokeExact("x", 12, true, "z")); }} } + @Test public void testFilterArguments() throws Throwable { + {{ +{} /// JAVADOC +MethodHandle cat = lookup().findVirtual(String.class, + "concat", methodType(String.class, String.class)); +cat = cat.asType(methodType(Object.class, String.class, String.class)); /*(String)*/ +MethodHandle upcase = lookup().findVirtual(String.class, + "toUpperCase", methodType(String.class)); +assertEquals("xy", /*(String)*/ cat.invokeExact("x", "y")); // xy +MethodHandle f0 = filterArguments(cat, 0, upcase); +assertEquals("Xy", /*(String)*/ f0.invokeExact("x", "y")); // Xy +MethodHandle f1 = filterArguments(cat, 1, upcase); +assertEquals("xY", /*(String)*/ f1.invokeExact("x", "y")); // xY +MethodHandle f2 = filterArguments(cat, 0, upcase, upcase); +assertEquals("XY", /*(String)*/ f2.invokeExact("x", "y")); // XY + }} + } + static void assertEquals(Object exp, Object act) { if (verbosity > 0) System.out.println("result: "+act); Assert.assertEquals(exp, act); } + + @Test public void testVolatileCallSite() throws Throwable { + {{ +{} /// JAVADOC +MethodHandle strcat = MethodHandles.lookup() + .findVirtual(String.class, "concat", MethodType.methodType(String.class, String.class)); +MethodHandle trueCon = MethodHandles.constant(boolean.class, true); +MethodHandle falseCon = MethodHandles.constant(boolean.class, false); +VolatileCallSite switcher = new VolatileCallSite(trueCon, falseCon); +// following steps may be repeated to re-use the same switcher: +MethodHandle worker1 = strcat; +MethodHandle worker2 = MethodHandles.permuteArguments(strcat, strcat.type(), 1, 0); +MethodHandle worker = MethodHandles.guardWithTest(switcher.dynamicInvoker(), worker1, worker2); +System.out.println((String) worker.invokeExact("met", "hod")); // method +switcher.invalidate(); +System.out.println((String) worker.invokeExact("met", "hod")); // hodmet + }} + } + +static MethodHandle asList; + @Test public void testWithTypeHandler() throws Throwable { + {{ +{} /// JAVADOC +MethodHandle makeEmptyList = MethodHandles.constant(List.class, Arrays.asList()); +MethodHandle asList = lookup() + .findStatic(Arrays.class, "asList", methodType(List.class, Object[].class)); + +JavaDocExamplesTest.asList = asList; +/* +static MethodHandle collectingTypeHandler(MethodHandle base, MethodType newType) { + return asList.asCollector(Object[].class, newType.parameterCount()).asType(newType); +} +*/ + +MethodHandle collectingTypeHandler = lookup() + .findStatic(lookup().lookupClass(), "collectingTypeHandler", + methodType(MethodHandle.class, MethodHandle.class, MethodType.class)); +MethodHandle makeAnyList = makeEmptyList.withTypeHandler(collectingTypeHandler); + +System.out.println(makeAnyList.invokeGeneric()); +System.out.println(makeAnyList.invokeGeneric(1)); +System.out.println(makeAnyList.invokeGeneric("two", "too")); + }} + } + +static MethodHandle collectingTypeHandler(MethodHandle base, MethodType newType) { + //System.out.println("Converting "+asList+" to "+newType); + MethodHandle conv = asList.asCollector(Object[].class, newType.parameterCount()).asType(newType); + //System.out.println(" =>"+conv); + return conv; +} + } diff --git a/jdk/test/java/dyn/MethodHandlesTest.java b/jdk/test/java/dyn/MethodHandlesTest.java index 6986390c72e..6a80775bf3d 100644 --- a/jdk/test/java/dyn/MethodHandlesTest.java +++ b/jdk/test/java/dyn/MethodHandlesTest.java @@ -62,7 +62,6 @@ public class MethodHandlesTest { // lookups, without exercising the actual method handle. static boolean DO_MORE_CALLS = true; - @Test public void testFirst() throws Throwable { verbosity += 9; try { @@ -458,7 +457,7 @@ public class MethodHandlesTest { Exception noAccess = null; try { if (verbosity >= 4) System.out.println("lookup via "+lookup+" of "+defc+" "+name+type); - target = lookup.findStatic(defc, name, type); + target = lookup.in(defc).findStatic(defc, name, type); } catch (NoAccessException ex) { noAccess = ex; } @@ -469,16 +468,22 @@ public class MethodHandlesTest { assertEquals(positive ? "positive test" : "negative test erroneously passed", positive, target != null); if (!positive) return; // negative test failed as expected assertEquals(type, target.type()); - assertTrue(target.toString().contains(name)); // rough check + assertNameStringContains(target, name); if (!DO_MORE_CALLS && lookup != PRIVATE) return; Object[] args = randomArgs(params); printCalled(target, name, args); - target.invokeVarargs(args); + target.invokeWithArguments(args); assertCalled(name, args); if (verbosity >= 1) System.out.print(':'); } + // rough check of name string + static void assertNameStringContains(Object x, String s) { + if (x.toString().contains(s)) return; + assertEquals(s, x); + } + @Test public void testFindVirtual() throws Throwable { if (CAN_SKIP_WORKING) return; @@ -522,7 +527,7 @@ public class MethodHandlesTest { Exception noAccess = null; try { if (verbosity >= 4) System.out.println("lookup via "+lookup+" of "+defc+" "+name+type); - target = lookup.findVirtual(defc, methodName, type); + target = lookup.in(defc).findVirtual(defc, methodName, type); } catch (NoAccessException ex) { noAccess = ex; } @@ -535,12 +540,12 @@ public class MethodHandlesTest { Class[] paramsWithSelf = cat(array(Class[].class, (Class)defc), params); MethodType typeWithSelf = MethodType.methodType(ret, paramsWithSelf); assertEquals(typeWithSelf, target.type()); - assertTrue(target.toString().contains(methodName)); // rough check + assertNameStringContains(target, methodName); if (!DO_MORE_CALLS && lookup != PRIVATE) return; Object[] argsWithSelf = randomArgs(paramsWithSelf); if (rcvc != defc) argsWithSelf[0] = randomArg(rcvc); printCalled(target, name, argsWithSelf); - target.invokeVarargs(argsWithSelf); + target.invokeWithArguments(argsWithSelf); assertCalled(name, argsWithSelf); if (verbosity >= 1) System.out.print(':'); @@ -576,7 +581,8 @@ public class MethodHandlesTest { Exception noAccess = null; try { if (verbosity >= 4) System.out.println("lookup via "+lookup+" of "+defc+" "+name+type); - target = lookup.findSpecial(defc, name, type, specialCaller); + if (verbosity >= 5) System.out.println(" lookup => "+lookup.in(specialCaller)); + target = lookup.in(specialCaller).findSpecial(defc, name, type, specialCaller); } catch (NoAccessException ex) { noAccess = ex; } @@ -591,11 +597,11 @@ public class MethodHandlesTest { assertEquals(type, target.type().dropParameterTypes(0,1)); Class[] paramsWithSelf = cat(array(Class[].class, (Class)specialCaller), params); MethodType typeWithSelf = MethodType.methodType(ret, paramsWithSelf); - assertTrue(target.toString().contains(name)); // rough check + assertNameStringContains(target, name); if (!DO_MORE_CALLS && lookup != PRIVATE && lookup != EXAMPLE) return; Object[] args = randomArgs(paramsWithSelf); printCalled(target, name, args); - target.invokeVarargs(args); + target.invokeWithArguments(args); assertCalled(name, args); } @@ -632,7 +638,7 @@ public class MethodHandlesTest { Exception noAccess = null; try { if (verbosity >= 4) System.out.println("lookup via "+lookup+" of "+defc+" "+name+type); - target = lookup.bind(receiver, methodName, type); + target = lookup.in(defc).bind(receiver, methodName, type); } catch (NoAccessException ex) { noAccess = ex; } @@ -645,7 +651,7 @@ public class MethodHandlesTest { assertEquals(type, target.type()); Object[] args = randomArgs(params); printCalled(target, name, args); - target.invokeVarargs(args); + target.invokeWithArguments(args); Object[] argsWithReceiver = cat(array(Object[].class, receiver), args); assertCalled(name, argsWithReceiver); if (verbosity >= 1) @@ -705,9 +711,9 @@ public class MethodHandlesTest { try { if (verbosity >= 4) System.out.println("lookup via "+lookup+" of "+defc+" "+name+type); if (isSpecial) - target = lookup.unreflectSpecial(rmethod, specialCaller); + target = lookup.in(specialCaller).unreflectSpecial(rmethod, specialCaller); else - target = lookup.unreflect(rmethod); + target = lookup.in(defc).unreflect(rmethod); } catch (NoAccessException ex) { noAccess = ex; } @@ -737,7 +743,7 @@ public class MethodHandlesTest { } Object[] argsMaybeWithSelf = randomArgs(paramsMaybeWithSelf); printCalled(target, name, argsMaybeWithSelf); - target.invokeVarargs(argsMaybeWithSelf); + target.invokeWithArguments(argsMaybeWithSelf); assertCalled(name, argsMaybeWithSelf); if (verbosity >= 1) System.out.print(':'); @@ -875,7 +881,7 @@ public class MethodHandlesTest { if (isStatic) expType = expType.dropParameterTypes(0, 1); MethodHandle mh = lookup.unreflectGetter(f); assertSame(mh.type(), expType); - assertEquals(mh.toString(), fname); + assertNameStringContains(mh, fname); HasFields fields = new HasFields(); Object sawValue; Class rtype = type; @@ -947,7 +953,7 @@ public class MethodHandlesTest { mh = lookup.findStaticSetter(fclass, fname, ftype); else throw new InternalError(); assertSame(mh.type(), expType); - assertEquals(mh.toString(), fname); + assertNameStringContains(mh, fname); HasFields fields = new HasFields(); Object sawValue; Class vtype = type; @@ -1102,6 +1108,18 @@ public class MethodHandlesTest { } } + static MethodHandle typeHandler2(MethodHandle target, MethodType newType) { + MethodType oldType = target.type(); + int oldArity = oldType.parameterCount(); + int newArity = newType.parameterCount(); + if (newArity < oldArity) + return MethodHandles.insertArguments(target, oldArity, "OPTIONAL"); + else if (newArity > oldArity) + return MethodHandles.dropArguments(target, oldArity-1, newType.parameterType(oldArity-1)); + else + return target; // attempt no further conversions + } + @Test public void testConvertArguments() throws Throwable { if (CAN_SKIP_WORKING) return; @@ -1115,10 +1133,29 @@ public class MethodHandlesTest { } void testConvert(MethodHandle id, Class rtype, String name, Class... params) throws Throwable { - testConvert(true, id, rtype, name, params); + testConvert(true, false, id, rtype, name, params); + testConvert(true, true, id, rtype, name, params); } - void testConvert(boolean positive, MethodHandle id, Class rtype, String name, Class... params) throws Throwable { + @Test + public void testTypeHandler() throws Throwable { + MethodHandle id = Callee.ofType(1); + MethodHandle th2 = PRIVATE.findStatic(MethodHandlesTest.class, "typeHandler2", + MethodType.methodType(MethodHandle.class, MethodHandle.class, MethodType.class)); + MethodHandle id2 = id.withTypeHandler(th2); + testConvert(true, false, id2, null, "id", Object.class); + testConvert(true, true, id2, null, "id", Object.class); + if (true) return; //FIXME + testConvert(true, false, id2, null, "id", String.class); // FIXME: throws WMT + testConvert(false, true, id2, null, "id", String.class); // FIXME: should not succeed + testConvert(false, false, id2, null, "id", Object.class, String.class); //FIXME: array[1] line 1164 + testConvert(true, true, id2, null, "id", Object.class, String.class); + testConvert(false, false, id2, null, "id"); + testConvert(true, true, id2, null, "id"); + } + + void testConvert(boolean positive, boolean useAsType, + MethodHandle id, Class rtype, String name, Class... params) throws Throwable { countTest(positive); MethodType idType = id.type(); if (rtype == null) rtype = idType.returnType(); @@ -1135,7 +1172,7 @@ public class MethodHandlesTest { if (src != dst) convArgs[i] = castToWrapper(convArgs[i], dst); } - Object convResult = id.invokeVarargs(convArgs); + Object convResult = id.invokeWithArguments(convArgs); { Class dst = newType.returnType(); Class src = idType.returnType(); @@ -1145,7 +1182,10 @@ public class MethodHandlesTest { MethodHandle target = null; RuntimeException error = null; try { - target = MethodHandles.convertArguments(id, newType); + if (useAsType) + target = MethodHandles.convertArguments(id, newType); + else + target = id.asType(newType); } catch (RuntimeException ex) { error = ex; } @@ -1157,7 +1197,7 @@ public class MethodHandlesTest { if (!positive) return; // negative test failed as expected assertEquals(newType, target.type()); printCalled(target, id.toString(), args); - Object result = target.invokeVarargs(args); + Object result = target.invokeWithArguments(args); assertCalled(name, convArgs); assertEquals(convResult, result); if (verbosity >= 1) @@ -1279,7 +1319,7 @@ public class MethodHandlesTest { MethodType outType = MethodType.methodType(Object.class, permTypes); MethodHandle target = MethodHandles.convertArguments(ValueConversions.varargsList(outargs), outType); MethodHandle newTarget = MethodHandles.permuteArguments(target, inType, reorder); - Object result = newTarget.invokeVarargs(args); + Object result = newTarget.invokeWithArguments(args); Object expected = Arrays.asList(permArgs); assertEquals(expected, result); } @@ -1311,7 +1351,7 @@ public class MethodHandlesTest { Object[] args = randomArgs(target2.type().parameterArray()); // make sure the target does what we think it does: if (pos == 0 && nargs < 5) { - Object[] check = (Object[]) target.invokeVarargs(args); + Object[] check = (Object[]) target.invokeWithArguments(args); assertArrayEquals(args, check); switch (nargs) { case 0: @@ -1342,7 +1382,7 @@ public class MethodHandlesTest { } else { Object[] args1 = Arrays.copyOfRange(args, 0, pos+1); args1[pos] = Arrays.copyOfRange(args, pos, args.length); - returnValue = (Object[]) result.invokeVarargs(args1); + returnValue = (Object[]) result.invokeWithArguments(args1); } assertArrayEquals(args, returnValue); } @@ -1379,7 +1419,7 @@ public class MethodHandlesTest { if (verbosity >= 3) System.out.println("collect from "+Arrays.asList(args)+" ["+pos+".."+nargs+"]"); MethodHandle result = MethodHandles.collectArguments(target, newType); - Object[] returnValue = (Object[]) result.invokeVarargs(args); + Object[] returnValue = (Object[]) result.invokeWithArguments(args); // assertTrue(returnValue.length == pos+1 && returnValue[pos] instanceof Object[]); // returnValue[pos] = Arrays.asList((Object[]) returnValue[pos]); // collectedArgs[pos] = Arrays.asList((Object[]) collectedArgs[pos]); @@ -1412,7 +1452,7 @@ public class MethodHandlesTest { MethodHandle target2 = MethodHandles.insertArguments(target, pos, (Object[]) argsToInsert.toArray()); argsToInsert.clear(); // remove from argsToInsert - Object res2 = target2.invokeVarargs(argsToPass); + Object res2 = target2.invokeWithArguments(argsToPass); Object res2List = Arrays.asList((Object[])res2); if (verbosity >= 3) System.out.println("result: "+res2List); @@ -1440,14 +1480,12 @@ public class MethodHandlesTest { Object[] argsToPass = randomArgs(nargs, Object.class); if (verbosity >= 3) System.out.println("filter "+target+" at "+pos+" with "+filter); - MethodHandle[] filters = new MethodHandle[pos*2+1]; - filters[pos] = filter; - MethodHandle target2 = MethodHandles.filterArguments(target, filters); + MethodHandle target2 = MethodHandles.filterArguments(target, pos, filter); // Simulate expected effect of filter on arglist: Object[] filteredArgs = argsToPass.clone(); filteredArgs[pos] = filter.invokeExact(filteredArgs[pos]); List expected = Arrays.asList(filteredArgs); - Object result = target2.invokeVarargs(argsToPass); + Object result = target2.invokeWithArguments(argsToPass); if (verbosity >= 3) System.out.println("result: "+result); if (!expected.equals(result)) @@ -1482,9 +1520,9 @@ public class MethodHandlesTest { List argsToFold = expected.subList(pos, pos + fold); if (verbosity >= 3) System.out.println("fold: "+argsToFold+" into "+target2); - Object foldedArgs = combine.invokeVarargs(argsToFold); + Object foldedArgs = combine.invokeWithArguments(argsToFold); argsToFold.add(0, foldedArgs); - Object result = target2.invokeVarargs(argsToPass); + Object result = target2.invokeWithArguments(argsToPass); if (verbosity >= 3) System.out.println("result: "+result); if (!expected.equals(result)) @@ -1516,7 +1554,7 @@ public class MethodHandlesTest { for (int i = drop; i > 0; i--) { argsToDrop.add(pos, "blort#"+i); } - Object res2 = target2.invokeVarargs(argsToDrop); + Object res2 = target2.invokeWithArguments(argsToDrop); Object res2List = Arrays.asList((Object[])res2); //if (!resList.equals(res2List)) // System.out.println("*** fail at n/p/d = "+nargs+"/"+pos+"/"+drop+": "+argsToDrop+" => "+res2List); @@ -1572,7 +1610,7 @@ public class MethodHandlesTest { countTest(); calledLog.clear(); inv = MethodHandles.exactInvoker(type); - result = inv.invokeVarargs(targetPlusArgs); + result = inv.invokeWithArguments(targetPlusArgs); if (testRetCode) assertEquals(code, result); assertCalled("invokee", args); // generic invoker @@ -1598,7 +1636,7 @@ public class MethodHandlesTest { assertCalled("invokee", args); } calledLog.clear(); - result = inv.invokeVarargs(targetPlusArgs); + result = inv.invokeWithArguments(targetPlusArgs); if (testRetCode) assertEquals(code, result); assertCalled("invokee", args); // varargs invoker #0 @@ -1640,17 +1678,29 @@ public class MethodHandlesTest { List tailList = targetPlusVarArgs.subList(1+k, 1+nargs); Object[] tail = tailList.toArray(); tailList.clear(); tailList.add(tail); - result = inv.invokeVarargs(targetPlusVarArgs); + result = inv.invokeWithArguments(targetPlusVarArgs); if (testRetCode) assertEquals(code, result); assertCalled("invokee", args); } + // dynamic invoker countTest(); - CallSite site = new CallSite(MethodHandlesTest.class, "foo", type); + CallSite site = new CallSite(type); inv = MethodHandles.dynamicInvoker(site); + + // see if we get the result of the original target: + try { + result = inv.invokeWithArguments(args); + assertTrue("should not reach here", false); + } catch (IllegalStateException ex) { + String msg = ex.getMessage(); + assertTrue(msg, msg.contains("site")); + } + + // set new target after invoker is created, to make sure we track target site.setTarget(target); calledLog.clear(); - result = inv.invokeVarargs(args); + result = inv.invokeWithArguments(args); if (testRetCode) assertEquals(code, result); assertCalled("invokee", args); } @@ -1734,7 +1784,7 @@ public class MethodHandlesTest { String willCall = (equals ? "targetIfEquals" : "fallbackIfNotEquals"); if (verbosity >= 3) System.out.println(logEntry(willCall, argList)); - Object result = mh.invokeVarargs(argList); + Object result = mh.invokeWithArguments(argList); assertCalled(willCall, argList); } } @@ -1776,7 +1826,7 @@ public class MethodHandlesTest { //System.out.println("catching with "+target+" : "+throwOrReturn); Object[] args = randomArgs(nargs, Object.class); args[1] = (throwIt ? thrown : null); - Object returned = target.invokeVarargs(args); + Object returned = target.invokeWithArguments(args); //System.out.println("return from "+target+" : "+returned); if (!throwIt) { assertSame(args[0], returned); @@ -1828,13 +1878,10 @@ public class MethodHandlesTest { testCastFailure("unbox/return", 11000); } - static class Surprise implements MethodHandleProvider { + static class Surprise { public MethodHandle asMethodHandle() { return VALUE.bindTo(this); } - public MethodHandle asMethodHandle(MethodType type) { - return asMethodHandle().asType(type); - } Object value(Object x) { trace("value", x); if (boo != null) return boo; @@ -1896,8 +1943,8 @@ public class MethodHandlesTest { } if (callee != null) { callee = MethodHandles.convertArguments(callee, MethodType.genericMethodType(1)); - surprise = MethodHandles.filterArguments(callee, surprise); - identity = MethodHandles.filterArguments(callee, identity); + surprise = MethodHandles.filterArguments(callee, 0, surprise); + identity = MethodHandles.filterArguments(callee, 0, identity); } } assertNotSame(mode, surprise, surprise0); @@ -1949,7 +1996,7 @@ public class MethodHandlesTest { assertEquals(mt, mh.type()); assertEquals(Example.class, mh.type().returnType()); args = randomArgs(mh.type().parameterArray()); - mh.invokeVarargs(args); + mh.invokeWithArguments(args); assertCalled(name, args); // Try a virtual method. @@ -1959,7 +2006,7 @@ public class MethodHandlesTest { assertEquals(mt, mh.type().dropParameterTypes(0,1)); assertTrue(mh.type().parameterList().contains(Example.class)); args = randomArgs(mh.type().parameterArray()); - mh.invokeVarargs(args); + mh.invokeWithArguments(args); assertCalled(name, args); } -- GitLab From d4ca94df328321c5ea8bd39e9530e3ab4f484057 Mon Sep 17 00:00:00 2001 From: Keith McGuigan Date: Fri, 5 Nov 2010 09:32:08 -0400 Subject: [PATCH 010/158] 6981737: The java.vm.specification.version property is 1.0, seems like it should be 2.0 Change property value to 1. for major_version >= 7 Reviewed-by: dholmes, acorn --- hotspot/src/share/vm/runtime/arguments.cpp | 21 ++++-- hotspot/test/runtime/6981737/Test6981737.java | 72 +++++++++++++++++++ 2 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 hotspot/test/runtime/6981737/Test6981737.java diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index e996510bb1e..444244d663b 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -116,7 +116,6 @@ void Arguments::process_sun_java_launcher_properties(JavaVMInitArgs* args) { // Initialize system properties key and value. void Arguments::init_system_properties() { - PropertyList_add(&_system_properties, new SystemProperty("java.vm.specification.version", "1.0", false)); PropertyList_add(&_system_properties, new SystemProperty("java.vm.specification.name", "Java Virtual Machine Specification", false)); PropertyList_add(&_system_properties, new SystemProperty("java.vm.version", VM_Version::vm_release(), false)); @@ -151,9 +150,23 @@ void Arguments::init_system_properties() { // Update/Initialize System properties after JDK version number is known void Arguments::init_version_specific_system_properties() { - PropertyList_add(&_system_properties, new SystemProperty("java.vm.specification.vendor", - JDK_Version::is_gte_jdk17x_version() ? "Oracle Corporation" : "Sun Microsystems Inc.", false)); - PropertyList_add(&_system_properties, new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false)); + enum { bufsz = 16 }; + char buffer[bufsz]; + const char* spec_vendor = "Sun Microsystems Inc."; + uint32_t spec_version = 0; + + if (JDK_Version::is_gte_jdk17x_version()) { + spec_vendor = "Oracle Corporation"; + spec_version = JDK_Version::current().major_version(); + } + jio_snprintf(buffer, bufsz, "1." UINT32_FORMAT, spec_version); + + PropertyList_add(&_system_properties, + new SystemProperty("java.vm.specification.vendor", spec_vendor, false)); + PropertyList_add(&_system_properties, + new SystemProperty("java.vm.specification.version", buffer, false)); + PropertyList_add(&_system_properties, + new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false)); } /** diff --git a/hotspot/test/runtime/6981737/Test6981737.java b/hotspot/test/runtime/6981737/Test6981737.java new file mode 100644 index 00000000000..0171f8373de --- /dev/null +++ b/hotspot/test/runtime/6981737/Test6981737.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test Test6981737.java + * @bug 6981737 + * @summary check for correct vm properties + * @run main Test6981737 + * @author kamg +*/ + +public class Test6981737 { + + /** + * Check the 'vendor' properties java.vm.specification.version + * property. Before jdk7, they should be "Sun Micro..." and "1.0". + * In jdk7 onwards they should be "Oracle..." and "1." + */ + public static void main(String[] args) throws Exception { + + String version = verifyProperty("java.version", "[0-9]+\\.[0-9]+\\..*"); + String major_version_spec = version.split("\\.")[1]; + int major_version = new Integer(major_version_spec).intValue(); + + String vendor_re = "Oracle Corporation"; + String vm_spec_version_re = "1\\." + major_version_spec; + if (major_version < 7) { + vendor_re = "Sun Microsystems Inc\\."; + vm_spec_version_re = "1\\.0"; + } + verifyProperty("java.vendor", vendor_re); + verifyProperty("java.vm.vendor", vendor_re); + verifyProperty("java.vm.specification.vendor", vendor_re); + verifyProperty("java.specification.vendor", vendor_re); + verifyProperty("java.vm.specification.version", vm_spec_version_re); + System.out.println("PASS"); + } + + public static String verifyProperty(String name, String expected_re) { + String value = System.getProperty(name, ""); + System.out.print("Checking " + name + ": \"" + value + + "\".matches(\"" + expected_re + "\")... "); + if (!value.matches(expected_re)) { + System.out.println("no."); + throw new RuntimeException("FAIL: Wrong value for " + name + + " property, \"" + value + "\", expected to be of form: \"" + + expected_re + "\""); + } + System.out.println("yes."); + return value; + } +} -- GitLab From fe147ae59265242400f1f677bc16564f7649d898 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Fri, 5 Nov 2010 13:20:37 -0700 Subject: [PATCH 011/158] 6997298: fatal error: must own lock CMS_markBitMap_lock during heap dump Since we are at a stop-world pause, the existing CMS-phase checks are sufficient for safety, and the locking check can be safely elided. Elaborated documentation comment to the case where class unloading and verification are disabled, and the query happens when we aren't in the sweeping phase, where the answer "false" would be (almost everywhere) too pessimistic. Reviewed-by: jmasa, johnc, tonyp --- .../concurrentMarkSweep/compactibleFreeListSpace.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp index 847b56d0b2d..ddf1405ff8d 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp @@ -1093,7 +1093,8 @@ bool CompactibleFreeListSpace::block_is_obj(const HeapWord* p) const { // perm_gen_verify_bit_map where we store the "deadness" information if // we did not sweep the perm gen in the most recent previous GC cycle. bool CompactibleFreeListSpace::obj_is_alive(const HeapWord* p) const { - assert (block_is_obj(p), "The address should point to an object"); + assert(block_is_obj(p), "The address should point to an object"); + assert(SafepointSynchronize::is_at_safepoint(), "Else races are possible"); // If we're sweeping, we use object liveness information from the main bit map // for both perm gen and old gen. @@ -1102,9 +1103,14 @@ bool CompactibleFreeListSpace::obj_is_alive(const HeapWord* p) const { // main marking bit map (live_map below) is locked, // OR we're in other phases and perm_gen_verify_bit_map (dead_map below) // is stable, because it's mutated only in the sweeping phase. + // NOTE: This method is also used by jmap where, if class unloading is + // off, the results can return "false" for legitimate perm objects, + // when we are not in the midst of a sweeping phase, which can result + // in jmap not reporting certain perm gen objects. This will be moot + // if/when the perm gen goes away in the future. if (_collector->abstract_state() == CMSCollector::Sweeping) { CMSBitMap* live_map = _collector->markBitMap(); - return live_map->isMarked((HeapWord*) p); + return live_map->par_isMarked((HeapWord*) p); } else { // If we're not currently sweeping and we haven't swept the perm gen in // the previous concurrent cycle then we may have dead but unswept objects -- GitLab From 579c9e4b03fe3ab822b6386d18384ea7b03e4baa Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Tue, 9 Nov 2010 10:47:20 -0800 Subject: [PATCH 012/158] 6996613: CompactibleFreeListSpace::print should call CompactibleFreeListSpace::print_on, not Space::print_on Reviewed-by: tonyp --- .../concurrentMarkSweep/compactibleFreeListSpace.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp index ddf1405ff8d..d9118c35ca9 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp @@ -2272,7 +2272,7 @@ void CompactibleFreeListSpace::split(size_t from, size_t to1) { } void CompactibleFreeListSpace::print() const { - Space::print_on(tty); + print_on(tty); } void CompactibleFreeListSpace::prepare_for_verify() { -- GitLab From 33688e92b95f96e3d59e35e7a5f7b8e0a3e42e42 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Thu, 11 Nov 2010 10:42:43 -0800 Subject: [PATCH 013/158] 6998802: ScavengeALot: assert(!gch->incremental_collection_failed()) failed: Twice in a row Weaken assert by excluding scavenges resulting from -XX:+ScavengeALot stress-testing option. Reviewed-by: jmasa, tonyp --- hotspot/src/share/vm/memory/defNewGeneration.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/memory/defNewGeneration.cpp b/hotspot/src/share/vm/memory/defNewGeneration.cpp index 19f265a6729..e04dcf2ff58 100644 --- a/hotspot/src/share/vm/memory/defNewGeneration.cpp +++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp @@ -838,7 +838,9 @@ void DefNewGeneration::gc_epilogue(bool full) { gch->incremental_collection_failed()) { seen_incremental_collection_failed = true; } else if (seen_incremental_collection_failed) { - assert(!gch->incremental_collection_failed(), "Twice in a row"); + assert(gch->gc_cause() == GCCause::_scavenge_alot || !gch->incremental_collection_failed(), + "Twice in a row"); + seen_incremental_collection_failed = false; } #endif // ASSERT -- GitLab From d563b15558a771e3b93f5ff7604308feaac05323 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Fri, 12 Nov 2010 09:51:43 -0800 Subject: [PATCH 014/158] 6999491: non-zero COOPs are used when they should not HeapBaseMinAddress should be used only for a default heap size calculation. Reviewed-by: iveresov, jcoomes, dholmes --- hotspot/src/share/vm/memory/universe.cpp | 3 ++- hotspot/src/share/vm/runtime/arguments.cpp | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp index f0595761a8b..15c660d79a8 100644 --- a/hotspot/src/share/vm/memory/universe.cpp +++ b/hotspot/src/share/vm/memory/universe.cpp @@ -864,7 +864,8 @@ jint Universe::initialize_heap() { // compressed oops for pstack code. if (PrintCompressedOopsMode) { tty->cr(); - tty->print("heap address: "PTR_FORMAT, Universe::heap()->base()); + tty->print("heap address: " PTR_FORMAT ", size: " SIZE_FORMAT " MB", + Universe::heap()->base(), Universe::heap()->reserved_region().byte_size()/M); } if ((uint64_t)Universe::heap()->reserved_region().end() > OopEncodingHeapMax) { // Can't reserve heap below 32Gb. diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 091db03caa3..7c9ecc55470 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -1328,8 +1328,11 @@ bool verify_object_alignment() { } inline uintx max_heap_for_compressed_oops() { - // Heap should be above HeapBaseMinAddress to get zero based compressed oops. - LP64_ONLY(return OopEncodingHeapMax - MaxPermSize - os::vm_page_size() - HeapBaseMinAddress); + // Avoid sign flip. + if (OopEncodingHeapMax < MaxPermSize + os::vm_page_size()) { + return 0; + } + LP64_ONLY(return OopEncodingHeapMax - MaxPermSize - os::vm_page_size()); NOT_LP64(ShouldNotReachHere(); return 0); } @@ -1507,7 +1510,13 @@ void Arguments::set_heap_size() { } if (UseCompressedOops) { // Limit the heap size to the maximum possible when using compressed oops - reasonable_max = MIN2(reasonable_max, (julong)max_heap_for_compressed_oops()); + julong max_coop_heap = (julong)max_heap_for_compressed_oops(); + if (HeapBaseMinAddress + MaxHeapSize < max_coop_heap) { + // Heap should be above HeapBaseMinAddress to get zero based compressed oops + // but it should be not less than default MaxHeapSize. + max_coop_heap -= HeapBaseMinAddress; + } + reasonable_max = MIN2(reasonable_max, max_coop_heap); } reasonable_max = os::allocatable_physical_memory(reasonable_max); -- GitLab From 9af444d0118dcff5958fb951954680f80c63062c Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Tue, 16 Nov 2010 13:58:48 -0800 Subject: [PATCH 015/158] 7000578: CMS: assert(SafepointSynchronize::is_at_safepoint()) failed: Else races are possible Weakened assert in onj_is_alive() to allow its use at initialization time when is_at_safepoint() normally reports false; added some related asserts to check order of is_init_completed() after Universe::is_fully_initialized(). Reviewed-by: jcoomes --- .../concurrentMarkSweep/compactibleFreeListSpace.cpp | 3 ++- hotspot/src/share/vm/includeDB_core | 1 + hotspot/src/share/vm/memory/universe.cpp | 1 + hotspot/src/share/vm/runtime/init.cpp | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp index d9118c35ca9..183d127e321 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp @@ -1093,8 +1093,9 @@ bool CompactibleFreeListSpace::block_is_obj(const HeapWord* p) const { // perm_gen_verify_bit_map where we store the "deadness" information if // we did not sweep the perm gen in the most recent previous GC cycle. bool CompactibleFreeListSpace::obj_is_alive(const HeapWord* p) const { + assert(SafepointSynchronize::is_at_safepoint() || !is_init_completed(), + "Else races are possible"); assert(block_is_obj(p), "The address should point to an object"); - assert(SafepointSynchronize::is_at_safepoint(), "Else races are possible"); // If we're sweeping, we use object liveness information from the main bit map // for both perm gen and old gen. diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index 07039e57df0..3d0901b22c1 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -4454,6 +4454,7 @@ universe.cpp genRemSet.hpp universe.cpp generation.hpp universe.cpp handles.inline.hpp universe.cpp hashtable.inline.hpp +universe.cpp init.hpp universe.cpp instanceKlass.hpp universe.cpp instanceKlassKlass.hpp universe.cpp instanceRefKlass.hpp diff --git a/hotspot/src/share/vm/memory/universe.cpp b/hotspot/src/share/vm/memory/universe.cpp index f0595761a8b..de2b3b872dc 100644 --- a/hotspot/src/share/vm/memory/universe.cpp +++ b/hotspot/src/share/vm/memory/universe.cpp @@ -945,6 +945,7 @@ void universe2_init() { extern void initialize_converter_functions(); bool universe_post_init() { + assert(!is_init_completed(), "Error: initialization not yet completed!"); Universe::_fully_initialized = true; EXCEPTION_MARK; { ResourceMark rm; diff --git a/hotspot/src/share/vm/runtime/init.cpp b/hotspot/src/share/vm/runtime/init.cpp index 9eac44347c2..fbecf4d6a9c 100644 --- a/hotspot/src/share/vm/runtime/init.cpp +++ b/hotspot/src/share/vm/runtime/init.cpp @@ -160,5 +160,6 @@ bool is_init_completed() { void set_init_completed() { + assert(Universe::is_fully_initialized(), "Should have completed initialization"); _init_completed = true; } -- GitLab From e5344b854c0ca78d1b04b249365e1b1913f3c04a Mon Sep 17 00:00:00 2001 From: John Cuthbertson Date: Tue, 16 Nov 2010 14:07:33 -0800 Subject: [PATCH 016/158] 6978187: G1: assert(ParallelGCThreads> 1 || n_yielded() == _hrrs->occupied()) strikes again An evacuation failure while copying the roots caused an object, A, to be forwarded to itself. During the subsequent RSet updating a reference to A was processed causing the reference to be added to the RSet of A's heap region. As a result of adding to the remembered set we ran into the issue described in 6930581 - the sparse table expanded and the RSet scanning code walked the cards in one instance of RHashTable (_cur) while the occupied() counts the cards in the expanded table (_next). Reviewed-by: tonyp, iveresov --- .../gc_implementation/g1/g1CollectedHeap.cpp | 1 + .../vm/gc_implementation/g1/g1RemSet.cpp | 28 +---- .../vm/gc_implementation/g1/g1RemSet.hpp | 72 +++++++----- .../gc_implementation/g1/g1RemSet.inline.hpp | 105 ++++++++++++------ 4 files changed, 122 insertions(+), 84 deletions(-) diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index c6cd6607eb4..b75320981fb 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -795,6 +795,7 @@ public: _worker_i(worker_i), _g1h(g1) { } + bool doHeapRegion(HeapRegion* r) { if (!r->continuesHumongous()) { _cl.set_from(r); diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp index ca796df2e91..c96e49ef8d5 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp @@ -116,7 +116,6 @@ G1RemSet::G1RemSet(G1CollectedHeap* g1, CardTableModRefBS* ct_bs) : _g1(g1), _conc_refine_cards(0), _ct_bs(ct_bs), _g1p(_g1->g1_policy()), _cg1r(g1->concurrent_g1_refine()), - _traversal_in_progress(false), _cset_rs_update_cl(NULL), _cards_scanned(NULL), _total_cards_scanned(0) { @@ -512,8 +511,6 @@ void G1RemSet::prepare_for_oops_into_collection_set_do() { DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); dcqs.concatenate_logs(); - assert(!_traversal_in_progress, "Invariant between iterations."); - set_traversal(true); if (ParallelGCThreads > 0) { _seq_task->set_n_threads((int)n_workers()); } @@ -539,9 +536,6 @@ class cleanUpIteratorsClosure : public HeapRegionClosure { // through the oops which coincide with that card. It scans the reference // fields in each oop; when it finds an oop that points into the collection // set, the RSet for the region containing the referenced object is updated. -// Note: _par_traversal_in_progress in the G1RemSet must be FALSE; otherwise -// the UpdateRSetImmediate closure will cause cards to be enqueued on to -// the DCQS that we're iterating over, causing an infinite loop. class UpdateRSetCardTableEntryIntoCSetClosure: public CardTableEntryClosure { G1CollectedHeap* _g1; CardTableModRefBS* _ct_bs; @@ -611,8 +605,6 @@ void G1RemSet::cleanup_after_oops_into_collection_set_do() { // Set all cards back to clean. _g1->cleanUpCardTable(); - set_traversal(false); - DirtyCardQueueSet& into_cset_dcqs = _g1->into_cset_dirty_card_queue_set(); int into_cset_n_buffers = into_cset_dcqs.completed_buffers_num(); @@ -645,21 +637,8 @@ void G1RemSet::cleanup_after_oops_into_collection_set_do() { assert(_g1->into_cset_dirty_card_queue_set().completed_buffers_num() == 0, "all buffers should be freed"); _g1->into_cset_dirty_card_queue_set().clear_n_completed_buffers(); - - assert(!_traversal_in_progress, "Invariant between iterations."); } -class UpdateRSObjectClosure: public ObjectClosure { - UpdateRSOopClosure* _update_rs_oop_cl; -public: - UpdateRSObjectClosure(UpdateRSOopClosure* update_rs_oop_cl) : - _update_rs_oop_cl(update_rs_oop_cl) {} - void do_object(oop obj) { - obj->oop_iterate(_update_rs_oop_cl); - } - -}; - class ScrubRSClosure: public HeapRegionClosure { G1CollectedHeap* _g1h; BitMap* _region_bm; @@ -749,7 +728,12 @@ bool G1RemSet::concurrentRefineOneCard_impl(jbyte* card_ptr, int worker_i, ct_freq_note_card(_ct_bs->index_for(start)); #endif - UpdateRSOopClosure update_rs_oop_cl(this, worker_i); + assert(!check_for_refs_into_cset || _cset_rs_update_cl[worker_i] != NULL, "sanity"); + UpdateRSOrPushRefOopClosure update_rs_oop_cl(_g1, + _g1->g1_rem_set(), + _cset_rs_update_cl[worker_i], + check_for_refs_into_cset, + worker_i); update_rs_oop_cl.set_from(r); TriggerClosure trigger_cl; diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp index 5e0e8ddb1c0..2a40213c90b 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp @@ -59,11 +59,6 @@ protected: size_t* _cards_scanned; size_t _total_cards_scanned; - // _traversal_in_progress is "true" iff a traversal is in progress. - - bool _traversal_in_progress; - void set_traversal(bool b) { _traversal_in_progress = b; } - // Used for caching the closure that is responsible for scanning // references into the collection set. OopsInHeapRegionClosure** _cset_rs_update_cl; @@ -76,10 +71,6 @@ protected: bool concurrentRefineOneCard_impl(jbyte* card_ptr, int worker_i, bool check_for_refs_into_cset); -protected: - template void write_ref_nv(HeapRegion* from, T* p); - template void par_write_ref_nv(HeapRegion* from, T* p, int tid); - public: // This is called to reset dual hash tables after the gc pause // is finished and the initial hash table is no longer being @@ -117,22 +108,8 @@ public: // Record, if necessary, the fact that *p (where "p" is in region "from", // which is required to be non-NULL) has changed to a new non-NULL value. - // [Below the virtual version calls a non-virtual protected - // workhorse that is templatified for narrow vs wide oop.] - inline void write_ref(HeapRegion* from, oop* p) { - write_ref_nv(from, p); - } - inline void write_ref(HeapRegion* from, narrowOop* p) { - write_ref_nv(from, p); - } - inline void par_write_ref(HeapRegion* from, oop* p, int tid) { - par_write_ref_nv(from, p, tid); - } - inline void par_write_ref(HeapRegion* from, narrowOop* p, int tid) { - par_write_ref_nv(from, p, tid); - } - - bool self_forwarded(oop obj); + template void write_ref(HeapRegion* from, T* p); + template void par_write_ref(HeapRegion* from, T* p, int tid); // Requires "region_bm" and "card_bm" to be bitmaps with 1 bit per region // or card, respectively, such that a region or card with a corresponding @@ -186,9 +163,8 @@ class UpdateRSOopClosure: public OopClosure { public: UpdateRSOopClosure(G1RemSet* rs, int worker_i = 0) : - _from(NULL), _rs(rs), _worker_i(worker_i) { - guarantee(_rs != NULL, "Requires an HRIntoG1RemSet"); - } + _from(NULL), _rs(rs), _worker_i(worker_i) + {} void set_from(HeapRegion* from) { assert(from != NULL, "from region must be non-NULL"); @@ -215,3 +191,43 @@ public: virtual void do_oop(narrowOop* p) { do_oop_work(p); } virtual void do_oop( oop* p) { do_oop_work(p); } }; + +class UpdateRSOrPushRefOopClosure: public OopClosure { + G1CollectedHeap* _g1; + G1RemSet* _g1_rem_set; + HeapRegion* _from; + OopsInHeapRegionClosure* _push_ref_cl; + bool _record_refs_into_cset; + int _worker_i; + + template void do_oop_work(T* p); + +public: + UpdateRSOrPushRefOopClosure(G1CollectedHeap* g1h, + G1RemSet* rs, + OopsInHeapRegionClosure* push_ref_cl, + bool record_refs_into_cset, + int worker_i = 0) : + _g1(g1h), + _g1_rem_set(rs), + _from(NULL), + _record_refs_into_cset(record_refs_into_cset), + _push_ref_cl(push_ref_cl), + _worker_i(worker_i) { } + + void set_from(HeapRegion* from) { + assert(from != NULL, "from region must be non-NULL"); + _from = from; + } + + bool self_forwarded(oop obj) { + bool result = (obj->is_forwarded() && (obj->forwardee()== obj)); + return result; + } + + virtual void do_oop(narrowOop* p) { do_oop_work(p); } + virtual void do_oop(oop* p) { do_oop_work(p); } + + bool apply_to_weak_ref_discovered_field() { return true; } +}; + diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp index 672c1899683..9a4fae7abb3 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp @@ -31,17 +31,12 @@ inline size_t G1RemSet::n_workers() { } template -inline void G1RemSet::write_ref_nv(HeapRegion* from, T* p) { - par_write_ref_nv(from, p, 0); -} - -inline bool G1RemSet::self_forwarded(oop obj) { - bool result = (obj->is_forwarded() && (obj->forwardee()== obj)); - return result; +inline void G1RemSet::write_ref(HeapRegion* from, T* p) { + par_write_ref(from, p, 0); } template -inline void G1RemSet::par_write_ref_nv(HeapRegion* from, T* p, int tid) { +inline void G1RemSet::par_write_ref(HeapRegion* from, T* p, int tid) { oop obj = oopDesc::load_decode_heap_oop(p); #ifdef ASSERT // can't do because of races @@ -62,34 +57,15 @@ inline void G1RemSet::par_write_ref_nv(HeapRegion* from, T* p, int tid) { assert(from == NULL || from->is_in_reserved(p), "p is not in from"); HeapRegion* to = _g1->heap_region_containing(obj); - // The test below could be optimized by applying a bit op to to and from. - if (to != NULL && from != NULL && from != to) { - // The _traversal_in_progress flag is true during the collection pause, - // false during the evacuation failure handling. This should avoid a - // potential loop if we were to add the card containing 'p' to the DCQS - // that's used to regenerate the remembered sets for the collection set, - // in the event of an evacuation failure, here. The UpdateRSImmediate - // closure will eventally call this routine. - if (_traversal_in_progress && - to->in_collection_set() && !self_forwarded(obj)) { - - assert(_cset_rs_update_cl[tid] != NULL, "should have been set already"); - _cset_rs_update_cl[tid]->do_oop(p); - - // Deferred updates to the CSet are either discarded (in the normal case), - // or processed (if an evacuation failure occurs) at the end - // of the collection. - // See G1RemSet::cleanup_after_oops_into_collection_set_do(). - } else { + if (to != NULL && from != to) { #if G1_REM_SET_LOGGING - gclog_or_tty->print_cr("Adding " PTR_FORMAT " (" PTR_FORMAT ") to RS" - " for region [" PTR_FORMAT ", " PTR_FORMAT ")", - p, obj, - to->bottom(), to->end()); + gclog_or_tty->print_cr("Adding " PTR_FORMAT " (" PTR_FORMAT ") to RS" + " for region [" PTR_FORMAT ", " PTR_FORMAT ")", + p, obj, + to->bottom(), to->end()); #endif - assert(to->rem_set() != NULL, "Need per-region 'into' remsets."); - to->rem_set()->add_reference(p, tid); - } + assert(to->rem_set() != NULL, "Need per-region 'into' remsets."); + to->rem_set()->add_reference(p, tid); } } @@ -108,3 +84,64 @@ inline void UpdateRSetImmediate::do_oop_work(T* p) { } } +template +inline void UpdateRSOrPushRefOopClosure::do_oop_work(T* p) { + oop obj = oopDesc::load_decode_heap_oop(p); +#ifdef ASSERT + // can't do because of races + // assert(obj == NULL || obj->is_oop(), "expected an oop"); + + // Do the safe subset of is_oop + if (obj != NULL) { +#ifdef CHECK_UNHANDLED_OOPS + oopDesc* o = obj.obj(); +#else + oopDesc* o = obj; +#endif // CHECK_UNHANDLED_OOPS + assert((intptr_t)o % MinObjAlignmentInBytes == 0, "not oop aligned"); + assert(Universe::heap()->is_in_reserved(obj), "must be in heap"); + } +#endif // ASSERT + + assert(_from != NULL, "from region must be non-NULL"); + + HeapRegion* to = _g1->heap_region_containing(obj); + if (to != NULL && _from != to) { + // The _record_refs_into_cset flag is true during the RSet + // updating part of an evacuation pause. It is false at all + // other times: + // * rebuilding the rembered sets after a full GC + // * during concurrent refinement. + // * updating the remembered sets of regions in the collection + // set in the event of an evacuation failure (when deferred + // updates are enabled). + + if (_record_refs_into_cset && to->in_collection_set()) { + // We are recording references that point into the collection + // set and this particular reference does exactly that... + // If the referenced object has already been forwarded + // to itself, we are handling an evacuation failure and + // we have already visited/tried to copy this object + // there is no need to retry. + if (!self_forwarded(obj)) { + assert(_push_ref_cl != NULL, "should not be null"); + // Push the reference in the refs queue of the G1ParScanThreadState + // instance for this worker thread. + _push_ref_cl->do_oop(p); + } + + // Deferred updates to the CSet are either discarded (in the normal case), + // or processed (if an evacuation failure occurs) at the end + // of the collection. + // See G1RemSet::cleanup_after_oops_into_collection_set_do(). + } else { + // We either don't care about pushing references that point into the + // collection set (i.e. we're not during an evacuation pause) _or_ + // the reference doesn't point into the collection set. Either way + // we add the reference directly to the RSet of the region containing + // the referenced object. + _g1_rem_set->par_write_ref(_from, p, _worker_i); + } + } +} + -- GitLab From 5c238caed1130e80078af588a2a840e7898893e7 Mon Sep 17 00:00:00 2001 From: Igor Veresov Date: Tue, 16 Nov 2010 15:57:16 -0800 Subject: [PATCH 017/158] 7000349: Tiered reacts incorrectly to C1 compilation failures Fix policy reaction to C1 comilation failures, make C1 properly report errors. Reviewed-by: kvn --- hotspot/src/share/vm/c1/c1_Compilation.cpp | 9 ++++++++- hotspot/src/share/vm/compiler/compileBroker.cpp | 11 ++--------- .../src/share/vm/runtime/simpleThresholdPolicy.cpp | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/hotspot/src/share/vm/c1/c1_Compilation.cpp b/hotspot/src/share/vm/c1/c1_Compilation.cpp index b1dd7e20158..57e1623d959 100644 --- a/hotspot/src/share/vm/c1/c1_Compilation.cpp +++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp @@ -471,7 +471,14 @@ Compilation::Compilation(AbstractCompiler* compiler, ciEnv* env, ciMethod* metho _exception_info_list = new ExceptionInfoList(); _implicit_exception_table.set_size(0); compile_method(); - if (is_profiling() && _would_profile) { + if (bailed_out()) { + _env->record_method_not_compilable(bailout_msg(), !TieredCompilation); + if (is_profiling()) { + // Compilation failed, create MDO, which would signal the interpreter + // to start profiling on its own. + _method->build_method_data(); + } + } else if (is_profiling() && _would_profile) { ciMethodData *md = method->method_data(); assert (md != NULL, "Should have MDO"); md->set_would_profile(_would_profile); diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 213ea0cc48c..311d1b744bd 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -1535,7 +1535,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { //assert(false, "compiler should always document failure"); // The compiler elected, without comment, not to register a result. // Do not attempt further compilations of this method. - ci_env.record_method_not_compilable("compile failed"); + ci_env.record_method_not_compilable("compile failed", !TieredCompilation); } if (ci_env.failing()) { @@ -1544,15 +1544,8 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) { if (PrintCompilation) { const char* reason = ci_env.failure_reason(); if (compilable == ciEnv::MethodCompilable_not_at_tier) { - if (is_highest_tier_compile(ci_env.comp_level())) { - // Already at highest tier, promote to not compilable. - compilable = ciEnv::MethodCompilable_never; - } else { tty->print_cr("%3d COMPILE SKIPPED: %s (retry at different tier)", compile_id, reason); - } - } - - if (compilable == ciEnv::MethodCompilable_never) { + } else if (compilable == ciEnv::MethodCompilable_never) { tty->print_cr("%3d COMPILE SKIPPED: %s (not retryable)", compile_id, reason); } else if (compilable == ciEnv::MethodCompilable) { tty->print_cr("%3d COMPILE SKIPPED: %s", compile_id, reason); diff --git a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp index ce8495675ad..c38c2041a02 100644 --- a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp +++ b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp @@ -176,11 +176,11 @@ void SimpleThresholdPolicy::compile(methodHandle mh, int bci, CompLevel level, T if (level == CompLevel_none) { return; } - // Check if the method can be compiled, if not - try different levels. + // Check if the method can be compiled. If it cannot be compiled with C1, continue profiling + // in the interpreter and then compile with C2 (the transition function will request that, + // see common() ). If the method cannot be compiled with C2 but still can with C1, compile it with + // pure C1. if (!can_be_compiled(mh, level)) { - if (level < CompLevel_full_optimization && can_be_compiled(mh, CompLevel_full_optimization)) { - compile(mh, bci, CompLevel_full_optimization, THREAD); - } if (level == CompLevel_full_optimization && can_be_compiled(mh, CompLevel_simple)) { compile(mh, bci, CompLevel_simple, THREAD); } -- GitLab From 606ee163caf458a79028153dc1d83f375de5402a Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Thu, 18 Nov 2010 09:52:48 -0800 Subject: [PATCH 018/158] 7000491: assert(false) failed: should be optimized out in SharedRuntime::g1_wb_pre Wrong value type is used for NULL store when clearing the detail message of the preallocated exception object. Reviewed-by: never, iveresov --- hotspot/src/share/vm/opto/graphKit.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/opto/graphKit.cpp b/hotspot/src/share/vm/opto/graphKit.cpp index cbf43cb553f..493af5cea1e 100644 --- a/hotspot/src/share/vm/opto/graphKit.cpp +++ b/hotspot/src/share/vm/opto/graphKit.cpp @@ -569,7 +569,8 @@ void GraphKit::builtin_throw(Deoptimization::DeoptReason reason, Node* arg) { const TypePtr* adr_typ = ex_con->add_offset(offset); Node *adr = basic_plus_adr(ex_node, ex_node, offset); - Node *store = store_oop_to_object(control(), ex_node, adr, adr_typ, null(), ex_con, T_OBJECT); + const TypeOopPtr* val_type = TypeOopPtr::make_from_klass(env()->String_klass()); + Node *store = store_oop_to_object(control(), ex_node, adr, adr_typ, null(), val_type, T_OBJECT); add_exception_state(make_exception_state(ex_node)); return; -- GitLab From 04b08adf060f5bbd320917b560ca58504338721a Mon Sep 17 00:00:00 2001 From: Zhengyu Gu Date: Thu, 18 Nov 2010 14:37:46 -0500 Subject: [PATCH 019/158] 6751923: JNDI wake up when clock_settime() is called Ported Chris Phillips' patch from jdk5 to jdk7 Reviewed-by: chrisphi, coleenp --- hotspot/src/os/solaris/vm/os_solaris.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp index 08a16b76369..55f7ddcddb3 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.cpp +++ b/hotspot/src/os/solaris/vm/os_solaris.cpp @@ -3375,7 +3375,12 @@ static int os_sleep(jlong millis, bool interruptible) { // INTERRUPTIBLE_NORESTART_VM_ALWAYS returns res == OS_INTRPT for // thread.Interrupt. - if((res == OS_ERR) && (errno == EINTR)) { + // See c/r 6751923. Poll can return 0 before time + // has elapsed if time is set via clock_settime (as NTP does). + // res == 0 if poll timed out (see man poll RETURN VALUES) + // using the logic below checks that we really did + // sleep at least "millis" if not we'll sleep again. + if( ( res == 0 ) || ((res == OS_ERR) && (errno == EINTR))) { newtime = getTimeMillis(); assert(newtime >= prevtime, "time moving backwards"); /* Doing prevtime and newtime in microseconds doesn't help precision, -- GitLab From b91e418b3e96b970f6b9a6c39a80f8ccf498ca8e Mon Sep 17 00:00:00 2001 From: Poonam Bajaj Date: Fri, 19 Nov 2010 03:41:50 -0800 Subject: [PATCH 020/158] 6837842: JNI_CreateJavaVM crashes under impersonation Reviewed-by: acorn, dholmes --- hotspot/src/os/windows/vm/perfMemory_windows.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hotspot/src/os/windows/vm/perfMemory_windows.cpp b/hotspot/src/os/windows/vm/perfMemory_windows.cpp index 7274df0ccb7..2b5c186bf17 100644 --- a/hotspot/src/os/windows/vm/perfMemory_windows.cpp +++ b/hotspot/src/os/windows/vm/perfMemory_windows.cpp @@ -889,6 +889,7 @@ static bool add_allow_aces(PSECURITY_DESCRIPTOR pSD, DWORD newACLsize = aclinfo.AclBytesInUse + (sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD)) * ace_count; for (int i = 0; i < ace_count; i++) { + assert(aces[i].pSid != 0, "pSid should not be 0"); newACLsize += GetLengthSid(aces[i].pSid); } @@ -1084,6 +1085,9 @@ static LPSECURITY_ATTRIBUTES make_user_everybody_admin_security_attr( aces[0].pSid = get_user_sid(GetCurrentProcess()); aces[0].mask = umask; + if (aces[0].pSid == 0) + return NULL; + // get the well known SID for BUILTIN\Administrators PSID administratorsSid = NULL; SID_IDENTIFIER_AUTHORITY SIDAuthAdministrators = SECURITY_NT_AUTHORITY; -- GitLab From b44ef9738feab80a161a2d3018b2857b8141367c Mon Sep 17 00:00:00 2001 From: Sunita Koppar Date: Sun, 21 Nov 2010 21:47:49 -0800 Subject: [PATCH 021/158] 6980681: CORBA deadlock in Java SE beleived to be related to CR 6238477 Also reviewed by ken.cavanaugh@oracle.com Reviewed-by: poonam --- .../com/sun/corba/se/impl/orb/ORBImpl.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java b/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java index e8aac1da709..bcbdf872651 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java +++ b/corba/src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -245,7 +245,14 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB // All access to resolver, localResolver, and urlOperation must be protected using // resolverLock. Do not hold the ORBImpl lock while accessing // resolver, or deadlocks may occur. - private Object resolverLock ; + // Note that we now have separate locks for each resolver type. This is due + // to bug 6980681 and 6238477, which was caused by a deadlock while resolving a + // corbaname: URL that contained a reference to the same ORB as the + // ORB making the call to string_to_object. This caused a deadlock between the + // client thread holding the single lock for access to the urlOperation, + // and the server thread handling the client is_a request waiting on the + // same lock to access the localResolver. + // Used for resolver_initial_references and list_initial_services private Resolver resolver ; @@ -255,8 +262,14 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB // Converts strings to object references for resolvers and string_to_object private Operation urlOperation ; + private final Object urlOperationLock = new java.lang.Object() ; private CorbaServerRequestDispatcher insNamingDelegate ; + // resolverLock must be used for all access to either resolver or + // localResolver, since it is possible for the resolver to indirectly + // refer to the localResolver. Also used to protect access to + // insNamingDelegate. + private final Object resolverLock = new Object() ; private TaggedComponentFactoryFinder taggedComponentFactoryFinder ; @@ -396,7 +409,6 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB } }; - resolverLock = new java.lang.Object() ; requestDispatcherRegistry = new RequestDispatcherRegistryImpl( this, ORBConstants.DEFAULT_SCID); @@ -832,7 +844,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB if (str == null) throw wrapper.nullParam() ; - synchronized (resolverLock) { + synchronized (urlOperationLock) { org.omg.CORBA.Object obj = (org.omg.CORBA.Object)op.operate( str ) ; return obj ; } @@ -1773,7 +1785,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB */ public void setURLOperation( Operation stringToObject ) { - synchronized (resolverLock) { + synchronized (urlOperationLock) { urlOperation = stringToObject ; } } @@ -1783,7 +1795,7 @@ public class ORBImpl extends com.sun.corba.se.spi.orb.ORB */ public Operation getURLOperation() { - synchronized (resolverLock) { + synchronized (urlOperationLock) { return urlOperation ; } } -- GitLab From a296bc0a0a6f7dd75b86fbe16f700996671aa067 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Tue, 23 Nov 2010 02:17:23 +0000 Subject: [PATCH 022/158] 7000225: Sanity check on sane-alsa-headers is broken Fix use of tab separators, ${alsa_version} expansion and conditional Reviewed-by: ohair --- jdk/make/common/shared/Sanity.gmk | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk index 39f99ae7c17..6b545159d54 100644 --- a/jdk/make/common/shared/Sanity.gmk +++ b/jdk/make/common/shared/Sanity.gmk @@ -1389,20 +1389,21 @@ ifdef REQUIRED_ALSA_VERSION endif sane-alsa-headers: ifdef REQUIRED_ALSA_VERSION - if [ "$(ALSA_CHECK)" != "same" -a "$(ALSA_CHECK)" != "newer" ] ; then \ - $(ECHO) "ERROR: The ALSA version must be $(REQUIRED_ALSA_VERSION) or higher. \n" \ - " You have the following ALSA version installed: $${alsa_version) \n" \ - " Please reinstall ALSA (drivers and lib). You can download \n" \ - " the source distribution from http://www.alsa-project.org \n" \ - " or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ - "" >> $(ERROR_FILE) ; \ - fi \ + @if [ "$(ALSA_CHECK)" != "missing" ] ; then \ + if [ "$(ALSA_CHECK)" != "same" -a "$(ALSA_CHECK)" != "newer" ] ; then \ + $(ECHO) "ERROR: The ALSA version must be $(REQUIRED_ALSA_VERSION) or higher. \n" \ + " You have the following ALSA version installed: $${alsa_version} \n" \ + " Please reinstall ALSA (drivers and lib). You can download \n" \ + " the source distribution from http://www.alsa-project.org \n" \ + " or go to http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ + "" >> $(ERROR_FILE) ; \ + fi ; \ else \ - $(ECHO) "ERROR: You seem to not have installed ALSA $(REQUIRED_ALSA_VERSION) or higher. \n" \ - " Please install ALSA (drivers and lib). You can download the \n" \ - " source distribution from http://www.alsa-project.org or go to \n" \ - " http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ - "" >> $(ERROR_FILE) ; \ + $(ECHO) "ERROR: You seem to not have installed ALSA $(REQUIRED_ALSA_VERSION) or higher. \n" \ + " Please install ALSA (drivers and lib). You can download the \n" \ + " source distribution from http://www.alsa-project.org or go to \n" \ + " http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages. \n" \ + "" >> $(ERROR_FILE) ; \ fi endif -- GitLab From aa7f1cc82657b210b84845dd6007a75121c40de2 Mon Sep 17 00:00:00 2001 From: John R Rose Date: Mon, 22 Nov 2010 22:41:31 -0800 Subject: [PATCH 023/158] 6979327: method handle invocation should use casts instead of type parameters to specify return type Change result type parameters to result type casts. (Also, replace private placeholder class InvokeDynamic.) Reviewed-by: twisti --- jdk/make/java/dyn/Makefile | 6 +- .../share/classes/java/dyn/InvokeDynamic.java | 33 ++++ .../share/classes/java/dyn/MethodHandle.java | 8 +- .../classes/sun/dyn/AdapterMethodHandle.java | 2 +- .../share/classes/sun/dyn/CallSiteImpl.java | 4 +- .../share/classes/sun/dyn/FilterGeneric.java | 48 +++--- .../share/classes/sun/dyn/FromGeneric.java | 138 ++++++++--------- .../classes/sun/dyn/MethodHandleImpl.java | 120 +++++++-------- .../share/classes/sun/dyn/SpreadGeneric.java | 142 +++++++++--------- jdk/src/share/classes/sun/dyn/ToGeneric.java | 56 +++---- jdk/test/java/dyn/InvokeGenericTest.java | 6 +- jdk/test/java/dyn/JavaDocExamplesTest.java | 10 +- jdk/test/java/dyn/MethodHandlesTest.java | 39 ++--- 13 files changed, 324 insertions(+), 288 deletions(-) create mode 100644 jdk/src/share/classes/java/dyn/InvokeDynamic.java diff --git a/jdk/make/java/dyn/Makefile b/jdk/make/java/dyn/Makefile index af7bec9d24f..a85b5168126 100644 --- a/jdk/make/java/dyn/Makefile +++ b/jdk/make/java/dyn/Makefile @@ -36,9 +36,7 @@ AUTO_FILES_JAVA_DIRS = java/dyn sun/dyn LANGUAGE_VERSION = -source 7 CLASS_VERSION = -target 7 -# Actually, it will be less disruptive to compile with the same -# -target option as the rest of the system, and just turn on -# the specific compiler option we need here: -OTHER_JAVACFLAGS = -XDinvokedynamic +# Tell the compiler not to accept transitional forms. +OTHER_JAVACFLAGS = -XDallowTransitionalJSR292=no include $(BUILDDIR)/common/Classes.gmk diff --git a/jdk/src/share/classes/java/dyn/InvokeDynamic.java b/jdk/src/share/classes/java/dyn/InvokeDynamic.java new file mode 100644 index 00000000000..9c3ede1ee36 --- /dev/null +++ b/jdk/src/share/classes/java/dyn/InvokeDynamic.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.dyn; + +/** + * This is a place-holder class. Some HotSpot implementations need to see it. + */ +final class InvokeDynamic { + private InvokeDynamic() { throw new InternalError(); } // do not instantiate +} diff --git a/jdk/src/share/classes/java/dyn/MethodHandle.java b/jdk/src/share/classes/java/dyn/MethodHandle.java index 1aec36e27b0..842ae9fa5d4 100644 --- a/jdk/src/share/classes/java/dyn/MethodHandle.java +++ b/jdk/src/share/classes/java/dyn/MethodHandle.java @@ -164,7 +164,7 @@ MethodHandles.Lookup lookup = MethodHandles.lookup(); mt = MethodType.methodType(String.class, char.class, char.class); mh = lookup.findVirtual(String.class, "replace", mt); // (Ljava/lang/String;CC)Ljava/lang/String; -s = mh.<String>invokeExact("daddy",'d','n'); +s = (String) mh.invokeExact("daddy",'d','n'); assert(s.equals("nanny")); // weakly typed invocation (using MHs.invoke) s = (String) mh.invokeWithArguments("sappy", 'p', 'v'); @@ -183,7 +183,7 @@ assert(x.equals(java.util.Arrays.asList(1,2,3))); mt = MethodType.methodType(int.class); mh = lookup.findVirtual(java.util.List.class, "size", mt); // (Ljava/util/List;)I -i = mh.<int>invokeExact(java.util.Arrays.asList(1,2,3)); +i = (int) mh.invokeExact(java.util.Arrays.asList(1,2,3)); assert(i == 3); * * Each of the above calls generates a single invokevirtual instruction @@ -298,7 +298,7 @@ public abstract class MethodHandle * @throws WrongMethodTypeException if the target's type is not identical with the caller's type signature * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ - public final native @PolymorphicSignature R invokeExact(A... args) throws Throwable; + public final native @PolymorphicSignature Object invokeExact(Object... args) throws Throwable; /** * Invoke the method handle, allowing any caller signature, @@ -327,7 +327,7 @@ public abstract class MethodHandle * @throws WrongMethodTypeException if the target's type cannot be adjusted to the caller's type signature * @throws Throwable anything thrown by the underlying method propagates unchanged through the method handle call */ - public final native @PolymorphicSignature R invokeGeneric(A... args) throws Throwable; + public final native @PolymorphicSignature Object invokeGeneric(Object... args) throws Throwable; /** * Perform a varargs invocation, passing the arguments in the given array diff --git a/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java b/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java index 06a24faba49..c23699b948c 100644 --- a/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java +++ b/jdk/src/share/classes/sun/dyn/AdapterMethodHandle.java @@ -496,7 +496,7 @@ public class AdapterMethodHandle extends BoundMethodHandle { if (this.type() == newType) return this; try { - MethodHandle retyped = (MethodHandle) typeHandler.invokeExact(target, newType); + MethodHandle retyped = (MethodHandle) typeHandler.invokeExact(target, newType); // Contract: Must return the desired type, or throw WMT if (retyped.type() != newType) throw new WrongMethodTypeException(retyped.toString()); diff --git a/jdk/src/share/classes/sun/dyn/CallSiteImpl.java b/jdk/src/share/classes/sun/dyn/CallSiteImpl.java index f9bea6d5486..eb5abf74882 100644 --- a/jdk/src/share/classes/sun/dyn/CallSiteImpl.java +++ b/jdk/src/share/classes/sun/dyn/CallSiteImpl.java @@ -78,8 +78,8 @@ public class CallSiteImpl { } else { throw new ClassCastException("bootstrap method failed to produce a MethodHandle or CallSite"); } - PRIVATE_INITIALIZE_CALL_SITE.invokeExact(site, name, type, - callerMethod, callerBCI); + PRIVATE_INITIALIZE_CALL_SITE.invokeExact(site, name, type, + callerMethod, callerBCI); assert(site.getTarget() != null); assert(site.getTarget().type().equals(type)); } catch (Throwable ex) { diff --git a/jdk/src/share/classes/sun/dyn/FilterGeneric.java b/jdk/src/share/classes/sun/dyn/FilterGeneric.java index 1eaf34d5a13..b593588c6e9 100644 --- a/jdk/src/share/classes/sun/dyn/FilterGeneric.java +++ b/jdk/src/share/classes/sun/dyn/FilterGeneric.java @@ -303,7 +303,7 @@ class FilterGeneric { protected Object invoke_C0(Object a0) { return target.invokeExact(filter.invokeExact(a0)); } protected Object invoke_C1(Object a0) { return target.invokeExact(a0, filter.invokeExact()); } protected Object invoke_Y0(Object a0) { Object[] av = { a0 }; - filter.invokeExact(av); return target.invokeExact(av[0]); } + filter.invokeExact(av); return target.invokeExact(av[0]); } } static class F2X extends Adapter { protected F2X(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -320,7 +320,7 @@ class FilterGeneric { protected Object invoke_C1(Object a0, Object a1) { return target.invokeExact(a0, filter.invokeExact(a1)); } protected Object invoke_C2(Object a0, Object a1) { return target.invokeExact(a0, a1, filter.invokeExact()); } protected Object invoke_Y0(Object a0, Object a1) { Object[] av = { a0, a1 }; - filter.invokeExact(av); return target.invokeExact(av[0], av[1]); } + filter.invokeExact(av); return target.invokeExact(av[0], av[1]); } } // */ @@ -337,7 +337,7 @@ class FilterGeneric { return target.invokeExact(filter.invokeExact()); } static final Object[] NO_ARGS = { }; protected Object invoke_Y0() throws Throwable { - filter.invokeExact(NO_ARGS); // make the flyby + filter.invokeExact(NO_ARGS); // make the flyby return target.invokeExact(); } } @@ -375,7 +375,7 @@ class genclasses { " return target.invokeExact(@av@, filter.invokeExact()); }", " protected Object invoke_Y0(@Tvav@) throws Throwable {", " Object[] av = { @av@ };", - " filter.invokeExact(av); // make the flyby", + " filter.invokeExact(av); // make the flyby", " return target.invokeExact(@av[i]@); }", " }", } }; @@ -518,7 +518,7 @@ class genclasses { return target.invokeExact(a0, filter.invokeExact()); } protected Object invoke_Y0(Object a0) throws Throwable { Object[] av = { a0 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0]); } } static class F2 extends Adapter { @@ -548,7 +548,7 @@ class genclasses { return target.invokeExact(a0, a1, filter.invokeExact()); } protected Object invoke_Y0(Object a0, Object a1) throws Throwable { Object[] av = { a0, a1 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1]); } } static class F3 extends Adapter { @@ -585,7 +585,7 @@ class genclasses { return target.invokeExact(a0, a1, a2, filter.invokeExact()); } protected Object invoke_Y0(Object a0, Object a1, Object a2) throws Throwable { Object[] av = { a0, a1, a2 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2]); } } static class F4 extends Adapter { @@ -629,7 +629,7 @@ class genclasses { return target.invokeExact(a0, a1, a2, a3, filter.invokeExact()); } protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3) throws Throwable { Object[] av = { a0, a1, a2, a3 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3]); } } static class F5 extends Adapter { @@ -698,7 +698,7 @@ class genclasses { protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { Object[] av = { a0, a1, a2, a3, a4 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4]); } } static class F6 extends Adapter { @@ -777,7 +777,7 @@ class genclasses { protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5]); } } static class F7 extends Adapter { @@ -866,7 +866,7 @@ class genclasses { protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6]); } } static class F8 extends Adapter { @@ -965,7 +965,7 @@ class genclasses { protected Object invoke_Y0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7]); } } static class F9 extends Adapter { @@ -1104,7 +1104,7 @@ class genclasses { Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8]); } } static class F10 extends Adapter { @@ -1256,7 +1256,7 @@ class genclasses { Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9]); } } static class F11 extends Adapter { @@ -1442,7 +1442,7 @@ class genclasses { Object a4, Object a5, Object a6, Object a7, Object a8, Object a9, Object a10) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10]); } } static class F12 extends Adapter { @@ -1644,7 +1644,7 @@ class genclasses { Object a4, Object a5, Object a6, Object a7, Object a8, Object a9, Object a10, Object a11) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11]); } } static class F13 extends Adapter { @@ -1904,7 +1904,7 @@ class genclasses { Object a8, Object a9, Object a10, Object a11, Object a12) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12]); } } static class F14 extends Adapter { @@ -2183,7 +2183,7 @@ class genclasses { Object a8, Object a9, Object a10, Object a11, Object a12, Object a13) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13]); } } static class F15 extends Adapter { @@ -2481,7 +2481,7 @@ class genclasses { Object a8, Object a9, Object a10, Object a11, Object a12, Object a13, Object a14) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14]); } } static class F16 extends Adapter { @@ -2798,7 +2798,7 @@ class genclasses { Object a8, Object a9, Object a10, Object a11, Object a12, Object a13, Object a14, Object a15) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15]); } } static class F17 extends Adapter { @@ -3188,7 +3188,7 @@ class genclasses { Object a12, Object a13, Object a14, Object a15, Object a16) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16]); } } static class F18 extends Adapter { @@ -3600,7 +3600,7 @@ class genclasses { Object a12, Object a13, Object a14, Object a15, Object a16, Object a17) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16], av[17]); } } static class F19 extends Adapter { @@ -4034,7 +4034,7 @@ class genclasses { Object a12, Object a13, Object a14, Object a15, Object a16, Object a17, Object a18) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16], av[17], av[18]); } } static class F20 extends Adapter { @@ -4490,7 +4490,7 @@ class genclasses { Object a12, Object a13, Object a14, Object a15, Object a16, Object a17, Object a18, Object a19) throws Throwable { Object[] av = { a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19 }; - filter.invokeExact(av); // make the flyby + filter.invokeExact(av); // make the flyby return target.invokeExact(av[0], av[1], av[2], av[3], av[4], av[5], av[6], av[7], av[8], av[9], av[10], av[11], av[12], av[13], av[14], av[15], av[16], av[17], av[18], av[19]); } } } diff --git a/jdk/src/share/classes/sun/dyn/FromGeneric.java b/jdk/src/share/classes/sun/dyn/FromGeneric.java index 3e0d215fc97..4651d449faa 100644 --- a/jdk/src/share/classes/sun/dyn/FromGeneric.java +++ b/jdk/src/share/classes/sun/dyn/FromGeneric.java @@ -283,11 +283,11 @@ class FromGeneric { // { return new ThisType(entryPoint, convert, target); } /// Conversions on the value returned from the target. - protected Object convert_L(Object result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_I(int result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_J(long result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_F(float result) throws Throwable { return convert.invokeExact(result); } - protected Object convert_D(double result) throws Throwable { return convert.invokeExact(result); } + protected Object convert_L(Object result) throws Throwable { return convert.invokeExact(result); } + protected Object convert_I(int result) throws Throwable { return convert.invokeExact(result); } + protected Object convert_J(long result) throws Throwable { return convert.invokeExact(result); } + protected Object convert_F(float result) throws Throwable { return convert.invokeExact(result); } + protected Object convert_D(double result) throws Throwable { return convert.invokeExact(result); } static private final String CLASS_PREFIX; // "sun.dyn.FromGeneric$" static { @@ -316,11 +316,11 @@ class FromGeneric { { super(e, i, c, t); } protected xA2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new xA2(e, i, c, t); } - protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1)); } + protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } + protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1)); } + protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1)); } + protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1)); } + protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1)); } } // */ @@ -329,7 +329,8 @@ class FromGeneric { //{{{ import java.util.*; class genclasses { - static String[] TYPES = { "Object", "int ", "long ", "float ", "double" }; + static String[] TYPES = { "Object", "int ", "long ", "float ", "double" }; + static String[] WRAPS = { " ", "(Integer)", "(Long) ", "(Float) ", "(Double) " }; static String[] TCHARS = { "L", "I", "J", "F", "D", "A" }; static String[][] TEMPLATES = { { "@for@ arity=0..10 rcat<=4 nrefs<=99 nints=0 nlongs=0", @@ -341,13 +342,13 @@ class genclasses { " protected @cat@ makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t)", " { return new @cat@(e, i, c, t); }", " //@each-R@", - " protected Object invoke_@catN@(@Tvav@) throws Throwable { return convert_@Rc@(invoker.<@R@>invokeExact(target@av@)); }", + " protected Object invoke_@catN@(@Tvav@) throws Throwable { return convert_@Rc@((@R@)@W@invoker.invokeExact(target@av@)); }", " //@end-R@", " }", } }; static final String NEWLINE_INDENT = "\n "; enum VAR { - cat, catN, R, Rc, av, Tvav, Ovav; + cat, catN, R, Rc, W, av, Tvav, Ovav; public final String pattern = "@"+toString().replace('_','.')+"@"; public String binding; static void makeBindings(boolean topLevel, int rcat, int nrefs, int nints, int nlongs) { @@ -357,6 +358,7 @@ class genclasses { VAR.catN.binding = catstr(rcat, nrefs, nints, nlongs); VAR.R.binding = TYPES[rcat]; VAR.Rc.binding = TCHARS[rcat]; + VAR.W.binding = WRAPS[rcat]; String[] Tv = new String[nargs]; String[] av = new String[nargs]; String[] Tvav = new String[nargs]; @@ -497,11 +499,11 @@ class genclasses { { super(e, i, c, t); } protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A0(e, i, c, t); } - protected Object invoke_L0() throws Throwable { return convert_L(invoker.invokeExact(target)); } - protected Object invoke_I0() throws Throwable { return convert_I(invoker.invokeExact(target)); } - protected Object invoke_J0() throws Throwable { return convert_J(invoker.invokeExact(target)); } - protected Object invoke_F0() throws Throwable { return convert_F(invoker.invokeExact(target)); } - protected Object invoke_D0() throws Throwable { return convert_D(invoker.invokeExact(target)); } + protected Object invoke_L0() throws Throwable { return convert_L((Object)invoker.invokeExact(target)); } + protected Object invoke_I0() throws Throwable { return convert_I((int) invoker.invokeExact(target)); } + protected Object invoke_J0() throws Throwable { return convert_J((long) invoker.invokeExact(target)); } + protected Object invoke_F0() throws Throwable { return convert_F((float) invoker.invokeExact(target)); } + protected Object invoke_D0() throws Throwable { return convert_D((double)invoker.invokeExact(target)); } } static class A1 extends Adapter { protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -509,11 +511,11 @@ class genclasses { { super(e, i, c, t); } protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A1(e, i, c, t); } - protected Object invoke_L1(Object a0) throws Throwable { return convert_L(invoker.invokeExact(target, a0)); } - protected Object invoke_I1(Object a0) throws Throwable { return convert_I(invoker.invokeExact(target, a0)); } - protected Object invoke_J1(Object a0) throws Throwable { return convert_J(invoker.invokeExact(target, a0)); } - protected Object invoke_F1(Object a0) throws Throwable { return convert_F(invoker.invokeExact(target, a0)); } - protected Object invoke_D1(Object a0) throws Throwable { return convert_D(invoker.invokeExact(target, a0)); } + protected Object invoke_L1(Object a0) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0)); } + protected Object invoke_I1(Object a0) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0)); } + protected Object invoke_J1(Object a0) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0)); } + protected Object invoke_F1(Object a0) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0)); } + protected Object invoke_D1(Object a0) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0)); } } static class A2 extends Adapter { protected A2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -521,11 +523,11 @@ class genclasses { { super(e, i, c, t); } protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A2(e, i, c, t); } - protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1)); } - protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1)); } + protected Object invoke_L2(Object a0, Object a1) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1)); } + protected Object invoke_I2(Object a0, Object a1) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1)); } + protected Object invoke_J2(Object a0, Object a1) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1)); } + protected Object invoke_F2(Object a0, Object a1) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1)); } + protected Object invoke_D2(Object a0, Object a1) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1)); } } static class A3 extends Adapter { protected A3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -533,11 +535,11 @@ class genclasses { { super(e, i, c, t); } protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A3(e, i, c, t); } - protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2)); } - protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2)); } + protected Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2)); } + protected Object invoke_I3(Object a0, Object a1, Object a2) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2)); } + protected Object invoke_J3(Object a0, Object a1, Object a2) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2)); } + protected Object invoke_F3(Object a0, Object a1, Object a2) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2)); } + protected Object invoke_D3(Object a0, Object a1, Object a2) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2)); } } static class A4 extends Adapter { protected A4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -545,11 +547,11 @@ class genclasses { { super(e, i, c, t); } protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A4(e, i, c, t); } - protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3)); } - protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3)); } + protected Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3)); } + protected Object invoke_I4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3)); } + protected Object invoke_J4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3)); } + protected Object invoke_F4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3)); } + protected Object invoke_D4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3)); } } static class A5 extends Adapter { protected A5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -557,11 +559,11 @@ class genclasses { { super(e, i, c, t); } protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A5(e, i, c, t); } - protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3, a4)); } - protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3, a4)); } + protected Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } + protected Object invoke_I5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } + protected Object invoke_J5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } + protected Object invoke_F5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4)); } + protected Object invoke_D5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4)); } } static class A6 extends Adapter { protected A6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -569,11 +571,11 @@ class genclasses { { super(e, i, c, t); } protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A6(e, i, c, t); } - protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } - protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } + protected Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } + protected Object invoke_I6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } + protected Object invoke_J6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } + protected Object invoke_F6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } + protected Object invoke_D6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5)); } } static class A7 extends Adapter { protected A7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -581,11 +583,11 @@ class genclasses { { super(e, i, c, t); } protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A7(e, i, c, t); } - protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } - protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } + protected Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } + protected Object invoke_I7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } + protected Object invoke_J7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } + protected Object invoke_F7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } + protected Object invoke_D7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6)); } } static class A8 extends Adapter { protected A8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -593,11 +595,11 @@ class genclasses { { super(e, i, c, t); } protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A8(e, i, c, t); } - protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } - protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } + protected Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } + protected Object invoke_I8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } + protected Object invoke_J8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } + protected Object invoke_F8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } + protected Object invoke_D8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7)); } } static class A9 extends Adapter { protected A9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -605,11 +607,11 @@ class genclasses { { super(e, i, c, t); } protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A9(e, i, c, t); } - protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } - protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } + protected Object invoke_L9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } + protected Object invoke_I9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } + protected Object invoke_J9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } + protected Object invoke_F9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } + protected Object invoke_D9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8)); } } static class A10 extends Adapter { protected A10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype @@ -617,10 +619,10 @@ class genclasses { { super(e, i, c, t); } protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A10(e, i, c, t); } - protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } - protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D(invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } + protected Object invoke_L10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_L((Object)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } + protected Object invoke_I10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_I((int) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } + protected Object invoke_J10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_J((long) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } + protected Object invoke_F10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_F((float) invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } + protected Object invoke_D10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return convert_D((double)invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)); } } } diff --git a/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java b/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java index 85b9f01f55d..24f7aae73a9 100644 --- a/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java +++ b/jdk/src/share/classes/sun/dyn/MethodHandleImpl.java @@ -245,52 +245,52 @@ public abstract class MethodHandleImpl { } private C invoke_V(Object... av) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, av); + rawConstructor.invokeExact((Object)obj, av); return obj; } private C invoke_L0() throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj); + rawConstructor.invokeExact((Object)obj); return obj; } private C invoke_L1(Object a0) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0); + rawConstructor.invokeExact((Object)obj, a0); return obj; } private C invoke_L2(Object a0, Object a1) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1); + rawConstructor.invokeExact((Object)obj, a0, a1); return obj; } private C invoke_L3(Object a0, Object a1, Object a2) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1, a2); + rawConstructor.invokeExact((Object)obj, a0, a1, a2); return obj; } private C invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3); + rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3); return obj; } private C invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4); + rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4); return obj; } private C invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4, a5); + rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4, a5); return obj; } private C invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4, a5, a6); + rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4, a5, a6); return obj; } private C invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { C obj = allocate(); - rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4, a5, a6, a7); + rawConstructor.invokeExact((Object)obj, a0, a1, a2, a3, a4, a5, a6, a7); return obj; } static MethodHandle[] makeInvokes() { @@ -951,54 +951,54 @@ public abstract class MethodHandleImpl { return addTypeString(target, this); } private Object invoke_V(Object... av) throws Throwable { - if (test.invokeExact(av)) - return target.invokeExact(av); - return fallback.invokeExact(av); + if ((boolean) test.invokeExact(av)) + return target.invokeExact(av); + return fallback.invokeExact(av); } private Object invoke_L0() throws Throwable { - if (test.invokeExact()) - return target.invokeExact(); - return fallback.invokeExact(); + if ((boolean) test.invokeExact()) + return target.invokeExact(); + return fallback.invokeExact(); } private Object invoke_L1(Object a0) throws Throwable { - if (test.invokeExact(a0)) - return target.invokeExact(a0); - return fallback.invokeExact(a0); + if ((boolean) test.invokeExact(a0)) + return target.invokeExact(a0); + return fallback.invokeExact(a0); } private Object invoke_L2(Object a0, Object a1) throws Throwable { - if (test.invokeExact(a0, a1)) - return target.invokeExact(a0, a1); - return fallback.invokeExact(a0, a1); + if ((boolean) test.invokeExact(a0, a1)) + return target.invokeExact(a0, a1); + return fallback.invokeExact(a0, a1); } private Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { - if (test.invokeExact(a0, a1, a2)) - return target.invokeExact(a0, a1, a2); - return fallback.invokeExact(a0, a1, a2); + if ((boolean) test.invokeExact(a0, a1, a2)) + return target.invokeExact(a0, a1, a2); + return fallback.invokeExact(a0, a1, a2); } private Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { - if (test.invokeExact(a0, a1, a2, a3)) - return target.invokeExact(a0, a1, a2, a3); - return fallback.invokeExact(a0, a1, a2, a3); + if ((boolean) test.invokeExact(a0, a1, a2, a3)) + return target.invokeExact(a0, a1, a2, a3); + return fallback.invokeExact(a0, a1, a2, a3); } private Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { - if (test.invokeExact(a0, a1, a2, a3, a4)) - return target.invokeExact(a0, a1, a2, a3, a4); - return fallback.invokeExact(a0, a1, a2, a3, a4); + if ((boolean) test.invokeExact(a0, a1, a2, a3, a4)) + return target.invokeExact(a0, a1, a2, a3, a4); + return fallback.invokeExact(a0, a1, a2, a3, a4); } private Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { - if (test.invokeExact(a0, a1, a2, a3, a4, a5)) - return target.invokeExact(a0, a1, a2, a3, a4, a5); - return fallback.invokeExact(a0, a1, a2, a3, a4, a5); + if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5)) + return target.invokeExact(a0, a1, a2, a3, a4, a5); + return fallback.invokeExact(a0, a1, a2, a3, a4, a5); } private Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { - if (test.invokeExact(a0, a1, a2, a3, a4, a5, a6)) - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); - return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6); + if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6)) + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); + return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6); } private Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { - if (test.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7)) - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); - return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); + if ((boolean) test.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7)) + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); + return fallback.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } static MethodHandle[] makeInvokes() { ArrayList invokes = new ArrayList(); @@ -1058,82 +1058,82 @@ public abstract class MethodHandleImpl { } private Object invoke_V(Object... av) throws Throwable { try { - return target.invokeExact(av); + return target.invokeExact(av); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, av); + return catcher.invokeExact(t, av); } } private Object invoke_L0() throws Throwable { try { - return target.invokeExact(); + return target.invokeExact(); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t); + return catcher.invokeExact(t); } } private Object invoke_L1(Object a0) throws Throwable { try { - return target.invokeExact(a0); + return target.invokeExact(a0); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0); + return catcher.invokeExact(t, a0); } } private Object invoke_L2(Object a0, Object a1) throws Throwable { try { - return target.invokeExact(a0, a1); + return target.invokeExact(a0, a1); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1); + return catcher.invokeExact(t, a0, a1); } } private Object invoke_L3(Object a0, Object a1, Object a2) throws Throwable { try { - return target.invokeExact(a0, a1, a2); + return target.invokeExact(a0, a1, a2); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1, a2); + return catcher.invokeExact(t, a0, a1, a2); } } private Object invoke_L4(Object a0, Object a1, Object a2, Object a3) throws Throwable { try { - return target.invokeExact(a0, a1, a2, a3); + return target.invokeExact(a0, a1, a2, a3); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1, a2, a3); + return catcher.invokeExact(t, a0, a1, a2, a3); } } private Object invoke_L5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { try { - return target.invokeExact(a0, a1, a2, a3, a4); + return target.invokeExact(a0, a1, a2, a3, a4); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1, a2, a3, a4); + return catcher.invokeExact(t, a0, a1, a2, a3, a4); } } private Object invoke_L6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { try { - return target.invokeExact(a0, a1, a2, a3, a4, a5); + return target.invokeExact(a0, a1, a2, a3, a4, a5); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1, a2, a3, a4, a5); + return catcher.invokeExact(t, a0, a1, a2, a3, a4, a5); } } private Object invoke_L7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { try { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1, a2, a3, a4, a5, a6); + return catcher.invokeExact(t, a0, a1, a2, a3, a4, a5, a6); } } private Object invoke_L8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { try { - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } catch (Throwable t) { if (!exType.isInstance(t)) throw t; - return catcher.invokeExact(t, a0, a1, a2, a3, a4, a5, a6, a7); + return catcher.invokeExact(t, a0, a1, a2, a3, a4, a5, a6, a7); } } static MethodHandle[] makeInvokes() { diff --git a/jdk/src/share/classes/sun/dyn/SpreadGeneric.java b/jdk/src/share/classes/sun/dyn/SpreadGeneric.java index 5ba601b13d7..d95f3b963d4 100644 --- a/jdk/src/share/classes/sun/dyn/SpreadGeneric.java +++ b/jdk/src/share/classes/sun/dyn/SpreadGeneric.java @@ -277,12 +277,12 @@ class SpreadGeneric { protected xS2(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected xS2 makeInstance(SpreadGeneric outer, MethodHandle t) { return new xS2(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object av) throws Throwable { av = super.check(av,0); - return target.invokeExact(a0, a1)); } + return target.invokeExact(a0, a1)); } protected Object invoke_S1(Object a0, Object av) throws Throwable { av = super.check(av,1); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0)); } protected Object invoke_S2(Object a0, Object av) throws Throwable { av = super.check(av,1); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1)); } } // */ @@ -300,10 +300,10 @@ class genclasses { " protected @cat@(SpreadGeneric outer, MethodHandle t) { super(outer, t); }", " protected @cat@ makeInstance(SpreadGeneric outer, MethodHandle t) { return new @cat@(outer, t); }", " protected Object invoke_S0(@Tvav,@Object av) throws Throwable { av = super.check(av, 0);", - " return target.invokeExact(@av@); }", + " return target.invokeExact(@av@); }", " //@each-S@", " protected Object invoke_S@S@(@Tvav,@Object av) throws Throwable { av = super.check(av, @S@);", - " return target.invokeExact(@av,@@sv@); }", + " return target.invokeExact(@av,@@sv@); }", " //@end-S@", " }", } }; @@ -414,16 +414,16 @@ class genclasses { protected S0(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S0 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S0(outer, t); } protected Object invoke_S0(Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(); } + return target.invokeExact(); } } static class S1 extends Adapter { protected S1(SpreadGeneric outer) { super(outer); } // to build prototype protected S1(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S1 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S1(outer, t); } protected Object invoke_S0(Object a0, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0); } + return target.invokeExact(a0); } protected Object invoke_S1(Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact( + return target.invokeExact( super.select(av,0)); } } static class S2 extends Adapter { @@ -431,12 +431,12 @@ class genclasses { protected S2(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S2 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S2(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1); } + return target.invokeExact(a0, a1); } protected Object invoke_S1(Object a0, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0)); } protected Object invoke_S2(Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1)); } } static class S3 extends Adapter { @@ -444,15 +444,15 @@ class genclasses { protected S3(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S3 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S3(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2); } + return target.invokeExact(a0, a1, a2); } protected Object invoke_S1(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0)); } protected Object invoke_S2(Object a0, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2)); } } static class S4 extends Adapter { @@ -460,18 +460,18 @@ class genclasses { protected S4(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S4 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S4(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3); } + return target.invokeExact(a0, a1, a2, a3); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } } static class S5 extends Adapter { @@ -479,21 +479,21 @@ class genclasses { protected S5(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S5 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S5(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object a4, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3, a4); } + return target.invokeExact(a0, a1, a2, a3, a4); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, a3, + return target.invokeExact(a0, a1, a2, a3, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object a0, Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } protected Object invoke_S5(Object av) throws Throwable { av = super.check(av, 5); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4)); } } @@ -502,25 +502,25 @@ class genclasses { protected S6(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S6 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S6(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3, a4, a5); } + return target.invokeExact(a0, a1, a2, a3, a4, a5); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object a3, Object a4, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, a3, a4, + return target.invokeExact(a0, a1, a2, a3, a4, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, a2, a3, + return target.invokeExact(a0, a1, a2, a3, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } protected Object invoke_S5(Object a0, Object av) throws Throwable { av = super.check(av, 5); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4)); } protected Object invoke_S6(Object av) throws Throwable { av = super.check(av, 6); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5)); } } @@ -529,29 +529,29 @@ class genclasses { protected S7(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S7 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S7(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); } + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, a3, a4, a5, + return target.invokeExact(a0, a1, a2, a3, a4, a5, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object a2, Object a3, Object a4, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, a2, a3, a4, + return target.invokeExact(a0, a1, a2, a3, a4, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, a1, a2, a3, + return target.invokeExact(a0, a1, a2, a3, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } protected Object invoke_S5(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 5); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4)); } protected Object invoke_S6(Object a0, Object av) throws Throwable { av = super.check(av, 6); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5)); } protected Object invoke_S7(Object av) throws Throwable { av = super.check(av, 7); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6)); } } @@ -560,33 +560,33 @@ class genclasses { protected S8(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S8 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S8(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, a2, a3, a4, a5, + return target.invokeExact(a0, a1, a2, a3, a4, a5, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object a1, Object a2, Object a3, Object a4, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, a1, a2, a3, a4, + return target.invokeExact(a0, a1, a2, a3, a4, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact(a0, a1, a2, a3, + return target.invokeExact(a0, a1, a2, a3, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } protected Object invoke_S5(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 5); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4)); } protected Object invoke_S6(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 6); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5)); } protected Object invoke_S7(Object a0, Object av) throws Throwable { av = super.check(av, 7); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6)); } protected Object invoke_S8(Object av) throws Throwable { av = super.check(av, 8); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6), super.select(av,7)); } } @@ -595,37 +595,37 @@ class genclasses { protected S9(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S9 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S9(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8); } + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, a1, a2, a3, a4, a5, + return target.invokeExact(a0, a1, a2, a3, a4, a5, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object a0, Object a1, Object a2, Object a3, Object a4, Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact(a0, a1, a2, a3, a4, + return target.invokeExact(a0, a1, a2, a3, a4, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } protected Object invoke_S5(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 5); - return target.invokeExact(a0, a1, a2, a3, + return target.invokeExact(a0, a1, a2, a3, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4)); } protected Object invoke_S6(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 6); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5)); } protected Object invoke_S7(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 7); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6)); } protected Object invoke_S8(Object a0, Object av) throws Throwable { av = super.check(av, 8); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6), super.select(av,7)); } protected Object invoke_S9(Object av) throws Throwable { av = super.check(av, 9); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6), super.select(av,7), super.select(av,8)); } @@ -635,42 +635,42 @@ class genclasses { protected S10(SpreadGeneric outer, MethodHandle t) { super(outer, t); } protected S10 makeInstance(SpreadGeneric outer, MethodHandle t) { return new S10(outer, t); } protected Object invoke_S0(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9, Object av) throws Throwable { av = super.check(av, 0); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } protected Object invoke_S1(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object av) throws Throwable { av = super.check(av, 1); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, a8, super.select(av,0)); } protected Object invoke_S2(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object av) throws Throwable { av = super.check(av, 2); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, a7, super.select(av,0), super.select(av,1)); } protected Object invoke_S3(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object av) throws Throwable { av = super.check(av, 3); - return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, + return target.invokeExact(a0, a1, a2, a3, a4, a5, a6, super.select(av,0), super.select(av,1), super.select(av,2)); } protected Object invoke_S4(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object av) throws Throwable { av = super.check(av, 4); - return target.invokeExact(a0, a1, a2, a3, a4, a5, + return target.invokeExact(a0, a1, a2, a3, a4, a5, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3)); } protected Object invoke_S5(Object a0, Object a1, Object a2, Object a3, Object a4, Object av) throws Throwable { av = super.check(av, 5); - return target.invokeExact(a0, a1, a2, a3, a4, + return target.invokeExact(a0, a1, a2, a3, a4, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4)); } protected Object invoke_S6(Object a0, Object a1, Object a2, Object a3, Object av) throws Throwable { av = super.check(av, 6); - return target.invokeExact(a0, a1, a2, a3, + return target.invokeExact(a0, a1, a2, a3, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5)); } protected Object invoke_S7(Object a0, Object a1, Object a2, Object av) throws Throwable { av = super.check(av, 7); - return target.invokeExact(a0, a1, a2, + return target.invokeExact(a0, a1, a2, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6)); } protected Object invoke_S8(Object a0, Object a1, Object av) throws Throwable { av = super.check(av, 8); - return target.invokeExact(a0, a1, + return target.invokeExact(a0, a1, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6), super.select(av,7)); } protected Object invoke_S9(Object a0, Object av) throws Throwable { av = super.check(av, 9); - return target.invokeExact(a0, + return target.invokeExact(a0, super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6), super.select(av,7), super.select(av,8)); } protected Object invoke_S10(Object av) throws Throwable { av = super.check(av, 10); - return target.invokeExact( + return target.invokeExact( super.select(av,0), super.select(av,1), super.select(av,2), super.select(av,3), super.select(av,4), super.select(av,5), super.select(av,6), super.select(av,7), super.select(av,8), super.select(av,9)); } diff --git a/jdk/src/share/classes/sun/dyn/ToGeneric.java b/jdk/src/share/classes/sun/dyn/ToGeneric.java index 80e7430dbe6..c6396454e87 100644 --- a/jdk/src/share/classes/sun/dyn/ToGeneric.java +++ b/jdk/src/share/classes/sun/dyn/ToGeneric.java @@ -367,33 +367,33 @@ class ToGeneric { // { return new ThisType(entryPoint, convert, target); } // Code to run when the arguments (<= 4) have all been boxed. - protected Object target() throws Throwable { return invoker.invokeExact(target); } - protected Object target(Object a0) throws Throwable { return invoker.invokeExact(target, a0); } + protected Object target() throws Throwable { return invoker.invokeExact(target); } + protected Object target(Object a0) throws Throwable { return invoker.invokeExact(target, a0); } protected Object target(Object a0, Object a1) - throws Throwable { return invoker.invokeExact(target, a0, a1); } + throws Throwable { return invoker.invokeExact(target, a0, a1); } protected Object target(Object a0, Object a1, Object a2) - throws Throwable { return invoker.invokeExact(target, a0, a1, a2); } + throws Throwable { return invoker.invokeExact(target, a0, a1, a2); } protected Object target(Object a0, Object a1, Object a2, Object a3) - throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3); } + throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3); } /* - protected Object target_0(Object... av) throws Throwable { return invoker.invokeExact(target, av); } + protected Object target_0(Object... av) throws Throwable { return invoker.invokeExact(target, av); } protected Object target_1(Object a0, Object... av) - throws Throwable { return invoker.invokeExact(target, a0, (Object)av); } + throws Throwable { return invoker.invokeExact(target, a0, (Object)av); } protected Object target_2(Object a0, Object a1, Object... av) - throws Throwable { return invoker.invokeExact(target, a0, a1, (Object)av); } + throws Throwable { return invoker.invokeExact(target, a0, a1, (Object)av); } protected Object target_3(Object a0, Object a1, Object a2, Object... av) - throws Throwable { return invoker.invokeExact(target, a0, a1, a2, (Object)av); } + throws Throwable { return invoker.invokeExact(target, a0, a1, a2, (Object)av); } protected Object target_4(Object a0, Object a1, Object a2, Object a3, Object... av) - throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, (Object)av); } + throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, (Object)av); } // */ // (For more than 4 arguments, generate the code in the adapter itself.) // Code to run when the generic target has finished and produced a value. - protected Object return_L(Object res) throws Throwable { return convert.invokeExact(res); } - protected int return_I(Object res) throws Throwable { return convert.invokeExact(res); } - protected long return_J(Object res) throws Throwable { return convert.invokeExact(res); } - protected float return_F(Object res) throws Throwable { return convert.invokeExact(res); } - protected double return_D(Object res) throws Throwable { return convert.invokeExact(res); } + protected Object return_L(Object res) throws Throwable { return (Object)convert.invokeExact(res); } + protected int return_I(Object res) throws Throwable { return (int) convert.invokeExact(res); } + protected long return_J(Object res) throws Throwable { return (long) convert.invokeExact(res); } + protected float return_F(Object res) throws Throwable { return (float) convert.invokeExact(res); } + protected double return_D(Object res) throws Throwable { return (double)convert.invokeExact(res); } static private final String CLASS_PREFIX; // "sun.dyn.ToGeneric$" static { @@ -420,7 +420,7 @@ class ToGeneric { protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A1(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A1(e, i, c, t); } - protected Object target(Object a0) throws Throwable { return invoker.invokeExact(target, a0); } + protected Object target(Object a0) throws Throwable { return invoker.invokeExact(target, a0); } protected Object targetA1(Object a0) throws Throwable { return target(a0); } protected Object targetA1(int a0) throws Throwable { return target(a0); } protected Object targetA1(long a0) throws Throwable { return target(a0); } @@ -458,7 +458,7 @@ class genclasses { " protected @cat@(MethodHandle entryPoint) { super(entryPoint); } // to build prototype", " protected @cat@(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); }", " protected @cat@ makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new @cat@(e, i, c, t); }", - " protected Object target(@Ovav@) throws Throwable { return invoker.invokeExact(target, @av@); }", + " protected Object target(@Ovav@) throws Throwable { return invoker.invokeExact(target, @av@); }", " //@each-Tv@", " protected Object target@cat@(@Tvav@) throws Throwable { return target(@av@); }", " //@end-Tv@", @@ -618,7 +618,7 @@ class genclasses { protected A0(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A0(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A0 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A0(e, i, c, t); } - protected Object target() throws Throwable { return invoker.invokeExact(target); } + protected Object target() throws Throwable { return invoker.invokeExact(target); } protected Object targetA0() throws Throwable { return target(); } protected Object invoke_L() throws Throwable { return return_L(targetA0()); } protected int invoke_I() throws Throwable { return return_I(targetA0()); } @@ -630,7 +630,7 @@ class genclasses { protected A1(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A1(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A1 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A1(e, i, c, t); } - protected Object target(Object a0) throws Throwable { return invoker.invokeExact(target, a0); } + protected Object target(Object a0) throws Throwable { return invoker.invokeExact(target, a0); } protected Object targetA1(Object a0) throws Throwable { return target(a0); } protected Object targetA1(int a0) throws Throwable { return target(a0); } protected Object targetA1(long a0) throws Throwable { return target(a0); } @@ -654,7 +654,7 @@ class genclasses { protected A2(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A2(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A2 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A2(e, i, c, t); } - protected Object target(Object a0, Object a1) throws Throwable { return invoker.invokeExact(target, a0, a1); } + protected Object target(Object a0, Object a1) throws Throwable { return invoker.invokeExact(target, a0, a1); } protected Object targetA2(Object a0, Object a1) throws Throwable { return target(a0, a1); } protected Object targetA2(Object a0, int a1) throws Throwable { return target(a0, a1); } protected Object targetA2(int a0, int a1) throws Throwable { return target(a0, a1); } @@ -690,7 +690,7 @@ class genclasses { protected A3(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A3(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A3 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A3(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2) throws Throwable { return invoker.invokeExact(target, a0, a1, a2); } + protected Object target(Object a0, Object a1, Object a2) throws Throwable { return invoker.invokeExact(target, a0, a1, a2); } protected Object targetA3(Object a0, Object a1, Object a2) throws Throwable { return target(a0, a1, a2); } protected Object targetA3(Object a0, Object a1, int a2) throws Throwable { return target(a0, a1, a2); } protected Object targetA3(Object a0, int a1, int a2) throws Throwable { return target(a0, a1, a2); } @@ -739,7 +739,7 @@ class genclasses { protected A4(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A4(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A4 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A4(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3); } + protected Object target(Object a0, Object a1, Object a2, Object a3) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3); } protected Object targetA4(Object a0, Object a1, Object a2, Object a3) throws Throwable { return target(a0, a1, a2, a3); } protected Object targetA4(Object a0, Object a1, Object a2, int a3) throws Throwable { return target(a0, a1, a2, a3); } protected Object targetA4(Object a0, Object a1, int a2, int a3) throws Throwable { return target(a0, a1, a2, a3); } @@ -781,7 +781,7 @@ class genclasses { protected A5(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A5(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A5 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A5(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4); } + protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4); } protected Object targetA5(Object a0, Object a1, Object a2, Object a3, Object a4) throws Throwable { return target(a0, a1, a2, a3, a4); } protected Object targetA5(Object a0, Object a1, Object a2, Object a3, int a4) throws Throwable { return target(a0, a1, a2, a3, a4); } protected Object targetA5(Object a0, Object a1, Object a2, int a3, int a4) throws Throwable { return target(a0, a1, a2, a3, a4); } @@ -832,7 +832,7 @@ class genclasses { protected A6(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A6(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A6 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A6(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5); } + protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5); } protected Object targetA6(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5) throws Throwable { return target(a0, a1, a2, a3, a4, a5); } protected Object targetA6(Object a0, Object a1, Object a2, Object a3, Object a4, long a5) throws Throwable { return target(a0, a1, a2, a3, a4, a5); } protected Object targetA6(Object a0, Object a1, Object a2, Object a3, long a4, long a5) throws Throwable { return target(a0, a1, a2, a3, a4, a5); } @@ -866,7 +866,7 @@ class genclasses { protected A7(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A7(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A7 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A7(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6); } + protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6); } protected Object targetA7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6); } protected Object targetA7(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, long a6) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6); } protected Object targetA7(Object a0, Object a1, Object a2, Object a3, Object a4, long a5, long a6) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6); } @@ -904,7 +904,7 @@ class genclasses { protected A8(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A8(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A8 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A8(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7); } + protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7); } protected Object targetA8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7); } protected Object targetA8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, long a7) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7); } protected Object targetA8(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, long a6, long a7) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7); } @@ -946,7 +946,7 @@ class genclasses { protected A9(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A9(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A9 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A9(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8); } + protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8); } protected Object targetA9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7, a8); } protected Object targetA9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, long a8) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7, a8); } protected Object targetA9(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, long a7, long a8) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7, a8); } @@ -992,7 +992,7 @@ class genclasses { protected A10(MethodHandle entryPoint) { super(entryPoint); } // to build prototype protected A10(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { super(e, i, c, t); } protected A10 makeInstance(MethodHandle e, MethodHandle i, MethodHandle c, MethodHandle t) { return new A10(e, i, c, t); } - protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } + protected Object target(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return invoker.invokeExact(target, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } protected Object targetA10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, Object a9) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } protected Object targetA10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, Object a8, long a9) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } protected Object targetA10(Object a0, Object a1, Object a2, Object a3, Object a4, Object a5, Object a6, Object a7, long a8, long a9) throws Throwable { return target(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9); } diff --git a/jdk/test/java/dyn/InvokeGenericTest.java b/jdk/test/java/dyn/InvokeGenericTest.java index 1b20d95ea61..12670668c7e 100644 --- a/jdk/test/java/dyn/InvokeGenericTest.java +++ b/jdk/test/java/dyn/InvokeGenericTest.java @@ -25,7 +25,7 @@ /* @test * @summary unit tests for java.dyn.MethodHandle.invokeGeneric - * @compile -target 7 InvokeGenericTest.java + * @compile -XDallowTransitionalJSR292=no -target 7 InvokeGenericTest.java * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles test.java.dyn.InvokeGenericTest */ @@ -350,7 +350,7 @@ public class InvokeGenericTest { String[] args = { "one", "two" }; MethodHandle mh = callable(Object.class, String.class); Object res; List resl; - res = resl = (List) mh.invokeGeneric((String)args[0], (Object)args[1]); + res = resl = (List) mh.invokeGeneric((String)args[0], (Object)args[1]); //System.out.println(res); assertEquals(Arrays.asList(args), res); } @@ -476,7 +476,7 @@ public class InvokeGenericTest { Integer[] args = { 1, 2 }; MethodHandle mh = callable(Object.class, int.class); Object res; List resl; - res = resl = (List) mh.invokeGeneric((int)args[0], (Object)args[1]); + res = resl = (List) mh.invokeGeneric((int)args[0], (Object)args[1]); //System.out.println(res); assertEquals(Arrays.asList(args), res); } diff --git a/jdk/test/java/dyn/JavaDocExamplesTest.java b/jdk/test/java/dyn/JavaDocExamplesTest.java index 90290c60da6..1e29956e5fb 100644 --- a/jdk/test/java/dyn/JavaDocExamplesTest.java +++ b/jdk/test/java/dyn/JavaDocExamplesTest.java @@ -95,11 +95,11 @@ MethodHandle CONCAT_3 = LOOKUP.findVirtual(String.class, MethodHandle HASHCODE_3 = LOOKUP.findVirtual(Object.class, "hashCode", methodType(int.class)); //assertEquals("xy", (String) CONCAT_1.invokeExact("x", "y")); -assertEquals("xy", (String) CONCAT_2.invokeExact("x", "y")); -assertEquals("xy", (String) CONCAT_3.invokeExact("x", "y")); -//assertEquals("xy".hashCode(), (int) HASHCODE_1.invokeExact((Object)"xy")); -assertEquals("xy".hashCode(), (int) HASHCODE_2.invokeExact((Object)"xy")); -assertEquals("xy".hashCode(), (int) HASHCODE_3.invokeExact((Object)"xy")); +assertEquals("xy", (String) CONCAT_2.invokeExact("x", "y")); +assertEquals("xy", (String) CONCAT_3.invokeExact("x", "y")); +//assertEquals("xy".hashCode(), (int) HASHCODE_1.invokeExact((Object)"xy")); +assertEquals("xy".hashCode(), (int) HASHCODE_2.invokeExact((Object)"xy")); +assertEquals("xy".hashCode(), (int) HASHCODE_3.invokeExact((Object)"xy")); {} } @Test public void testDropArguments() throws Throwable { diff --git a/jdk/test/java/dyn/MethodHandlesTest.java b/jdk/test/java/dyn/MethodHandlesTest.java index 6a80775bf3d..f2ab7d36e5f 100644 --- a/jdk/test/java/dyn/MethodHandlesTest.java +++ b/jdk/test/java/dyn/MethodHandlesTest.java @@ -25,8 +25,8 @@ /* @test * @summary unit tests for java.dyn.MethodHandles - * @compile -XDinvokedynamic MethodHandlesTest.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic test.java.dyn.MethodHandlesTest + * @compile -source 7 -target 7 -XDallowTransitionalJSR292=no MethodHandlesTest.java + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles test.java.dyn.MethodHandlesTest */ package test.java.dyn; @@ -891,12 +891,12 @@ public class MethodHandlesTest { for (int i = 0; i <= 1; i++) { if (isStatic) { if (type == int.class) - sawValue = mh.invokeExact(); // do these exactly + sawValue = (int) mh.invokeExact(); // do these exactly else sawValue = mh.invokeExact(); } else { if (type == int.class) - sawValue = mh.invokeExact((Object) fields); + sawValue = (int) mh.invokeExact((Object) fields); else sawValue = mh.invokeExact((Object) fields); } @@ -965,14 +965,14 @@ public class MethodHandlesTest { Object putValue = randomArg(type); if (isStatic) { if (type == int.class) - mh.invokeExact((int)(Integer)putValue); // do these exactly + mh.invokeExact((int)putValue); // do these exactly else - mh.invokeExact(putValue); + mh.invokeExact(putValue); } else { if (type == int.class) - mh.invokeExact((Object) fields, (int)(Integer)putValue); + mh.invokeExact((Object) fields, (int)putValue); else - mh.invokeExact((Object) fields, putValue); + mh.invokeExact((Object) fields, putValue); } assertEquals(f.get(fields), putValue); } @@ -1038,11 +1038,11 @@ public class MethodHandlesTest { model.set(i, random); if (testSetter) { if (elemType == int.class) - mh.invokeExact((int[]) array, i, (int)(Integer)random); + mh.invokeExact((int[]) array, i, (int)random); else if (elemType == boolean.class) - mh.invokeExact((boolean[]) array, i, (boolean)(Boolean)random); + mh.invokeExact((boolean[]) array, i, (boolean)random); else - mh.invokeExact(array, i, random); + mh.invokeExact(array, i, random); assertEquals(model, array2list(array)); } else { Array.set(array, i, random); @@ -1058,9 +1058,9 @@ public class MethodHandlesTest { if (!testSetter) { expValue = sawValue; if (elemType == int.class) - sawValue = mh.invokeExact((int[]) array, i); + sawValue = (int) mh.invokeExact((int[]) array, i); else if (elemType == boolean.class) - sawValue = mh.invokeExact((boolean[]) array, i); + sawValue = (boolean) mh.invokeExact((boolean[]) array, i); else sawValue = mh.invokeExact(array, i); assertEquals(sawValue, expValue); @@ -1355,15 +1355,15 @@ public class MethodHandlesTest { assertArrayEquals(args, check); switch (nargs) { case 0: - check = target.invokeExact(); + check = (Object[]) target.invokeExact(); assertArrayEquals(args, check); break; case 1: - check = target.invokeExact(args[0]); + check = (Object[]) target.invokeExact(args[0]); assertArrayEquals(args, check); break; case 2: - check = target.invokeExact(args[0], args[1]); + check = (Object[]) target.invokeExact(args[0], args[1]); assertArrayEquals(args, check); break; } @@ -1377,8 +1377,11 @@ public class MethodHandlesTest { MethodHandle result = MethodHandles.spreadArguments(target2, newType); Object[] returnValue; if (pos == 0) { - Object rawRetVal = result.invokeExact(args); - returnValue = (Object[]) rawRetVal; + // In the following line, the first cast implies + // normal Object return value for the MH call (Object[])->Object, + // while the second cast dynamically converts to an Object array. + // Such a double cast is typical of MH.invokeExact. + returnValue = (Object[]) (Object) result.invokeExact(args); } else { Object[] args1 = Arrays.copyOfRange(args, 0, pos+1); args1[pos] = Arrays.copyOfRange(args, pos, args.length); -- GitLab From 7b0fb2a1e3b4f3714913ea0f1fb63482ee41ec7a Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 23 Nov 2010 04:33:42 -0800 Subject: [PATCH 024/158] 7002129: Zero and Shark fixes, 3rd 6970683 and 6953144 introduced changes that need to be implemented for Zero and Shark. Reviewed-by: twisti --- hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 4 ++++ hotspot/src/share/vm/compiler/compileBroker.cpp | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp index fd78628b3eb..dfadb87e579 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp @@ -370,6 +370,10 @@ void os::print_context(outputStream* st, void* context) { ShouldNotCallThis(); } +void os::print_register_info(outputStream *st, void *context) { + ShouldNotCallThis(); +} + ///////////////////////////////////////////////////////////////////////////// // Stubs for things that would be in linux_zero.s if it existed. // You probably want to disassemble these monkeys to check they're ok. diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 311d1b744bd..7d8a69f24ac 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -522,6 +522,7 @@ CompilerCounters::CompilerCounters(const char* thread_name, int instance, TRAPS) void CompileBroker::compilation_init() { _last_method_compiled[0] = '\0'; +#ifndef SHARK // Set the interface to the current compiler(s). int c1_count = CompilationPolicy::policy()->compiler_count(CompLevel_simple); int c2_count = CompilationPolicy::policy()->compiler_count(CompLevel_full_optimization); @@ -537,13 +538,12 @@ void CompileBroker::compilation_init() { } #endif // COMPILER2 -#ifdef SHARK -#if defined(COMPILER1) || defined(COMPILER2) -#error "Can't use COMPILER1 or COMPILER2 with shark" -#endif - _compilers[0] = new SharkCompiler(); - _compilers[1] = _compilers[0]; -#endif +#else // SHARK + int c1_count = 0; + int c2_count = 1; + + _compilers[1] = new SharkCompiler(); +#endif // SHARK // Initialize the CompileTask free list _task_free_list = NULL; -- GitLab From 8006fe8f753ca2101ec50119065902bf105ab79a Mon Sep 17 00:00:00 2001 From: Stefan Karlsson Date: Tue, 23 Nov 2010 13:22:55 -0800 Subject: [PATCH 025/158] 6989984: Use standard include model for Hospot Replaced MakeDeps and the includeDB files with more standardized solutions. Reviewed-by: coleenp, kvn, kamg --- hotspot/make/linux/makefiles/adlc.make | 10 +- hotspot/make/linux/makefiles/amd64.make | 5 +- hotspot/make/linux/makefiles/buildtree.make | 22 +- hotspot/make/linux/makefiles/core.make | 5 +- hotspot/make/linux/makefiles/gcc.make | 8 +- hotspot/make/linux/makefiles/i486.make | 4 +- hotspot/make/linux/makefiles/jvmti.make | 5 +- hotspot/make/linux/makefiles/launcher.make | 4 +- hotspot/make/linux/makefiles/makedeps.make | 43 - hotspot/make/linux/makefiles/rules.make | 10 +- hotspot/make/linux/makefiles/saproc.make | 14 +- hotspot/make/linux/makefiles/sparc.make | 5 +- hotspot/make/linux/makefiles/sparcWorks.make | 5 + hotspot/make/linux/makefiles/sparcv9.make | 6 +- hotspot/make/linux/makefiles/top.make | 66 +- hotspot/make/linux/makefiles/vm.make | 83 +- hotspot/make/linux/makefiles/zero.make | 4 +- hotspot/make/solaris/makefiles/adlc.make | 10 +- hotspot/make/solaris/makefiles/amd64.make | 5 +- hotspot/make/solaris/makefiles/buildtree.make | 22 +- hotspot/make/solaris/makefiles/core.make | 5 +- hotspot/make/solaris/makefiles/dtrace.make | 27 +- hotspot/make/solaris/makefiles/gcc.make | 11 +- hotspot/make/solaris/makefiles/i486.make | 4 +- hotspot/make/solaris/makefiles/jvmti.make | 5 +- hotspot/make/solaris/makefiles/launcher.make | 4 +- hotspot/make/solaris/makefiles/makedeps.make | 43 - hotspot/make/solaris/makefiles/rules.make | 8 +- hotspot/make/solaris/makefiles/saproc.make | 11 +- .../make/solaris/makefiles/sparcWorks.make | 9 +- hotspot/make/solaris/makefiles/sparcv9.make | 3 +- hotspot/make/solaris/makefiles/top.make | 74 +- hotspot/make/solaris/makefiles/vm.make | 74 +- hotspot/make/windows/README | 212 - hotspot/make/windows/create.bat | 34 +- hotspot/make/windows/create_obj_files.sh | 124 + hotspot/make/windows/makefiles/adlc.make | 53 +- hotspot/make/windows/makefiles/debug.make | 4 +- hotspot/make/windows/makefiles/fastdebug.make | 5 +- hotspot/make/windows/makefiles/generated.make | 64 +- hotspot/make/windows/makefiles/makedeps.make | 177 - hotspot/make/windows/makefiles/product.make | 4 +- .../windows/makefiles/projectcreator.make | 234 + hotspot/make/windows/makefiles/vm.make | 52 +- .../make/windows/projectfiles/common/Makefile | 102 +- .../windows/projectfiles/compiler2/Makefile | 5 +- .../make/windows/projectfiles/kernel/Makefile | 2 +- .../make/windows/projectfiles/tiered/Makefile | 5 +- hotspot/src/cpu/sparc/vm/assembler_sparc.cpp | 20 +- hotspot/src/cpu/sparc/vm/assembler_sparc.hpp | 5 + .../cpu/sparc/vm/assembler_sparc.inline.hpp | 10 + .../sparc/vm/bytecodeInterpreter_sparc.cpp | 22 +- .../sparc/vm/bytecodeInterpreter_sparc.hpp | 7 +- .../vm/bytecodeInterpreter_sparc.inline.hpp | 7 +- hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp | 6 +- hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp | 7 +- hotspot/src/cpu/sparc/vm/bytes_sparc.hpp | 9 +- .../src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp | 14 +- hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp | 7 +- .../src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp | 8 +- .../src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp | 7 +- .../src/cpu/sparc/vm/c1_FrameMap_sparc.cpp | 7 +- .../src/cpu/sparc/vm/c1_FrameMap_sparc.hpp | 5 + .../cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 16 +- .../cpu/sparc/vm/c1_LIRAssembler_sparc.hpp | 5 + .../cpu/sparc/vm/c1_LIRGenerator_sparc.cpp | 16 +- .../src/cpu/sparc/vm/c1_LinearScan_sparc.cpp | 8 +- .../src/cpu/sparc/vm/c1_LinearScan_sparc.hpp | 7 +- .../cpu/sparc/vm/c1_MacroAssembler_sparc.cpp | 14 +- .../cpu/sparc/vm/c1_MacroAssembler_sparc.hpp | 7 +- .../src/cpu/sparc/vm/c1_Runtime1_sparc.cpp | 16 +- hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp | 8 + hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp | 8 + hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp | 7 +- hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp | 5 + hotspot/src/cpu/sparc/vm/copy_sparc.hpp | 7 +- .../vm/cppInterpreterGenerator_sparc.hpp | 7 +- .../src/cpu/sparc/vm/cppInterpreter_sparc.cpp | 30 +- .../src/cpu/sparc/vm/cppInterpreter_sparc.hpp | 5 + hotspot/src/cpu/sparc/vm/debug_sparc.cpp | 12 +- hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp | 8 +- hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp | 7 +- .../src/cpu/sparc/vm/disassembler_sparc.hpp | 7 +- hotspot/src/cpu/sparc/vm/dump_sparc.cpp | 9 +- hotspot/src/cpu/sparc/vm/frame_sparc.cpp | 20 +- hotspot/src/cpu/sparc/vm/frame_sparc.hpp | 8 + .../src/cpu/sparc/vm/frame_sparc.inline.hpp | 7 +- .../cpu/sparc/vm/globalDefinitions_sparc.hpp | 7 +- hotspot/src/cpu/sparc/vm/globals_sparc.hpp | 10 +- hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp | 14 +- hotspot/src/cpu/sparc/vm/icache_sparc.cpp | 7 +- hotspot/src/cpu/sparc/vm/icache_sparc.hpp | 7 +- .../src/cpu/sparc/vm/interp_masm_sparc.cpp | 22 +- .../src/cpu/sparc/vm/interp_masm_sparc.hpp | 8 + .../sparc/vm/interpreterGenerator_sparc.hpp | 7 +- .../src/cpu/sparc/vm/interpreterRT_sparc.cpp | 13 +- .../src/cpu/sparc/vm/interpreterRT_sparc.hpp | 9 +- .../src/cpu/sparc/vm/interpreter_sparc.cpp | 28 +- .../src/cpu/sparc/vm/interpreter_sparc.hpp | 5 + .../cpu/sparc/vm/javaFrameAnchor_sparc.hpp | 7 +- .../cpu/sparc/vm/jniFastGetField_sparc.cpp | 8 +- hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp | 11 +- hotspot/src/cpu/sparc/vm/jni_sparc.h | 2 +- .../src/cpu/sparc/vm/methodHandles_sparc.cpp | 6 +- hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp | 14 +- hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp | 13 +- .../src/cpu/sparc/vm/registerMap_sparc.hpp | 7 +- .../sparc/vm/register_definitions_sparc.cpp | 7 +- hotspot/src/cpu/sparc/vm/register_sparc.cpp | 6 +- hotspot/src/cpu/sparc/vm/register_sparc.hpp | 10 +- hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp | 11 +- hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp | 7 +- hotspot/src/cpu/sparc/vm/runtime_sparc.cpp | 18 +- .../src/cpu/sparc/vm/sharedRuntime_sparc.cpp | 24 +- .../src/cpu/sparc/vm/stubGenerator_sparc.cpp | 27 +- .../src/cpu/sparc/vm/stubRoutines_sparc.cpp | 14 +- .../src/cpu/sparc/vm/stubRoutines_sparc.hpp | 5 + .../vm/templateInterpreterGenerator_sparc.hpp | 7 +- .../sparc/vm/templateInterpreter_sparc.cpp | 24 +- .../sparc/vm/templateInterpreter_sparc.hpp | 5 + .../src/cpu/sparc/vm/templateTable_sparc.cpp | 14 +- .../src/cpu/sparc/vm/templateTable_sparc.hpp | 7 +- hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp | 7 +- hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp | 14 +- hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp | 8 + hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp | 7 +- hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp | 7 +- .../src/cpu/sparc/vm/vmreg_sparc.inline.hpp | 7 +- .../src/cpu/sparc/vm/vtableStubs_sparc.cpp | 17 +- hotspot/src/cpu/x86/vm/assembler_x86.cpp | 20 +- hotspot/src/cpu/x86/vm/assembler_x86.hpp | 5 + .../src/cpu/x86/vm/assembler_x86.inline.hpp | 12 +- .../cpu/x86/vm/bytecodeInterpreter_x86.cpp | 28 +- .../cpu/x86/vm/bytecodeInterpreter_x86.hpp | 7 +- .../x86/vm/bytecodeInterpreter_x86.inline.hpp | 7 +- hotspot/src/cpu/x86/vm/bytecodes_x86.cpp | 6 +- hotspot/src/cpu/x86/vm/bytecodes_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/bytes_x86.hpp | 20 +- hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp | 14 +- hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp | 9 +- hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp | 7 +- hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp | 5 + .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 16 +- .../src/cpu/x86/vm/c1_LIRAssembler_x86.hpp | 7 +- .../src/cpu/x86/vm/c1_LIRGenerator_x86.cpp | 16 +- hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp | 8 +- hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp | 7 +- .../src/cpu/x86/vm/c1_MacroAssembler_x86.cpp | 14 +- .../src/cpu/x86/vm/c1_MacroAssembler_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp | 16 +- hotspot/src/cpu/x86/vm/c1_globals_x86.hpp | 8 + hotspot/src/cpu/x86/vm/c2_globals_x86.hpp | 8 + hotspot/src/cpu/x86/vm/c2_init_x86.cpp | 7 +- hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/copy_x86.hpp | 18 +- .../x86/vm/cppInterpreterGenerator_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp | 30 +- hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp | 5 + hotspot/src/cpu/x86/vm/debug_x86.cpp | 12 +- hotspot/src/cpu/x86/vm/depChecker_x86.cpp | 8 +- hotspot/src/cpu/x86/vm/depChecker_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/disassembler_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/dump_x86_32.cpp | 9 +- hotspot/src/cpu/x86/vm/dump_x86_64.cpp | 9 +- hotspot/src/cpu/x86/vm/frame_x86.cpp | 20 +- hotspot/src/cpu/x86/vm/frame_x86.hpp | 10 +- hotspot/src/cpu/x86/vm/frame_x86.inline.hpp | 5 + .../src/cpu/x86/vm/globalDefinitions_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/globals_x86.hpp | 10 +- hotspot/src/cpu/x86/vm/icBuffer_x86.cpp | 14 +- hotspot/src/cpu/x86/vm/icache_x86.cpp | 7 +- hotspot/src/cpu/x86/vm/icache_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp | 25 +- hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp | 8 + hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp | 25 +- hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp | 8 + .../cpu/x86/vm/interpreterGenerator_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp | 9 +- .../src/cpu/x86/vm/interpreterRT_x86_32.cpp | 13 +- .../src/cpu/x86/vm/interpreterRT_x86_64.cpp | 13 +- hotspot/src/cpu/x86/vm/interpreter_x86.hpp | 5 + hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp | 28 +- hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp | 30 +- .../src/cpu/x86/vm/javaFrameAnchor_x86.hpp | 7 +- .../src/cpu/x86/vm/jniFastGetField_x86_32.cpp | 8 +- .../src/cpu/x86/vm/jniFastGetField_x86_64.cpp | 8 +- hotspot/src/cpu/x86/vm/jniTypes_x86.hpp | 11 +- hotspot/src/cpu/x86/vm/jni_x86.h | 2 +- hotspot/src/cpu/x86/vm/methodHandles_x86.cpp | 6 +- hotspot/src/cpu/x86/vm/nativeInst_x86.cpp | 16 +- hotspot/src/cpu/x86/vm/nativeInst_x86.hpp | 13 +- hotspot/src/cpu/x86/vm/registerMap_x86.hpp | 7 +- .../cpu/x86/vm/register_definitions_x86.cpp | 12 +- hotspot/src/cpu/x86/vm/register_x86.cpp | 7 +- hotspot/src/cpu/x86/vm/register_x86.hpp | 10 +- hotspot/src/cpu/x86/vm/relocInfo_x86.cpp | 11 +- hotspot/src/cpu/x86/vm/relocInfo_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/runtime_x86_32.cpp | 18 +- hotspot/src/cpu/x86/vm/runtime_x86_64.cpp | 20 +- .../src/cpu/x86/vm/sharedRuntime_x86_32.cpp | 20 +- .../src/cpu/x86/vm/sharedRuntime_x86_64.cpp | 20 +- .../src/cpu/x86/vm/stubGenerator_x86_32.cpp | 30 +- .../src/cpu/x86/vm/stubGenerator_x86_64.cpp | 30 +- .../src/cpu/x86/vm/stubRoutines_x86_32.cpp | 17 +- .../src/cpu/x86/vm/stubRoutines_x86_32.hpp | 5 + .../src/cpu/x86/vm/stubRoutines_x86_64.cpp | 17 +- .../src/cpu/x86/vm/stubRoutines_x86_64.hpp | 5 + .../vm/templateInterpreterGenerator_x86.hpp | 7 +- .../cpu/x86/vm/templateInterpreter_x86.hpp | 5 + .../cpu/x86/vm/templateInterpreter_x86_32.cpp | 24 +- .../cpu/x86/vm/templateInterpreter_x86_64.cpp | 24 +- .../src/cpu/x86/vm/templateTable_x86_32.cpp | 14 +- .../src/cpu/x86/vm/templateTable_x86_32.hpp | 7 +- .../src/cpu/x86/vm/templateTable_x86_64.cpp | 14 +- .../src/cpu/x86/vm/templateTable_x86_64.hpp | 7 +- hotspot/src/cpu/x86/vm/vmStructs_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/vm_version_x86.cpp | 17 +- hotspot/src/cpu/x86/vm/vm_version_x86.hpp | 8 + hotspot/src/cpu/x86/vm/vmreg_x86.cpp | 7 +- hotspot/src/cpu/x86/vm/vmreg_x86.hpp | 7 +- hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp | 7 +- hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp | 17 +- hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp | 15 +- hotspot/src/cpu/zero/vm/assembler_zero.cpp | 22 +- hotspot/src/cpu/zero/vm/assembler_zero.hpp | 7 +- .../src/cpu/zero/vm/assembler_zero.inline.hpp | 12 +- .../cpu/zero/vm/bytecodeInterpreter_zero.cpp | 23 +- .../cpu/zero/vm/bytecodeInterpreter_zero.hpp | 7 +- .../vm/bytecodeInterpreter_zero.inline.hpp | 7 +- hotspot/src/cpu/zero/vm/bytecodes_zero.cpp | 6 +- hotspot/src/cpu/zero/vm/bytecodes_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/bytes_zero.hpp | 14 +- hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/copy_zero.hpp | 7 +- .../zero/vm/cppInterpreterGenerator_zero.hpp | 7 +- .../src/cpu/zero/vm/cppInterpreter_zero.cpp | 31 +- .../src/cpu/zero/vm/cppInterpreter_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/debug_zero.cpp | 12 +- hotspot/src/cpu/zero/vm/depChecker_zero.cpp | 7 +- hotspot/src/cpu/zero/vm/depChecker_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/disassembler_zero.cpp | 4 +- hotspot/src/cpu/zero/vm/disassembler_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/dump_zero.cpp | 9 +- hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 10 +- hotspot/src/cpu/zero/vm/entry_zero.hpp | 7 +- .../src/cpu/zero/vm/fakeStubFrame_zero.hpp | 9 +- hotspot/src/cpu/zero/vm/frame_zero.cpp | 24 +- hotspot/src/cpu/zero/vm/frame_zero.hpp | 10 +- hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 7 +- .../cpu/zero/vm/globalDefinitions_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/globals_zero.hpp | 10 +- hotspot/src/cpu/zero/vm/icBuffer_zero.cpp | 14 +- hotspot/src/cpu/zero/vm/icache_zero.cpp | 7 +- hotspot/src/cpu/zero/vm/icache_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/interp_masm_zero.cpp | 20 +- hotspot/src/cpu/zero/vm/interp_masm_zero.hpp | 10 +- .../src/cpu/zero/vm/interpreterFrame_zero.hpp | 12 +- .../cpu/zero/vm/interpreterGenerator_zero.hpp | 7 +- .../src/cpu/zero/vm/interpreterRT_zero.cpp | 16 +- .../src/cpu/zero/vm/interpreterRT_zero.hpp | 9 +- hotspot/src/cpu/zero/vm/interpreter_zero.cpp | 30 +- hotspot/src/cpu/zero/vm/interpreter_zero.hpp | 5 + .../src/cpu/zero/vm/javaFrameAnchor_zero.hpp | 7 +- .../src/cpu/zero/vm/jniFastGetField_zero.cpp | 10 +- hotspot/src/cpu/zero/vm/jniTypes_zero.hpp | 11 +- hotspot/src/cpu/zero/vm/jni_zero.h | 2 +- .../src/cpu/zero/vm/methodHandles_zero.cpp | 8 +- hotspot/src/cpu/zero/vm/nativeInst_zero.cpp | 16 +- hotspot/src/cpu/zero/vm/nativeInst_zero.hpp | 13 +- hotspot/src/cpu/zero/vm/registerMap_zero.hpp | 7 +- .../cpu/zero/vm/register_definitions_zero.cpp | 8 +- hotspot/src/cpu/zero/vm/register_zero.cpp | 6 +- hotspot/src/cpu/zero/vm/register_zero.hpp | 10 +- hotspot/src/cpu/zero/vm/relocInfo_zero.cpp | 11 +- hotspot/src/cpu/zero/vm/relocInfo_zero.hpp | 7 +- .../src/cpu/zero/vm/sharedRuntime_zero.cpp | 26 +- hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp | 10 +- .../src/cpu/zero/vm/shark_globals_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/stack_zero.cpp | 8 +- hotspot/src/cpu/zero/vm/stack_zero.hpp | 9 +- hotspot/src/cpu/zero/vm/stack_zero.inline.hpp | 10 +- .../src/cpu/zero/vm/stubGenerator_zero.cpp | 27 +- hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp | 11 +- hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp | 7 +- .../vm/templateInterpreterGenerator_zero.hpp | 7 +- .../cpu/zero/vm/templateInterpreter_zero.cpp | 25 +- .../cpu/zero/vm/templateInterpreter_zero.hpp | 7 +- .../src/cpu/zero/vm/templateTable_zero.cpp | 15 +- .../src/cpu/zero/vm/templateTable_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/vmStructs_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/vm_version_zero.cpp | 12 +- hotspot/src/cpu/zero/vm/vm_version_zero.hpp | 10 +- hotspot/src/cpu/zero/vm/vmreg_zero.cpp | 7 +- hotspot/src/cpu/zero/vm/vmreg_zero.hpp | 7 +- hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp | 7 +- hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp | 17 +- hotspot/src/os/linux/launcher/java.c | 2 +- hotspot/src/os/linux/launcher/java.h | 2 +- hotspot/src/os/linux/launcher/java_md.c | 2 +- hotspot/src/os/linux/launcher/java_md.h | 2 +- .../src/os/linux/vm/attachListener_linux.cpp | 9 +- hotspot/src/os/linux/vm/c1_globals_linux.hpp | 10 +- hotspot/src/os/linux/vm/c2_globals_linux.hpp | 10 +- hotspot/src/os/linux/vm/chaitin_linux.cpp | 7 +- hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp | 14 +- hotspot/src/os/linux/vm/globals_linux.hpp | 7 +- hotspot/src/os/linux/vm/hpi_linux.cpp | 8 +- hotspot/src/os/linux/vm/hpi_linux.hpp | 7 +- .../os/linux/vm/interfaceSupport_linux.hpp | 7 +- hotspot/src/os/linux/vm/jsig.c | 2 +- hotspot/src/os/linux/vm/jvm_linux.cpp | 8 +- hotspot/src/os/linux/vm/jvm_linux.h | 7 +- hotspot/src/os/linux/vm/mutex_linux.cpp | 10 +- .../src/os/linux/vm/mutex_linux.inline.hpp | 11 +- hotspot/src/os/linux/vm/osThread_linux.cpp | 21 +- hotspot/src/os/linux/vm/osThread_linux.hpp | 7 +- hotspot/src/os/linux/vm/os_linux.cpp | 60 +- hotspot/src/os/linux/vm/os_linux.hpp | 7 +- hotspot/src/os/linux/vm/os_linux.inline.hpp | 22 +- hotspot/src/os/linux/vm/os_share_linux.hpp | 7 +- hotspot/src/os/linux/vm/perfMemory_linux.cpp | 13 +- .../src/os/linux/vm/stubRoutines_linux.cpp | 8 +- .../src/os/linux/vm/threadCritical_linux.cpp | 7 +- .../src/os/linux/vm/thread_linux.inline.hpp | 27 +- hotspot/src/os/linux/vm/vmError_linux.cpp | 9 +- .../os/solaris/dtrace/generateJvmOffsets.cpp | 19 +- .../os/solaris/dtrace/generateJvmOffsets.h | 7 +- .../solaris/dtrace/generateJvmOffsetsMain.c | 2 +- hotspot/src/os/solaris/dtrace/jvm_dtrace.c | 2 +- hotspot/src/os/solaris/dtrace/jvm_dtrace.h | 2 +- hotspot/src/os/solaris/dtrace/libjvm_db.h | 7 +- hotspot/src/os/solaris/launcher/java.c | 2 +- hotspot/src/os/solaris/launcher/java.h | 2 +- hotspot/src/os/solaris/launcher/java_md.c | 2 +- hotspot/src/os/solaris/launcher/java_md.h | 2 +- .../os/solaris/vm/attachListener_solaris.cpp | 9 +- .../src/os/solaris/vm/c1_globals_solaris.hpp | 10 +- .../src/os/solaris/vm/c2_globals_solaris.hpp | 10 +- hotspot/src/os/solaris/vm/chaitin_solaris.cpp | 7 +- .../src/os/solaris/vm/dtraceJSDT_solaris.cpp | 14 +- hotspot/src/os/solaris/vm/globals_solaris.hpp | 7 +- hotspot/src/os/solaris/vm/hpi_solaris.cpp | 8 +- hotspot/src/os/solaris/vm/hpi_solaris.hpp | 7 +- .../solaris/vm/interfaceSupport_solaris.hpp | 7 +- hotspot/src/os/solaris/vm/jsig.c | 2 +- hotspot/src/os/solaris/vm/jvm_solaris.cpp | 8 +- hotspot/src/os/solaris/vm/jvm_solaris.h | 7 +- hotspot/src/os/solaris/vm/mutex_solaris.cpp | 10 +- .../os/solaris/vm/mutex_solaris.inline.hpp | 11 +- .../src/os/solaris/vm/osThread_solaris.cpp | 19 +- .../src/os/solaris/vm/osThread_solaris.hpp | 7 +- .../src/os/solaris/vm/os_share_solaris.hpp | 7 +- hotspot/src/os/solaris/vm/os_solaris.cpp | 56 +- hotspot/src/os/solaris/vm/os_solaris.hpp | 7 +- .../src/os/solaris/vm/os_solaris.inline.hpp | 18 +- .../src/os/solaris/vm/perfMemory_solaris.cpp | 13 +- .../os/solaris/vm/stubRoutines_solaris.cpp | 8 +- .../os/solaris/vm/threadCritical_solaris.cpp | 7 +- .../os/solaris/vm/thread_solaris.inline.hpp | 22 +- hotspot/src/os/solaris/vm/vmError_solaris.cpp | 9 +- .../os/windows/vm/attachListener_windows.cpp | 9 +- .../src/os/windows/vm/c1_globals_windows.hpp | 10 +- .../src/os/windows/vm/c2_globals_windows.hpp | 10 +- hotspot/src/os/windows/vm/chaitin_windows.cpp | 7 +- .../src/os/windows/vm/dtraceJSDT_windows.cpp | 14 +- hotspot/src/os/windows/vm/globals_windows.hpp | 7 +- hotspot/src/os/windows/vm/hpi_windows.cpp | 8 +- hotspot/src/os/windows/vm/hpi_windows.hpp | 7 +- .../windows/vm/interfaceSupport_windows.hpp | 7 +- hotspot/src/os/windows/vm/jvm_windows.cpp | 8 +- hotspot/src/os/windows/vm/jvm_windows.h | 2 +- hotspot/src/os/windows/vm/mutex_windows.cpp | 10 +- .../os/windows/vm/mutex_windows.inline.hpp | 11 +- .../src/os/windows/vm/osThread_windows.cpp | 14 +- .../src/os/windows/vm/osThread_windows.hpp | 7 +- .../src/os/windows/vm/os_share_windows.hpp | 7 +- hotspot/src/os/windows/vm/os_windows.cpp | 52 +- hotspot/src/os/windows/vm/os_windows.hpp | 7 +- .../src/os/windows/vm/os_windows.inline.hpp | 14 +- .../src/os/windows/vm/perfMemory_windows.cpp | 13 +- .../os/windows/vm/stubRoutines_windows.cpp | 8 +- .../os/windows/vm/threadCritical_windows.cpp | 7 +- .../os/windows/vm/thread_windows.inline.hpp | 17 +- hotspot/src/os/windows/vm/vmError_windows.cpp | 9 +- .../linux_sparc/vm/assembler_linux_sparc.cpp | 9 +- .../vm/atomic_linux_sparc.inline.hpp | 12 +- .../linux_sparc/vm/globals_linux_sparc.hpp | 7 +- .../vm/orderAccess_linux_sparc.inline.hpp | 8 + .../os_cpu/linux_sparc/vm/os_linux_sparc.cpp | 39 +- .../os_cpu/linux_sparc/vm/os_linux_sparc.hpp | 7 +- .../vm/prefetch_linux_sparc.inline.hpp | 9 +- .../linux_sparc/vm/threadLS_linux_sparc.cpp | 7 +- .../linux_sparc/vm/threadLS_linux_sparc.hpp | 7 +- .../linux_sparc/vm/thread_linux_sparc.cpp | 7 +- .../linux_sparc/vm/thread_linux_sparc.hpp | 7 +- .../linux_sparc/vm/vmStructs_linux_sparc.hpp | 7 +- .../linux_sparc/vm/vm_version_linux_sparc.cpp | 7 +- .../linux_x86/vm/assembler_linux_x86.cpp | 9 +- .../linux_x86/vm/atomic_linux_x86.inline.hpp | 12 +- .../linux_x86/vm/bytes_linux_x86.inline.hpp | 7 +- .../linux_x86/vm/copy_linux_x86.inline.hpp | 7 +- .../os_cpu/linux_x86/vm/globals_linux_x86.hpp | 5 + .../vm/orderAccess_linux_x86.inline.hpp | 8 + .../src/os_cpu/linux_x86/vm/os_linux_x86.cpp | 39 +- .../src/os_cpu/linux_x86/vm/os_linux_x86.hpp | 7 +- .../vm/prefetch_linux_x86.inline.hpp | 9 +- .../linux_x86/vm/threadLS_linux_x86.cpp | 7 +- .../linux_x86/vm/threadLS_linux_x86.hpp | 7 +- .../os_cpu/linux_x86/vm/thread_linux_x86.cpp | 7 +- .../os_cpu/linux_x86/vm/thread_linux_x86.hpp | 7 +- .../linux_x86/vm/vmStructs_linux_x86.hpp | 7 +- .../linux_x86/vm/vm_version_linux_x86.cpp | 8 +- .../linux_zero/vm/assembler_linux_zero.cpp | 8 +- .../vm/atomic_linux_zero.inline.hpp | 12 +- .../linux_zero/vm/bytes_linux_zero.inline.hpp | 7 +- .../linux_zero/vm/globals_linux_zero.hpp | 7 +- .../vm/orderAccess_linux_zero.inline.hpp | 10 +- .../os_cpu/linux_zero/vm/os_linux_zero.cpp | 41 +- .../os_cpu/linux_zero/vm/os_linux_zero.hpp | 7 +- .../vm/prefetch_linux_zero.inline.hpp | 9 +- .../linux_zero/vm/threadLS_linux_zero.cpp | 7 +- .../linux_zero/vm/threadLS_linux_zero.hpp | 7 +- .../linux_zero/vm/thread_linux_zero.cpp | 7 +- .../linux_zero/vm/thread_linux_zero.hpp | 7 +- .../linux_zero/vm/vmStructs_linux_zero.hpp | 7 +- .../linux_zero/vm/vm_version_linux_zero.cpp | 6 +- .../vm/assembler_solaris_sparc.cpp | 9 +- .../vm/atomic_solaris_sparc.inline.hpp | 12 +- .../vm/globals_solaris_sparc.hpp | 7 +- .../vm/orderAccess_solaris_sparc.inline.hpp | 8 + .../solaris_sparc/vm/os_solaris_sparc.cpp | 41 +- .../solaris_sparc/vm/os_solaris_sparc.hpp | 7 +- .../vm/prefetch_solaris_sparc.inline.hpp | 9 +- .../vm/threadLS_solaris_sparc.cpp | 8 +- .../vm/threadLS_solaris_sparc.hpp | 7 +- .../solaris_sparc/vm/thread_solaris_sparc.cpp | 7 +- .../solaris_sparc/vm/thread_solaris_sparc.hpp | 7 +- .../vm/vmStructs_solaris_sparc.hpp | 7 +- .../vm/vm_version_solaris_sparc.cpp | 5 +- .../solaris_x86/vm/assembler_solaris_x86.cpp | 9 +- .../vm/atomic_solaris_x86.inline.hpp | 12 +- .../vm/bytes_solaris_x86.inline.hpp | 7 +- .../vm/copy_solaris_x86.inline.hpp | 7 +- .../solaris_x86/vm/globals_solaris_x86.hpp | 5 + .../vm/orderAccess_solaris_x86.inline.hpp | 8 + .../os_cpu/solaris_x86/vm/os_solaris_x86.cpp | 39 +- .../os_cpu/solaris_x86/vm/os_solaris_x86.hpp | 7 +- .../vm/prefetch_solaris_x86.inline.hpp | 9 +- .../solaris_x86/vm/threadLS_solaris_x86.cpp | 7 +- .../solaris_x86/vm/threadLS_solaris_x86.hpp | 7 +- .../solaris_x86/vm/thread_solaris_x86.cpp | 7 +- .../solaris_x86/vm/thread_solaris_x86.hpp | 7 +- .../solaris_x86/vm/vmStructs_solaris_x86.hpp | 7 +- .../solaris_x86/vm/vm_version_solaris_x86.cpp | 8 +- .../windows_x86/vm/assembler_windows_x86.cpp | 9 +- .../vm/atomic_windows_x86.inline.hpp | 12 +- .../vm/bytes_windows_x86.inline.hpp | 7 +- .../vm/copy_windows_x86.inline.hpp | 7 +- .../windows_x86/vm/globals_windows_x86.hpp | 7 +- .../vm/orderAccess_windows_x86.inline.hpp | 8 + .../os_cpu/windows_x86/vm/os_windows_x86.cpp | 40 +- .../os_cpu/windows_x86/vm/os_windows_x86.hpp | 7 +- .../vm/prefetch_windows_x86.inline.hpp | 9 +- .../windows_x86/vm/threadLS_windows_x86.cpp | 9 +- .../windows_x86/vm/threadLS_windows_x86.hpp | 7 +- .../windows_x86/vm/thread_windows_x86.cpp | 7 +- .../windows_x86/vm/thread_windows_x86.hpp | 7 +- .../windows_x86/vm/unwind_windows_x86.hpp | 7 +- .../windows_x86/vm/vmStructs_windows_x86.hpp | 7 +- .../windows_x86/vm/vm_version_windows_x86.cpp | 8 +- .../src/share/tools/MakeDeps/Database.java | 552 -- .../src/share/tools/MakeDeps/FileList.java | 263 - .../src/share/tools/MakeDeps/FileName.java | 119 - .../src/share/tools/MakeDeps/MakeDeps.java | 236 - .../tools/MakeDeps/MetroWerksMacPlatform.java | 70 - .../src/share/tools/MakeDeps/Platform.java | 185 - .../share/tools/MakeDeps/UnixPlatform.java | 80 - .../ArgsParser.java | 2 +- .../BuildConfig.java | 101 +- .../DirectoryTree.java | 50 +- .../DirectoryTreeNode.java | 2 +- .../FileFormatException.java | 2 +- .../{MakeDeps => ProjectCreator}/Macro.java | 2 +- .../MacroDefinitions.java | 104 +- .../tools/ProjectCreator/ProjectCreator.java | 98 + .../{MakeDeps => ProjectCreator}/Util.java | 2 +- .../WinGammaPlatform.java | 98 +- .../WinGammaPlatformVC6.java | 2 +- .../WinGammaPlatformVC7.java | 68 +- .../WinGammaPlatformVC8.java | 3 +- .../WinGammaPlatformVC9.java | 5 +- hotspot/src/share/tools/hsdis/hsdis-demo.c | 4 +- hotspot/src/share/tools/hsdis/hsdis.c | 4 +- hotspot/src/share/tools/hsdis/hsdis.h | 2 +- hotspot/src/share/vm/adlc/adlc.hpp | 16 +- hotspot/src/share/vm/adlc/adlparse.cpp | 2 +- hotspot/src/share/vm/adlc/adlparse.hpp | 7 +- hotspot/src/share/vm/adlc/archDesc.cpp | 36 +- hotspot/src/share/vm/adlc/archDesc.hpp | 16 +- hotspot/src/share/vm/adlc/arena.cpp | 2 +- hotspot/src/share/vm/adlc/arena.hpp | 7 +- hotspot/src/share/vm/adlc/dfa.cpp | 2 +- hotspot/src/share/vm/adlc/dict2.cpp | 2 +- hotspot/src/share/vm/adlc/dict2.hpp | 9 +- hotspot/src/share/vm/adlc/filebuff.cpp | 2 +- hotspot/src/share/vm/adlc/filebuff.hpp | 7 +- hotspot/src/share/vm/adlc/forms.cpp | 2 +- hotspot/src/share/vm/adlc/forms.hpp | 7 +- hotspot/src/share/vm/adlc/formsopt.cpp | 2 +- hotspot/src/share/vm/adlc/formsopt.hpp | 7 +- hotspot/src/share/vm/adlc/formssel.hpp | 7 +- hotspot/src/share/vm/adlc/main.cpp | 86 +- hotspot/src/share/vm/asm/assembler.cpp | 19 +- hotspot/src/share/vm/asm/assembler.hpp | 37 +- hotspot/src/share/vm/asm/assembler.inline.hpp | 12 +- hotspot/src/share/vm/asm/codeBuffer.cpp | 6 +- hotspot/src/share/vm/asm/codeBuffer.hpp | 20 +- hotspot/src/share/vm/asm/register.cpp | 6 +- hotspot/src/share/vm/asm/register.hpp | 9 +- hotspot/src/share/vm/c1/c1_CFGPrinter.cpp | 11 +- hotspot/src/share/vm/c1/c1_CFGPrinter.hpp | 10 +- hotspot/src/share/vm/c1/c1_Canonicalizer.cpp | 8 +- hotspot/src/share/vm/c1/c1_Canonicalizer.hpp | 7 + hotspot/src/share/vm/c1/c1_CodeStubs.hpp | 12 + hotspot/src/share/vm/c1/c1_Compilation.cpp | 12 +- hotspot/src/share/vm/c1/c1_Compilation.hpp | 9 + hotspot/src/share/vm/c1/c1_Compiler.cpp | 23 +- hotspot/src/share/vm/c1/c1_Compiler.hpp | 9 +- hotspot/src/share/vm/c1/c1_Defs.cpp | 7 +- hotspot/src/share/vm/c1/c1_Defs.hpp | 26 +- hotspot/src/share/vm/c1/c1_FpuStackSim.hpp | 18 +- hotspot/src/share/vm/c1/c1_FrameMap.cpp | 17 +- hotspot/src/share/vm/c1/c1_FrameMap.hpp | 22 +- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 13 +- hotspot/src/share/vm/c1/c1_GraphBuilder.hpp | 12 + hotspot/src/share/vm/c1/c1_IR.cpp | 10 +- hotspot/src/share/vm/c1/c1_IR.hpp | 11 + hotspot/src/share/vm/c1/c1_Instruction.cpp | 9 +- hotspot/src/share/vm/c1/c1_Instruction.hpp | 10 + .../src/share/vm/c1/c1_InstructionPrinter.cpp | 8 +- .../src/share/vm/c1/c1_InstructionPrinter.hpp | 9 + hotspot/src/share/vm/c1/c1_LIR.cpp | 9 +- hotspot/src/share/vm/c1/c1_LIR.hpp | 7 + hotspot/src/share/vm/c1/c1_LIRAssembler.cpp | 22 +- hotspot/src/share/vm/c1/c1_LIRAssembler.hpp | 18 +- hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 18 +- hotspot/src/share/vm/c1/c1_LIRGenerator.hpp | 10 + hotspot/src/share/vm/c1/c1_LinearScan.cpp | 21 +- hotspot/src/share/vm/c1/c1_LinearScan.hpp | 22 +- hotspot/src/share/vm/c1/c1_MacroAssembler.hpp | 24 +- hotspot/src/share/vm/c1/c1_Optimizer.cpp | 9 +- hotspot/src/share/vm/c1/c1_Optimizer.hpp | 11 +- hotspot/src/share/vm/c1/c1_Runtime1.cpp | 37 +- hotspot/src/share/vm/c1/c1_Runtime1.hpp | 11 + hotspot/src/share/vm/c1/c1_ValueMap.cpp | 9 +- hotspot/src/share/vm/c1/c1_ValueMap.hpp | 9 + hotspot/src/share/vm/c1/c1_ValueSet.cpp | 7 +- hotspot/src/share/vm/c1/c1_ValueSet.hpp | 11 +- hotspot/src/share/vm/c1/c1_ValueStack.cpp | 8 +- hotspot/src/share/vm/c1/c1_ValueStack.hpp | 9 +- hotspot/src/share/vm/c1/c1_ValueType.cpp | 9 +- hotspot/src/share/vm/c1/c1_ValueType.hpp | 10 +- hotspot/src/share/vm/c1/c1_globals.cpp | 6 +- hotspot/src/share/vm/c1/c1_globals.hpp | 23 +- hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp | 12 +- hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp | 16 +- hotspot/src/share/vm/ci/ciArray.cpp | 8 +- hotspot/src/share/vm/ci/ciArray.hpp | 12 +- hotspot/src/share/vm/ci/ciArrayKlass.cpp | 9 +- hotspot/src/share/vm/ci/ciArrayKlass.hpp | 9 +- hotspot/src/share/vm/ci/ciArrayKlassKlass.hpp | 9 +- hotspot/src/share/vm/ci/ciCPCache.cpp | 6 +- hotspot/src/share/vm/ci/ciCPCache.hpp | 9 + hotspot/src/share/vm/ci/ciCallProfile.hpp | 9 +- hotspot/src/share/vm/ci/ciCallSite.cpp | 7 +- hotspot/src/share/vm/ci/ciCallSite.hpp | 9 +- hotspot/src/share/vm/ci/ciClassList.hpp | 7 +- hotspot/src/share/vm/ci/ciConstant.cpp | 9 +- hotspot/src/share/vm/ci/ciConstant.hpp | 10 +- .../src/share/vm/ci/ciConstantPoolCache.cpp | 9 +- .../src/share/vm/ci/ciConstantPoolCache.hpp | 10 +- hotspot/src/share/vm/ci/ciEnv.cpp | 40 +- hotspot/src/share/vm/ci/ciEnv.hpp | 14 + .../src/share/vm/ci/ciExceptionHandler.cpp | 7 +- .../src/share/vm/ci/ciExceptionHandler.hpp | 10 +- hotspot/src/share/vm/ci/ciField.cpp | 15 +- hotspot/src/share/vm/ci/ciField.hpp | 12 +- hotspot/src/share/vm/ci/ciFlags.cpp | 6 +- hotspot/src/share/vm/ci/ciFlags.hpp | 12 +- hotspot/src/share/vm/ci/ciInstance.cpp | 12 +- hotspot/src/share/vm/ci/ciInstance.hpp | 10 +- hotspot/src/share/vm/ci/ciInstanceKlass.cpp | 12 +- hotspot/src/share/vm/ci/ciInstanceKlass.hpp | 11 + .../src/share/vm/ci/ciInstanceKlassKlass.cpp | 7 +- .../src/share/vm/ci/ciInstanceKlassKlass.hpp | 9 +- hotspot/src/share/vm/ci/ciKlass.cpp | 9 +- hotspot/src/share/vm/ci/ciKlass.hpp | 10 +- hotspot/src/share/vm/ci/ciKlassKlass.cpp | 7 +- hotspot/src/share/vm/ci/ciKlassKlass.hpp | 10 +- hotspot/src/share/vm/ci/ciMethod.cpp | 37 +- hotspot/src/share/vm/ci/ciMethod.hpp | 13 + hotspot/src/share/vm/ci/ciMethodBlocks.cpp | 9 +- hotspot/src/share/vm/ci/ciMethodBlocks.hpp | 11 +- hotspot/src/share/vm/ci/ciMethodData.cpp | 9 +- hotspot/src/share/vm/ci/ciMethodData.hpp | 12 + hotspot/src/share/vm/ci/ciMethodHandle.cpp | 11 +- hotspot/src/share/vm/ci/ciMethodHandle.hpp | 9 +- hotspot/src/share/vm/ci/ciMethodKlass.cpp | 7 +- hotspot/src/share/vm/ci/ciMethodKlass.hpp | 10 +- hotspot/src/share/vm/ci/ciNullObject.cpp | 6 +- hotspot/src/share/vm/ci/ciNullObject.hpp | 11 +- hotspot/src/share/vm/ci/ciObjArray.cpp | 9 +- hotspot/src/share/vm/ci/ciObjArray.hpp | 11 +- hotspot/src/share/vm/ci/ciObjArrayKlass.cpp | 11 +- hotspot/src/share/vm/ci/ciObjArrayKlass.hpp | 9 +- .../src/share/vm/ci/ciObjArrayKlassKlass.cpp | 7 +- .../src/share/vm/ci/ciObjArrayKlassKlass.hpp | 9 +- hotspot/src/share/vm/ci/ciObject.cpp | 9 +- hotspot/src/share/vm/ci/ciObject.hpp | 12 +- hotspot/src/share/vm/ci/ciObjectFactory.cpp | 31 +- hotspot/src/share/vm/ci/ciObjectFactory.hpp | 11 +- hotspot/src/share/vm/ci/ciSignature.cpp | 10 +- hotspot/src/share/vm/ci/ciSignature.hpp | 12 +- hotspot/src/share/vm/ci/ciStreams.cpp | 9 +- hotspot/src/share/vm/ci/ciStreams.hpp | 11 + hotspot/src/share/vm/ci/ciSymbol.cpp | 8 +- hotspot/src/share/vm/ci/ciSymbol.hpp | 12 +- hotspot/src/share/vm/ci/ciSymbolKlass.cpp | 7 +- hotspot/src/share/vm/ci/ciSymbolKlass.hpp | 10 +- hotspot/src/share/vm/ci/ciType.cpp | 9 +- hotspot/src/share/vm/ci/ciType.hpp | 10 +- hotspot/src/share/vm/ci/ciTypeArray.cpp | 7 +- hotspot/src/share/vm/ci/ciTypeArray.hpp | 11 +- hotspot/src/share/vm/ci/ciTypeArrayKlass.cpp | 7 +- hotspot/src/share/vm/ci/ciTypeArrayKlass.hpp | 9 +- .../src/share/vm/ci/ciTypeArrayKlassKlass.cpp | 7 +- .../src/share/vm/ci/ciTypeArrayKlassKlass.hpp | 9 +- hotspot/src/share/vm/ci/ciTypeFlow.cpp | 17 +- hotspot/src/share/vm/ci/ciTypeFlow.hpp | 18 +- hotspot/src/share/vm/ci/ciUtilities.cpp | 6 +- hotspot/src/share/vm/ci/ciUtilities.hpp | 10 +- hotspot/src/share/vm/ci/compilerInterface.hpp | 36 +- .../src/share/vm/classfile/classFileError.cpp | 8 +- .../share/vm/classfile/classFileParser.cpp | 30 +- .../share/vm/classfile/classFileParser.hpp | 12 + .../share/vm/classfile/classFileStream.cpp | 7 +- .../share/vm/classfile/classFileStream.hpp | 18 +- .../src/share/vm/classfile/classLoader.cpp | 52 +- .../src/share/vm/classfile/classLoader.hpp | 10 +- hotspot/src/share/vm/classfile/dictionary.cpp | 11 +- hotspot/src/share/vm/classfile/dictionary.hpp | 12 +- .../src/share/vm/classfile/javaAssertions.cpp | 13 +- .../src/share/vm/classfile/javaAssertions.hpp | 12 +- .../src/share/vm/classfile/javaClasses.cpp | 37 +- .../src/share/vm/classfile/javaClasses.hpp | 13 +- .../share/vm/classfile/loaderConstraints.cpp | 11 +- .../share/vm/classfile/loaderConstraints.hpp | 11 +- .../src/share/vm/classfile/placeholders.cpp | 10 +- .../src/share/vm/classfile/placeholders.hpp | 9 +- .../share/vm/classfile/resolutionErrors.cpp | 11 +- .../share/vm/classfile/resolutionErrors.hpp | 10 +- .../src/share/vm/classfile/stackMapFrame.cpp | 12 +- .../src/share/vm/classfile/stackMapFrame.hpp | 14 +- .../src/share/vm/classfile/stackMapTable.cpp | 9 +- .../src/share/vm/classfile/stackMapTable.hpp | 22 +- .../vm/classfile/stackMapTableFormat.hpp | 7 + .../src/share/vm/classfile/symbolTable.cpp | 16 +- .../src/share/vm/classfile/symbolTable.hpp | 11 +- .../share/vm/classfile/systemDictionary.cpp | 33 +- .../share/vm/classfile/systemDictionary.hpp | 13 + .../share/vm/classfile/verificationType.cpp | 7 +- .../share/vm/classfile/verificationType.hpp | 15 +- hotspot/src/share/vm/classfile/verifier.cpp | 32 +- hotspot/src/share/vm/classfile/verifier.hpp | 14 +- hotspot/src/share/vm/classfile/vmSymbols.cpp | 10 +- hotspot/src/share/vm/classfile/vmSymbols.hpp | 7 + hotspot/src/share/vm/code/codeBlob.cpp | 31 +- hotspot/src/share/vm/code/codeBlob.hpp | 10 + hotspot/src/share/vm/code/codeCache.cpp | 22 +- hotspot/src/share/vm/code/codeCache.hpp | 11 + hotspot/src/share/vm/code/compiledIC.cpp | 19 +- hotspot/src/share/vm/code/compiledIC.hpp | 21 +- .../src/share/vm/code/compressedStream.cpp | 7 +- .../src/share/vm/code/compressedStream.hpp | 9 +- hotspot/src/share/vm/code/debugInfo.cpp | 9 +- hotspot/src/share/vm/code/debugInfo.hpp | 14 +- hotspot/src/share/vm/code/debugInfoRec.cpp | 8 +- hotspot/src/share/vm/code/debugInfoRec.hpp | 17 +- hotspot/src/share/vm/code/dependencies.cpp | 14 +- hotspot/src/share/vm/code/dependencies.hpp | 12 +- .../share/vm/code/exceptionHandlerTable.cpp | 6 +- .../share/vm/code/exceptionHandlerTable.hpp | 10 +- hotspot/src/share/vm/code/icBuffer.cpp | 28 +- hotspot/src/share/vm/code/icBuffer.hpp | 11 +- hotspot/src/share/vm/code/location.cpp | 7 +- hotspot/src/share/vm/code/location.hpp | 11 +- hotspot/src/share/vm/code/nmethod.cpp | 22 +- hotspot/src/share/vm/code/nmethod.hpp | 8 + hotspot/src/share/vm/code/oopRecorder.cpp | 6 +- hotspot/src/share/vm/code/oopRecorder.hpp | 8 + hotspot/src/share/vm/code/pcDesc.cpp | 8 +- hotspot/src/share/vm/code/pcDesc.hpp | 9 +- hotspot/src/share/vm/code/relocInfo.cpp | 21 +- hotspot/src/share/vm/code/relocInfo.hpp | 19 +- hotspot/src/share/vm/code/scopeDesc.cpp | 9 +- hotspot/src/share/vm/code/scopeDesc.hpp | 12 +- hotspot/src/share/vm/code/stubs.cpp | 8 +- hotspot/src/share/vm/code/stubs.hpp | 18 +- hotspot/src/share/vm/code/vmreg.cpp | 7 +- hotspot/src/share/vm/code/vmreg.hpp | 46 +- hotspot/src/share/vm/code/vtableStubs.cpp | 18 +- hotspot/src/share/vm/code/vtableStubs.hpp | 9 +- .../share/vm/compiler/abstractCompiler.cpp | 7 +- .../share/vm/compiler/abstractCompiler.hpp | 7 + .../src/share/vm/compiler/compileBroker.cpp | 33 +- .../src/share/vm/compiler/compileBroker.hpp | 9 + hotspot/src/share/vm/compiler/compileLog.cpp | 11 +- hotspot/src/share/vm/compiler/compileLog.hpp | 9 +- .../src/share/vm/compiler/compilerOracle.cpp | 15 +- .../src/share/vm/compiler/compilerOracle.hpp | 10 +- .../src/share/vm/compiler/disassembler.cpp | 25 +- .../src/share/vm/compiler/disassembler.hpp | 29 +- .../src/share/vm/compiler/methodLiveness.cpp | 15 +- .../src/share/vm/compiler/methodLiveness.hpp | 10 +- hotspot/src/share/vm/compiler/oopMap.cpp | 18 +- hotspot/src/share/vm/compiler/oopMap.hpp | 12 +- .../binaryTreeDictionary.cpp | 11 +- .../binaryTreeDictionary.hpp | 10 +- .../cmsAdaptiveSizePolicy.cpp | 19 +- .../cmsAdaptiveSizePolicy.hpp | 10 +- .../cmsCollectorPolicy.cpp | 30 +- .../cmsCollectorPolicy.hpp | 7 + .../cmsGCAdaptivePolicyCounters.cpp | 7 +- .../cmsGCAdaptivePolicyCounters.hpp | 12 +- .../concurrentMarkSweep/cmsLockVerifier.cpp | 8 +- .../concurrentMarkSweep/cmsLockVerifier.hpp | 9 +- .../concurrentMarkSweep/cmsOopClosures.hpp | 9 +- .../cmsOopClosures.inline.hpp | 10 +- .../concurrentMarkSweep/cmsPermGen.cpp | 15 +- .../concurrentMarkSweep/cmsPermGen.hpp | 10 +- .../compactibleFreeListSpace.cpp | 21 +- .../compactibleFreeListSpace.hpp | 11 + .../concurrentMarkSweepGeneration.cpp | 35 +- .../concurrentMarkSweepGeneration.hpp | 18 + .../concurrentMarkSweepGeneration.inline.hpp | 14 +- .../concurrentMarkSweepThread.cpp | 16 +- .../concurrentMarkSweepThread.hpp | 17 + .../freeBlockDictionary.cpp | 15 +- .../freeBlockDictionary.hpp | 15 +- .../concurrentMarkSweep/freeChunk.cpp | 7 +- .../concurrentMarkSweep/freeChunk.hpp | 13 + .../concurrentMarkSweep/freeList.cpp | 11 +- .../concurrentMarkSweep/freeList.hpp | 9 +- .../concurrentMarkSweep/promotionInfo.cpp | 7 +- .../concurrentMarkSweep/promotionInfo.hpp | 8 + .../concurrentMarkSweep/vmCMSOperations.cpp | 12 +- .../concurrentMarkSweep/vmCMSOperations.hpp | 12 +- .../concurrentMarkSweep/vmStructs_cms.hpp | 7 +- .../g1/bufferingOopClosure.hpp | 12 +- .../g1/collectionSetChooser.cpp | 9 +- .../g1/collectionSetChooser.hpp | 10 +- .../g1/concurrentG1Refine.cpp | 12 +- .../g1/concurrentG1Refine.hpp | 10 + .../g1/concurrentG1RefineThread.cpp | 10 +- .../g1/concurrentG1RefineThread.hpp | 9 +- .../gc_implementation/g1/concurrentMark.cpp | 17 +- .../gc_implementation/g1/concurrentMark.hpp | 8 + .../g1/concurrentMarkThread.cpp | 12 +- .../g1/concurrentMarkThread.hpp | 9 +- .../g1/concurrentMarkThread.inline.hpp | 10 +- .../g1/concurrentZFThread.cpp | 11 +- .../g1/concurrentZFThread.hpp | 9 +- .../gc_implementation/g1/dirtyCardQueue.cpp | 19 +- .../gc_implementation/g1/dirtyCardQueue.hpp | 8 + .../g1/g1BlockOffsetTable.cpp | 9 +- .../g1/g1BlockOffsetTable.hpp | 11 +- .../g1/g1BlockOffsetTable.inline.hpp | 10 +- .../gc_implementation/g1/g1CollectedHeap.cpp | 25 +- .../gc_implementation/g1/g1CollectedHeap.hpp | 13 + .../g1/g1CollectedHeap.inline.hpp | 12 +- .../g1/g1CollectorPolicy.cpp | 14 +- .../g1/g1CollectorPolicy.hpp | 9 + .../vm/gc_implementation/g1/g1MMUTracker.cpp | 8 +- .../vm/gc_implementation/g1/g1MMUTracker.hpp | 10 +- .../vm/gc_implementation/g1/g1MarkSweep.cpp | 26 +- .../vm/gc_implementation/g1/g1MarkSweep.hpp | 17 +- .../vm/gc_implementation/g1/g1OopClosures.hpp | 7 +- .../g1/g1OopClosures.inline.hpp | 10 + .../vm/gc_implementation/g1/g1RemSet.cpp | 15 +- .../vm/gc_implementation/g1/g1RemSet.hpp | 5 + .../gc_implementation/g1/g1RemSet.inline.hpp | 9 + .../g1/g1SATBCardTableModRefBS.cpp | 19 +- .../g1/g1SATBCardTableModRefBS.hpp | 11 +- .../vm/gc_implementation/g1/g1_globals.cpp | 6 +- .../vm/gc_implementation/g1/g1_globals.hpp | 7 + .../g1/g1_specialized_oop_closures.hpp | 7 +- .../vm/gc_implementation/g1/heapRegion.cpp | 13 +- .../vm/gc_implementation/g1/heapRegion.hpp | 13 + .../g1/heapRegion.inline.hpp | 7 +- .../gc_implementation/g1/heapRegionRemSet.cpp | 14 +- .../gc_implementation/g1/heapRegionRemSet.hpp | 9 +- .../vm/gc_implementation/g1/heapRegionSeq.cpp | 8 +- .../vm/gc_implementation/g1/heapRegionSeq.hpp | 10 +- .../g1/heapRegionSeq.inline.hpp | 9 +- .../vm/gc_implementation/g1/ptrQueue.cpp | 19 +- .../vm/gc_implementation/g1/ptrQueue.hpp | 10 +- .../vm/gc_implementation/g1/satbQueue.cpp | 10 +- .../vm/gc_implementation/g1/satbQueue.hpp | 9 +- .../vm/gc_implementation/g1/sparsePRT.cpp | 12 +- .../vm/gc_implementation/g1/sparsePRT.hpp | 14 +- .../vm/gc_implementation/g1/survRateGroup.cpp | 8 +- .../vm/gc_implementation/g1/survRateGroup.hpp | 7 + .../gc_implementation/g1/vm_operations_g1.cpp | 10 +- .../gc_implementation/g1/vm_operations_g1.hpp | 9 +- .../includeDB_gc_concurrentMarkSweep | 258 - .../vm/gc_implementation/includeDB_gc_g1 | 379 -- .../vm/gc_implementation/includeDB_gc_parNew | 92 - .../includeDB_gc_parallelScavenge | 467 -- .../vm/gc_implementation/includeDB_gc_serial | 127 - .../vm/gc_implementation/includeDB_gc_shared | 90 - .../parNew/asParNewGeneration.cpp | 15 +- .../parNew/asParNewGeneration.hpp | 10 +- .../parNew/parCardTableModRefBS.cpp | 12 +- .../parNew/parGCAllocBuffer.cpp | 9 +- .../parNew/parGCAllocBuffer.hpp | 11 +- .../parNew/parNewGeneration.cpp | 29 +- .../parNew/parNewGeneration.hpp | 9 + .../parNew/parOopClosures.hpp | 7 + .../parNew/parOopClosures.inline.hpp | 11 +- .../parNew/vmStructs_parNew.hpp | 7 +- .../parallelScavenge/adjoiningGenerations.cpp | 9 +- .../parallelScavenge/adjoiningGenerations.hpp | 12 +- .../adjoiningVirtualSpaces.cpp | 7 +- .../adjoiningVirtualSpaces.hpp | 9 +- .../parallelScavenge/asPSOldGen.cpp | 12 +- .../parallelScavenge/asPSOldGen.hpp | 14 +- .../parallelScavenge/asPSYoungGen.cpp | 14 +- .../parallelScavenge/asPSYoungGen.hpp | 15 +- .../parallelScavenge/cardTableExtension.cpp | 10 +- .../parallelScavenge/cardTableExtension.hpp | 7 + .../parallelScavenge/gcTaskManager.cpp | 11 +- .../parallelScavenge/gcTaskManager.hpp | 10 +- .../parallelScavenge/gcTaskThread.cpp | 14 +- .../parallelScavenge/gcTaskThread.hpp | 9 +- .../parallelScavenge/generationSizer.hpp | 9 +- .../parallelScavenge/objectStartArray.cpp | 10 +- .../parallelScavenge/objectStartArray.hpp | 12 +- .../parallelScavenge/parMarkBitMap.cpp | 20 +- .../parallelScavenge/parMarkBitMap.hpp | 10 +- .../parallelScavenge/parMarkBitMap.inline.hpp | 7 +- .../parallelScavenge/parallelScavengeHeap.cpp | 21 +- .../parallelScavenge/parallelScavengeHeap.hpp | 14 + .../parallelScavengeHeap.inline.hpp | 12 +- .../parallelScavenge/pcTasks.cpp | 20 +- .../parallelScavenge/pcTasks.hpp | 9 + .../parallelScavenge/psAdaptiveSizePolicy.cpp | 12 +- .../parallelScavenge/psAdaptiveSizePolicy.hpp | 10 + .../parallelScavenge/psCompactionManager.cpp | 16 +- .../parallelScavenge/psCompactionManager.hpp | 9 + .../psCompactionManager.inline.hpp | 8 + .../psGCAdaptivePolicyCounters.cpp | 6 +- .../psGCAdaptivePolicyCounters.hpp | 9 + .../parallelScavenge/psGenerationCounters.cpp | 7 +- .../parallelScavenge/psGenerationCounters.hpp | 11 +- .../parallelScavenge/psMarkSweep.cpp | 30 +- .../parallelScavenge/psMarkSweep.hpp | 11 +- .../parallelScavenge/psMarkSweepDecorator.cpp | 14 +- .../parallelScavenge/psMarkSweepDecorator.hpp | 9 +- .../parallelScavenge/psOldGen.cpp | 14 +- .../parallelScavenge/psOldGen.hpp | 14 +- .../parallelScavenge/psParallelCompact.cpp | 35 +- .../parallelScavenge/psParallelCompact.hpp | 14 + .../parallelScavenge/psPermGen.cpp | 12 +- .../parallelScavenge/psPermGen.hpp | 9 +- .../parallelScavenge/psPromotionLAB.cpp | 9 +- .../parallelScavenge/psPromotionLAB.hpp | 10 +- .../parallelScavenge/psPromotionManager.cpp | 11 +- .../parallelScavenge/psPromotionManager.hpp | 9 + .../psPromotionManager.inline.hpp | 8 + .../parallelScavenge/psScavenge.cpp | 30 +- .../parallelScavenge/psScavenge.hpp | 14 +- .../parallelScavenge/psScavenge.inline.hpp | 12 +- .../parallelScavenge/psTasks.cpp | 21 +- .../parallelScavenge/psTasks.hpp | 10 +- .../parallelScavenge/psVirtualspace.cpp | 17 +- .../parallelScavenge/psVirtualspace.hpp | 9 +- .../parallelScavenge/psYoungGen.cpp | 14 +- .../parallelScavenge/psYoungGen.hpp | 13 +- .../parallelScavenge/vmPSOperations.cpp | 12 +- .../parallelScavenge/vmPSOperations.hpp | 11 +- .../parallelScavenge/vmStructs_parallelgc.hpp | 7 +- .../shared/adaptiveSizePolicy.cpp | 8 +- .../shared/adaptiveSizePolicy.hpp | 11 + .../vm/gc_implementation/shared/ageTable.cpp | 13 +- .../vm/gc_implementation/shared/ageTable.hpp | 11 +- .../shared/allocationStats.cpp | 9 +- .../shared/allocationStats.hpp | 13 +- .../shared/cSpaceCounters.cpp | 7 +- .../shared/cSpaceCounters.hpp | 11 +- .../shared/collectorCounters.cpp | 7 +- .../shared/collectorCounters.hpp | 9 +- .../shared/concurrentGCThread.cpp | 15 +- .../shared/concurrentGCThread.hpp | 11 +- .../shared/gSpaceCounters.cpp | 10 +- .../shared/gSpaceCounters.hpp | 13 +- .../shared/gcAdaptivePolicyCounters.cpp | 7 +- .../shared/gcAdaptivePolicyCounters.hpp | 12 +- .../shared/gcPolicyCounters.cpp | 7 +- .../shared/gcPolicyCounters.hpp | 9 +- .../vm/gc_implementation/shared/gcStats.cpp | 7 +- .../vm/gc_implementation/shared/gcStats.hpp | 9 +- .../vm/gc_implementation/shared/gcUtil.cpp | 6 +- .../vm/gc_implementation/shared/gcUtil.hpp | 13 +- .../shared/generationCounters.cpp | 7 +- .../shared/generationCounters.hpp | 10 +- .../shared/immutableSpace.cpp | 10 +- .../shared/immutableSpace.hpp | 9 +- .../shared/isGCActiveMark.hpp | 11 +- .../vm/gc_implementation/shared/liveRange.hpp | 10 +- .../vm/gc_implementation/shared/markSweep.cpp | 11 +- .../vm/gc_implementation/shared/markSweep.hpp | 16 +- .../shared/markSweep.inline.hpp | 14 +- .../shared/mutableNUMASpace.cpp | 18 +- .../shared/mutableNUMASpace.hpp | 12 +- .../gc_implementation/shared/mutableSpace.cpp | 12 +- .../gc_implementation/shared/mutableSpace.hpp | 11 +- .../shared/spaceCounters.cpp | 9 +- .../shared/spaceCounters.hpp | 14 +- .../shared/spaceDecorator.cpp | 8 +- .../shared/spaceDecorator.hpp | 11 +- .../shared/vmGCOperations.cpp | 22 +- .../shared/vmGCOperations.hpp | 11 + .../share/vm/gc_interface/collectedHeap.cpp | 19 +- .../share/vm/gc_interface/collectedHeap.hpp | 12 + .../vm/gc_interface/collectedHeap.inline.hpp | 26 +- hotspot/src/share/vm/gc_interface/gcCause.cpp | 6 +- hotspot/src/share/vm/gc_interface/gcCause.hpp | 9 +- hotspot/src/share/vm/includeDB_compiler1 | 454 -- hotspot/src/share/vm/includeDB_compiler2 | 1164 ---- hotspot/src/share/vm/includeDB_core | 4788 ----------------- hotspot/src/share/vm/includeDB_features | 333 -- hotspot/src/share/vm/includeDB_gc | 57 - hotspot/src/share/vm/includeDB_gc_parallel | 184 - hotspot/src/share/vm/includeDB_jvmti | 266 - hotspot/src/share/vm/includeDB_shark | 371 -- hotspot/src/share/vm/includeDB_zero | 68 - .../vm/interpreter/abstractInterpreter.hpp | 31 + hotspot/src/share/vm/interpreter/bytecode.cpp | 11 +- hotspot/src/share/vm/interpreter/bytecode.hpp | 18 + .../vm/interpreter/bytecodeHistogram.cpp | 9 +- .../vm/interpreter/bytecodeHistogram.hpp | 10 +- .../vm/interpreter/bytecodeInterpreter.cpp | 40 +- .../vm/interpreter/bytecodeInterpreter.hpp | 33 +- .../bytecodeInterpreter.inline.hpp | 21 +- .../bytecodeInterpreterWithChecks.xsl | 4 +- .../share/vm/interpreter/bytecodeStream.cpp | 5 +- .../share/vm/interpreter/bytecodeStream.hpp | 18 + .../share/vm/interpreter/bytecodeTracer.cpp | 13 +- .../share/vm/interpreter/bytecodeTracer.hpp | 9 +- .../src/share/vm/interpreter/bytecodes.cpp | 15 +- .../src/share/vm/interpreter/bytecodes.hpp | 19 +- .../share/vm/interpreter/cppInterpreter.cpp | 9 +- .../share/vm/interpreter/cppInterpreter.hpp | 20 +- .../interpreter/cppInterpreterGenerator.hpp | 18 +- .../src/share/vm/interpreter/interpreter.cpp | 21 +- .../src/share/vm/interpreter/interpreter.hpp | 25 +- .../vm/interpreter/interpreterGenerator.hpp | 23 +- .../vm/interpreter/interpreterRuntime.cpp | 48 +- .../vm/interpreter/interpreterRuntime.hpp | 33 +- .../vm/interpreter/invocationCounter.cpp | 6 +- .../vm/interpreter/invocationCounter.hpp | 9 + .../src/share/vm/interpreter/linkResolver.cpp | 32 +- .../src/share/vm/interpreter/linkResolver.hpp | 10 +- .../src/share/vm/interpreter/oopMapCache.cpp | 12 +- .../src/share/vm/interpreter/oopMapCache.hpp | 9 +- hotspot/src/share/vm/interpreter/rewriter.cpp | 13 +- hotspot/src/share/vm/interpreter/rewriter.hpp | 9 + .../vm/interpreter/templateInterpreter.cpp | 9 +- .../vm/interpreter/templateInterpreter.hpp | 21 +- .../templateInterpreterGenerator.hpp | 18 +- .../share/vm/interpreter/templateTable.cpp | 6 +- .../share/vm/interpreter/templateTable.hpp | 35 +- hotspot/src/share/vm/libadt/dict.cpp | 11 +- hotspot/src/share/vm/libadt/dict.hpp | 11 +- hotspot/src/share/vm/libadt/port.cpp | 8 +- hotspot/src/share/vm/libadt/port.hpp | 11 +- hotspot/src/share/vm/libadt/set.cpp | 9 +- hotspot/src/share/vm/libadt/set.hpp | 16 +- hotspot/src/share/vm/libadt/vectset.cpp | 9 +- hotspot/src/share/vm/libadt/vectset.hpp | 11 +- hotspot/src/share/vm/memory/allocation.cpp | 21 +- hotspot/src/share/vm/memory/allocation.hpp | 16 +- .../src/share/vm/memory/allocation.inline.hpp | 9 +- hotspot/src/share/vm/memory/barrierSet.cpp | 8 +- hotspot/src/share/vm/memory/barrierSet.hpp | 10 +- .../src/share/vm/memory/barrierSet.inline.hpp | 10 +- .../src/share/vm/memory/blockOffsetTable.cpp | 10 +- .../src/share/vm/memory/blockOffsetTable.hpp | 9 + .../vm/memory/blockOffsetTable.inline.hpp | 12 + .../src/share/vm/memory/cardTableModRefBS.cpp | 19 +- .../src/share/vm/memory/cardTableModRefBS.hpp | 9 + hotspot/src/share/vm/memory/cardTableRS.cpp | 17 +- hotspot/src/share/vm/memory/cardTableRS.hpp | 11 +- hotspot/src/share/vm/memory/classify.cpp | 7 +- hotspot/src/share/vm/memory/classify.hpp | 9 +- .../src/share/vm/memory/collectorPolicy.cpp | 31 +- .../src/share/vm/memory/collectorPolicy.hpp | 9 + .../src/share/vm/memory/compactPermGen.hpp | 10 +- .../share/vm/memory/compactingPermGenGen.cpp | 17 +- .../share/vm/memory/compactingPermGenGen.hpp | 10 +- .../src/share/vm/memory/defNewGeneration.cpp | 28 +- .../src/share/vm/memory/defNewGeneration.hpp | 13 +- .../vm/memory/defNewGeneration.inline.hpp | 11 +- hotspot/src/share/vm/memory/dump.cpp | 21 +- hotspot/src/share/vm/memory/filemap.cpp | 22 +- hotspot/src/share/vm/memory/filemap.hpp | 10 +- hotspot/src/share/vm/memory/gcLocker.cpp | 8 +- hotspot/src/share/vm/memory/gcLocker.hpp | 24 +- .../src/share/vm/memory/gcLocker.inline.hpp | 9 +- .../src/share/vm/memory/genCollectedHeap.cpp | 37 +- .../src/share/vm/memory/genCollectedHeap.hpp | 10 + hotspot/src/share/vm/memory/genMarkSweep.cpp | 35 +- hotspot/src/share/vm/memory/genMarkSweep.hpp | 9 +- .../src/share/vm/memory/genOopClosures.hpp | 10 +- .../share/vm/memory/genOopClosures.inline.hpp | 16 +- hotspot/src/share/vm/memory/genRemSet.cpp | 9 +- hotspot/src/share/vm/memory/genRemSet.hpp | 9 +- .../src/share/vm/memory/genRemSet.inline.hpp | 7 +- hotspot/src/share/vm/memory/generation.cpp | 22 +- hotspot/src/share/vm/memory/generation.hpp | 17 +- .../src/share/vm/memory/generation.inline.hpp | 11 +- .../src/share/vm/memory/generationSpec.cpp | 17 +- .../src/share/vm/memory/generationSpec.hpp | 10 +- hotspot/src/share/vm/memory/heap.cpp | 8 +- hotspot/src/share/vm/memory/heap.hpp | 8 + .../src/share/vm/memory/heapInspection.cpp | 15 +- .../src/share/vm/memory/heapInspection.hpp | 10 +- hotspot/src/share/vm/memory/iterator.cpp | 5 +- hotspot/src/share/vm/memory/iterator.hpp | 12 +- hotspot/src/share/vm/memory/memRegion.cpp | 9 +- hotspot/src/share/vm/memory/memRegion.hpp | 11 +- .../src/share/vm/memory/modRefBarrierSet.hpp | 9 +- hotspot/src/share/vm/memory/oopFactory.cpp | 26 +- hotspot/src/share/vm/memory/oopFactory.hpp | 16 +- hotspot/src/share/vm/memory/permGen.cpp | 17 +- hotspot/src/share/vm/memory/permGen.hpp | 12 + .../src/share/vm/memory/referencePolicy.cpp | 10 +- .../src/share/vm/memory/referencePolicy.hpp | 7 +- .../share/vm/memory/referenceProcessor.cpp | 12 +- .../share/vm/memory/referenceProcessor.hpp | 8 + hotspot/src/share/vm/memory/resourceArea.cpp | 17 +- hotspot/src/share/vm/memory/resourceArea.hpp | 18 +- hotspot/src/share/vm/memory/restore.cpp | 10 +- hotspot/src/share/vm/memory/serialize.cpp | 14 +- hotspot/src/share/vm/memory/sharedHeap.cpp | 14 +- hotspot/src/share/vm/memory/sharedHeap.hpp | 9 + hotspot/src/share/vm/memory/space.cpp | 22 +- hotspot/src/share/vm/memory/space.hpp | 27 +- hotspot/src/share/vm/memory/space.inline.hpp | 12 +- .../vm/memory/specialized_oop_closures.cpp | 7 +- .../vm/memory/specialized_oop_closures.hpp | 12 +- .../src/share/vm/memory/tenuredGeneration.cpp | 15 +- .../src/share/vm/memory/tenuredGeneration.hpp | 12 +- .../vm/memory/threadLocalAllocBuffer.cpp | 22 +- .../vm/memory/threadLocalAllocBuffer.hpp | 11 +- .../memory/threadLocalAllocBuffer.inline.hpp | 12 +- hotspot/src/share/vm/memory/universe.cpp | 78 +- hotspot/src/share/vm/memory/universe.hpp | 8 + .../src/share/vm/memory/universe.inline.hpp | 9 +- hotspot/src/share/vm/memory/watermark.hpp | 10 +- hotspot/src/share/vm/oops/arrayKlass.cpp | 18 +- hotspot/src/share/vm/oops/arrayKlass.hpp | 12 +- hotspot/src/share/vm/oops/arrayKlassKlass.cpp | 10 +- hotspot/src/share/vm/oops/arrayKlassKlass.hpp | 10 +- hotspot/src/share/vm/oops/arrayOop.cpp | 9 +- hotspot/src/share/vm/oops/arrayOop.hpp | 10 +- .../share/vm/oops/compiledICHolderKlass.cpp | 18 +- .../share/vm/oops/compiledICHolderKlass.hpp | 11 +- .../src/share/vm/oops/compiledICHolderOop.cpp | 6 +- .../src/share/vm/oops/compiledICHolderOop.hpp | 9 +- .../src/share/vm/oops/constMethodKlass.cpp | 14 +- .../src/share/vm/oops/constMethodKlass.hpp | 11 +- hotspot/src/share/vm/oops/constMethodOop.cpp | 7 +- hotspot/src/share/vm/oops/constMethodOop.hpp | 10 +- .../src/share/vm/oops/constantPoolKlass.cpp | 31 +- .../src/share/vm/oops/constantPoolKlass.hpp | 10 +- hotspot/src/share/vm/oops/constantPoolOop.cpp | 18 +- hotspot/src/share/vm/oops/constantPoolOop.hpp | 19 + hotspot/src/share/vm/oops/cpCacheKlass.cpp | 22 +- hotspot/src/share/vm/oops/cpCacheKlass.hpp | 11 +- hotspot/src/share/vm/oops/cpCacheOop.cpp | 12 +- hotspot/src/share/vm/oops/cpCacheOop.hpp | 10 + hotspot/src/share/vm/oops/generateOopMap.cpp | 13 +- hotspot/src/share/vm/oops/generateOopMap.hpp | 14 +- hotspot/src/share/vm/oops/instanceKlass.cpp | 52 +- hotspot/src/share/vm/oops/instanceKlass.hpp | 16 + .../src/share/vm/oops/instanceKlassKlass.cpp | 30 +- .../src/share/vm/oops/instanceKlassKlass.hpp | 9 +- hotspot/src/share/vm/oops/instanceOop.cpp | 6 +- hotspot/src/share/vm/oops/instanceOop.hpp | 9 +- .../src/share/vm/oops/instanceRefKlass.cpp | 25 +- .../src/share/vm/oops/instanceRefKlass.hpp | 9 +- hotspot/src/share/vm/oops/klass.cpp | 16 +- hotspot/src/share/vm/oops/klass.hpp | 22 +- hotspot/src/share/vm/oops/klass.inline.hpp | 10 +- hotspot/src/share/vm/oops/klassKlass.cpp | 26 +- hotspot/src/share/vm/oops/klassKlass.hpp | 11 +- hotspot/src/share/vm/oops/klassOop.cpp | 7 +- hotspot/src/share/vm/oops/klassOop.hpp | 9 +- hotspot/src/share/vm/oops/klassPS.hpp | 9 +- hotspot/src/share/vm/oops/klassVtable.cpp | 21 +- hotspot/src/share/vm/oops/klassVtable.hpp | 12 +- hotspot/src/share/vm/oops/markOop.cpp | 15 +- hotspot/src/share/vm/oops/markOop.hpp | 9 +- hotspot/src/share/vm/oops/markOop.inline.hpp | 12 +- hotspot/src/share/vm/oops/methodDataKlass.cpp | 20 +- hotspot/src/share/vm/oops/methodDataKlass.hpp | 9 +- hotspot/src/share/vm/oops/methodDataOop.cpp | 13 +- hotspot/src/share/vm/oops/methodDataOop.hpp | 11 + hotspot/src/share/vm/oops/methodKlass.cpp | 18 +- hotspot/src/share/vm/oops/methodKlass.hpp | 11 +- hotspot/src/share/vm/oops/methodOop.cpp | 30 +- hotspot/src/share/vm/oops/methodOop.hpp | 17 + hotspot/src/share/vm/oops/objArrayKlass.cpp | 34 +- hotspot/src/share/vm/oops/objArrayKlass.hpp | 11 +- .../share/vm/oops/objArrayKlass.inline.hpp | 11 + .../src/share/vm/oops/objArrayKlassKlass.cpp | 13 +- .../src/share/vm/oops/objArrayKlassKlass.hpp | 10 +- hotspot/src/share/vm/oops/objArrayOop.cpp | 8 +- hotspot/src/share/vm/oops/objArrayOop.hpp | 9 +- hotspot/src/share/vm/oops/oop.cpp | 18 +- hotspot/src/share/vm/oops/oop.hpp | 20 +- hotspot/src/share/vm/oops/oop.inline.hpp | 35 +- hotspot/src/share/vm/oops/oop.inline2.hpp | 13 +- hotspot/src/share/vm/oops/oop.pcgc.inline.hpp | 16 +- hotspot/src/share/vm/oops/oop.psgc.inline.hpp | 13 +- hotspot/src/share/vm/oops/oopsHierarchy.cpp | 19 +- hotspot/src/share/vm/oops/oopsHierarchy.hpp | 10 +- hotspot/src/share/vm/oops/symbolKlass.cpp | 11 +- hotspot/src/share/vm/oops/symbolKlass.hpp | 9 +- hotspot/src/share/vm/oops/symbolOop.cpp | 7 +- hotspot/src/share/vm/oops/symbolOop.hpp | 10 +- hotspot/src/share/vm/oops/typeArrayKlass.cpp | 19 +- hotspot/src/share/vm/oops/typeArrayKlass.hpp | 9 +- .../src/share/vm/oops/typeArrayKlassKlass.cpp | 9 +- .../src/share/vm/oops/typeArrayKlassKlass.hpp | 10 +- hotspot/src/share/vm/oops/typeArrayOop.cpp | 7 +- hotspot/src/share/vm/oops/typeArrayOop.hpp | 28 +- hotspot/src/share/vm/opto/addnode.cpp | 15 +- hotspot/src/share/vm/opto/addnode.hpp | 11 +- hotspot/src/share/vm/opto/adlcVMDeps.hpp | 13 +- hotspot/src/share/vm/opto/block.cpp | 18 +- hotspot/src/share/vm/opto/block.hpp | 11 +- hotspot/src/share/vm/opto/buildOopMap.cpp | 23 +- hotspot/src/share/vm/opto/bytecodeInfo.cpp | 11 +- hotspot/src/share/vm/opto/c2_globals.cpp | 6 +- hotspot/src/share/vm/opto/c2_globals.hpp | 24 +- hotspot/src/share/vm/opto/c2compiler.cpp | 17 +- hotspot/src/share/vm/opto/c2compiler.hpp | 9 +- hotspot/src/share/vm/opto/callGenerator.cpp | 17 +- hotspot/src/share/vm/opto/callGenerator.hpp | 12 +- hotspot/src/share/vm/opto/callnode.cpp | 19 +- hotspot/src/share/vm/opto/callnode.hpp | 14 +- hotspot/src/share/vm/opto/cfgnode.cpp | 20 +- hotspot/src/share/vm/opto/cfgnode.hpp | 12 +- hotspot/src/share/vm/opto/chaitin.cpp | 21 +- hotspot/src/share/vm/opto/chaitin.hpp | 17 +- hotspot/src/share/vm/opto/classes.cpp | 20 +- hotspot/src/share/vm/opto/coalesce.cpp | 15 +- hotspot/src/share/vm/opto/coalesce.hpp | 9 +- hotspot/src/share/vm/opto/compile.cpp | 54 +- hotspot/src/share/vm/opto/compile.hpp | 20 + hotspot/src/share/vm/opto/connode.cpp | 17 +- hotspot/src/share/vm/opto/connode.hpp | 11 +- hotspot/src/share/vm/opto/divnode.cpp | 13 +- hotspot/src/share/vm/opto/divnode.hpp | 12 +- hotspot/src/share/vm/opto/doCall.cpp | 19 +- hotspot/src/share/vm/opto/domgraph.cpp | 13 +- hotspot/src/share/vm/opto/escape.cpp | 15 +- hotspot/src/share/vm/opto/escape.hpp | 11 +- hotspot/src/share/vm/opto/gcm.cpp | 31 +- .../src/share/vm/opto/generateOptoStub.cpp | 19 +- hotspot/src/share/vm/opto/graphKit.cpp | 19 +- hotspot/src/share/vm/opto/graphKit.hpp | 18 + .../src/share/vm/opto/idealGraphPrinter.cpp | 10 +- .../src/share/vm/opto/idealGraphPrinter.hpp | 13 +- hotspot/src/share/vm/opto/idealKit.cpp | 10 +- hotspot/src/share/vm/opto/idealKit.hpp | 16 +- hotspot/src/share/vm/opto/ifg.cpp | 16 +- hotspot/src/share/vm/opto/ifnode.cpp | 14 +- hotspot/src/share/vm/opto/indexSet.cpp | 12 +- hotspot/src/share/vm/opto/indexSet.hpp | 12 +- hotspot/src/share/vm/opto/lcm.cpp | 24 +- hotspot/src/share/vm/opto/library_call.cpp | 17 +- hotspot/src/share/vm/opto/live.cpp | 10 +- hotspot/src/share/vm/opto/live.hpp | 14 +- hotspot/src/share/vm/opto/locknode.cpp | 9 +- hotspot/src/share/vm/opto/locknode.hpp | 23 +- hotspot/src/share/vm/opto/loopTransform.cpp | 14 +- hotspot/src/share/vm/opto/loopUnswitch.cpp | 9 +- hotspot/src/share/vm/opto/loopnode.cpp | 18 +- hotspot/src/share/vm/opto/loopnode.hpp | 13 +- hotspot/src/share/vm/opto/loopopts.cpp | 11 +- hotspot/src/share/vm/opto/machnode.cpp | 8 +- hotspot/src/share/vm/opto/machnode.hpp | 11 + hotspot/src/share/vm/opto/macro.cpp | 23 +- hotspot/src/share/vm/opto/macro.hpp | 9 +- hotspot/src/share/vm/opto/matcher.cpp | 30 +- hotspot/src/share/vm/opto/matcher.hpp | 11 + hotspot/src/share/vm/opto/memnode.cpp | 22 +- hotspot/src/share/vm/opto/memnode.hpp | 12 +- hotspot/src/share/vm/opto/mulnode.cpp | 14 +- hotspot/src/share/vm/opto/mulnode.hpp | 11 +- hotspot/src/share/vm/opto/multnode.cpp | 11 +- hotspot/src/share/vm/opto/multnode.hpp | 9 +- hotspot/src/share/vm/opto/node.cpp | 16 +- hotspot/src/share/vm/opto/node.hpp | 12 +- hotspot/src/share/vm/opto/opcodes.cpp | 4 +- hotspot/src/share/vm/opto/opcodes.hpp | 7 +- hotspot/src/share/vm/opto/optoreg.hpp | 7 +- hotspot/src/share/vm/opto/output.cpp | 20 +- hotspot/src/share/vm/opto/output.hpp | 22 +- hotspot/src/share/vm/opto/parse.hpp | 15 +- hotspot/src/share/vm/opto/parse1.cpp | 17 +- hotspot/src/share/vm/opto/parse2.cpp | 19 +- hotspot/src/share/vm/opto/parse3.cpp | 15 +- hotspot/src/share/vm/opto/parseHelper.cpp | 13 +- hotspot/src/share/vm/opto/phase.cpp | 10 +- hotspot/src/share/vm/opto/phase.hpp | 10 +- hotspot/src/share/vm/opto/phaseX.cpp | 17 +- hotspot/src/share/vm/opto/phaseX.hpp | 15 +- hotspot/src/share/vm/opto/postaloc.cpp | 8 +- hotspot/src/share/vm/opto/reg_split.cpp | 14 +- hotspot/src/share/vm/opto/regalloc.cpp | 6 +- hotspot/src/share/vm/opto/regalloc.hpp | 12 +- hotspot/src/share/vm/opto/regmask.cpp | 19 +- hotspot/src/share/vm/opto/regmask.hpp | 23 +- hotspot/src/share/vm/opto/rootnode.cpp | 13 +- hotspot/src/share/vm/opto/rootnode.hpp | 9 +- hotspot/src/share/vm/opto/runtime.cpp | 60 +- hotspot/src/share/vm/opto/runtime.hpp | 14 +- hotspot/src/share/vm/opto/split_if.cpp | 7 +- hotspot/src/share/vm/opto/stringopts.cpp | 14 +- hotspot/src/share/vm/opto/stringopts.hpp | 10 +- hotspot/src/share/vm/opto/subnode.cpp | 17 +- hotspot/src/share/vm/opto/subnode.hpp | 9 + hotspot/src/share/vm/opto/superword.cpp | 15 +- hotspot/src/share/vm/opto/superword.hpp | 14 +- hotspot/src/share/vm/opto/type.cpp | 23 +- hotspot/src/share/vm/opto/type.hpp | 11 +- hotspot/src/share/vm/opto/vectornode.cpp | 8 +- hotspot/src/share/vm/opto/vectornode.hpp | 12 +- hotspot/src/share/vm/precompiled.hpp | 327 ++ hotspot/src/share/vm/prims/evmCompat.cpp | 8 +- hotspot/src/share/vm/prims/forte.cpp | 16 +- hotspot/src/share/vm/prims/forte.hpp | 7 +- hotspot/src/share/vm/prims/hpi_imported.h | 10 +- hotspot/src/share/vm/prims/jni.cpp | 70 +- hotspot/src/share/vm/prims/jni.h | 2 +- hotspot/src/share/vm/prims/jniCheck.cpp | 27 +- hotspot/src/share/vm/prims/jniCheck.hpp | 11 +- .../src/share/vm/prims/jniFastGetField.cpp | 6 +- .../src/share/vm/prims/jniFastGetField.hpp | 10 +- hotspot/src/share/vm/prims/jni_md.h | 13 +- hotspot/src/share/vm/prims/jvm.cpp | 59 +- hotspot/src/share/vm/prims/jvm.h | 18 + hotspot/src/share/vm/prims/jvm_misc.hpp | 10 +- .../src/share/vm/prims/jvmtiAgentThread.hpp | 9 +- .../vm/prims/jvmtiClassFileReconstituter.cpp | 16 +- .../vm/prims/jvmtiClassFileReconstituter.hpp | 9 +- .../share/vm/prims/jvmtiCodeBlobEvents.cpp | 13 +- .../share/vm/prims/jvmtiCodeBlobEvents.hpp | 12 +- hotspot/src/share/vm/prims/jvmtiEnter.hpp | 13 +- hotspot/src/share/vm/prims/jvmtiEnter.xsl | 8 +- hotspot/src/share/vm/prims/jvmtiEnv.cpp | 50 +- hotspot/src/share/vm/prims/jvmtiEnv.xsl | 4 +- hotspot/src/share/vm/prims/jvmtiEnvBase.cpp | 27 +- hotspot/src/share/vm/prims/jvmtiEnvBase.hpp | 19 +- .../share/vm/prims/jvmtiEnvThreadState.cpp | 19 +- .../share/vm/prims/jvmtiEnvThreadState.hpp | 17 +- .../share/vm/prims/jvmtiEventController.cpp | 17 +- .../share/vm/prims/jvmtiEventController.hpp | 13 +- .../vm/prims/jvmtiEventController.inline.hpp | 11 +- hotspot/src/share/vm/prims/jvmtiExport.cpp | 33 +- hotspot/src/share/vm/prims/jvmtiExport.hpp | 17 +- .../src/share/vm/prims/jvmtiExtensions.cpp | 7 +- .../src/share/vm/prims/jvmtiExtensions.hpp | 13 +- .../share/vm/prims/jvmtiGetLoadedClasses.cpp | 9 +- .../share/vm/prims/jvmtiGetLoadedClasses.hpp | 9 +- hotspot/src/share/vm/prims/jvmtiHpp.xsl | 11 +- hotspot/src/share/vm/prims/jvmtiImpl.cpp | 33 +- hotspot/src/share/vm/prims/jvmtiImpl.hpp | 19 +- .../vm/prims/jvmtiManageCapabilities.cpp | 6 +- .../vm/prims/jvmtiManageCapabilities.hpp | 11 +- .../src/share/vm/prims/jvmtiRawMonitor.cpp | 8 +- .../src/share/vm/prims/jvmtiRawMonitor.hpp | 12 +- .../share/vm/prims/jvmtiRedefineClasses.cpp | 19 +- .../share/vm/prims/jvmtiRedefineClasses.hpp | 15 +- .../vm/prims/jvmtiRedefineClassesTrace.hpp | 7 +- hotspot/src/share/vm/prims/jvmtiTagMap.cpp | 29 +- hotspot/src/share/vm/prims/jvmtiTagMap.hpp | 17 +- .../src/share/vm/prims/jvmtiThreadState.cpp | 12 +- .../src/share/vm/prims/jvmtiThreadState.hpp | 13 +- .../vm/prims/jvmtiThreadState.inline.hpp | 10 +- hotspot/src/share/vm/prims/jvmtiTrace.cpp | 7 +- hotspot/src/share/vm/prims/jvmtiTrace.hpp | 16 +- hotspot/src/share/vm/prims/jvmtiUtil.cpp | 12 +- hotspot/src/share/vm/prims/jvmtiUtil.hpp | 11 +- .../src/share/vm/prims/methodComparator.cpp | 9 +- .../src/share/vm/prims/methodComparator.hpp | 9 + .../src/share/vm/prims/methodHandleWalk.cpp | 8 +- .../src/share/vm/prims/methodHandleWalk.hpp | 7 + hotspot/src/share/vm/prims/methodHandles.cpp | 14 +- hotspot/src/share/vm/prims/methodHandles.hpp | 11 + hotspot/src/share/vm/prims/nativeLookup.cpp | 32 +- hotspot/src/share/vm/prims/nativeLookup.hpp | 10 +- hotspot/src/share/vm/prims/perf.cpp | 16 +- .../src/share/vm/prims/privilegedStack.cpp | 11 +- .../src/share/vm/prims/privilegedStack.hpp | 12 +- hotspot/src/share/vm/prims/unsafe.cpp | 19 +- hotspot/src/share/vm/runtime/aprofiler.cpp | 13 +- hotspot/src/share/vm/runtime/aprofiler.hpp | 13 +- hotspot/src/share/vm/runtime/arguments.cpp | 38 +- hotspot/src/share/vm/runtime/arguments.hpp | 9 + hotspot/src/share/vm/runtime/atomic.cpp | 33 +- hotspot/src/share/vm/runtime/atomic.hpp | 9 +- hotspot/src/share/vm/runtime/basicLock.cpp | 5 +- hotspot/src/share/vm/runtime/basicLock.hpp | 11 +- .../src/share/vm/runtime/biasedLocking.cpp | 13 +- .../src/share/vm/runtime/biasedLocking.hpp | 10 +- .../share/vm/runtime/compilationPolicy.cpp | 24 +- .../share/vm/runtime/compilationPolicy.hpp | 11 + .../src/share/vm/runtime/deoptimization.cpp | 53 +- .../src/share/vm/runtime/deoptimization.hpp | 10 +- hotspot/src/share/vm/runtime/dtraceJSDT.cpp | 15 +- hotspot/src/share/vm/runtime/dtraceJSDT.hpp | 18 +- hotspot/src/share/vm/runtime/extendedPC.hpp | 7 +- .../src/share/vm/runtime/fieldDescriptor.cpp | 13 +- .../src/share/vm/runtime/fieldDescriptor.hpp | 15 +- hotspot/src/share/vm/runtime/fieldType.cpp | 11 +- hotspot/src/share/vm/runtime/fieldType.hpp | 10 +- hotspot/src/share/vm/runtime/fprofiler.cpp | 22 +- hotspot/src/share/vm/runtime/fprofiler.hpp | 18 +- hotspot/src/share/vm/runtime/frame.cpp | 30 +- hotspot/src/share/vm/runtime/frame.hpp | 42 +- hotspot/src/share/vm/runtime/frame.inline.hpp | 42 +- hotspot/src/share/vm/runtime/globals.cpp | 22 +- hotspot/src/share/vm/runtime/globals.hpp | 82 + .../share/vm/runtime/globals_extension.hpp | 10 +- hotspot/src/share/vm/runtime/handles.cpp | 20 +- hotspot/src/share/vm/runtime/handles.hpp | 11 +- .../src/share/vm/runtime/handles.inline.hpp | 18 +- hotspot/src/share/vm/runtime/hpi.cpp | 7 +- hotspot/src/share/vm/runtime/hpi.hpp | 12 +- hotspot/src/share/vm/runtime/icache.cpp | 5 +- hotspot/src/share/vm/runtime/icache.hpp | 21 +- hotspot/src/share/vm/runtime/init.cpp | 13 +- hotspot/src/share/vm/runtime/init.hpp | 9 +- .../src/share/vm/runtime/interfaceSupport.cpp | 15 +- .../src/share/vm/runtime/interfaceSupport.hpp | 38 +- hotspot/src/share/vm/runtime/java.cpp | 75 +- hotspot/src/share/vm/runtime/java.hpp | 9 +- hotspot/src/share/vm/runtime/javaCalls.cpp | 28 +- hotspot/src/share/vm/runtime/javaCalls.hpp | 31 +- .../src/share/vm/runtime/javaFrameAnchor.hpp | 38 +- .../share/vm/runtime/jfieldIDWorkaround.hpp | 7 +- hotspot/src/share/vm/runtime/jniHandles.cpp | 18 +- hotspot/src/share/vm/runtime/jniHandles.hpp | 8 + .../share/vm/runtime/jniPeriodicChecker.cpp | 8 +- .../share/vm/runtime/jniPeriodicChecker.hpp | 7 +- hotspot/src/share/vm/runtime/memprofiler.cpp | 28 +- hotspot/src/share/vm/runtime/memprofiler.hpp | 7 +- hotspot/src/share/vm/runtime/monitorChunk.cpp | 8 +- hotspot/src/share/vm/runtime/monitorChunk.hpp | 9 +- hotspot/src/share/vm/runtime/mutex.cpp | 20 +- hotspot/src/share/vm/runtime/mutex.hpp | 11 +- hotspot/src/share/vm/runtime/mutexLocker.cpp | 18 +- hotspot/src/share/vm/runtime/mutexLocker.hpp | 19 +- .../src/share/vm/runtime/objectMonitor.cpp | 32 +- .../src/share/vm/runtime/objectMonitor.hpp | 10 +- .../share/vm/runtime/objectMonitor.inline.hpp | 7 +- hotspot/src/share/vm/runtime/orderAccess.cpp | 6 +- hotspot/src/share/vm/runtime/orderAccess.hpp | 7 + hotspot/src/share/vm/runtime/os.cpp | 41 +- hotspot/src/share/vm/runtime/os.hpp | 49 +- hotspot/src/share/vm/runtime/osThread.cpp | 7 +- hotspot/src/share/vm/runtime/osThread.hpp | 25 +- hotspot/src/share/vm/runtime/park.cpp | 4 +- hotspot/src/share/vm/runtime/park.hpp | 8 + hotspot/src/share/vm/runtime/perfData.cpp | 15 +- hotspot/src/share/vm/runtime/perfData.hpp | 12 +- hotspot/src/share/vm/runtime/perfMemory.cpp | 15 +- hotspot/src/share/vm/runtime/perfMemory.hpp | 9 +- hotspot/src/share/vm/runtime/prefetch.hpp | 9 +- hotspot/src/share/vm/runtime/reflection.cpp | 24 +- hotspot/src/share/vm/runtime/reflection.hpp | 13 +- .../src/share/vm/runtime/reflectionCompat.hpp | 7 +- .../src/share/vm/runtime/reflectionUtils.cpp | 8 +- .../src/share/vm/runtime/reflectionUtils.hpp | 16 +- hotspot/src/share/vm/runtime/registerMap.hpp | 30 +- hotspot/src/share/vm/runtime/relocator.cpp | 12 +- hotspot/src/share/vm/runtime/relocator.hpp | 19 +- hotspot/src/share/vm/runtime/rframe.cpp | 10 +- hotspot/src/share/vm/runtime/rframe.hpp | 10 +- hotspot/src/share/vm/runtime/safepoint.cpp | 59 +- hotspot/src/share/vm/runtime/safepoint.hpp | 12 + .../src/share/vm/runtime/sharedRuntime.cpp | 52 +- .../src/share/vm/runtime/sharedRuntime.hpp | 13 + .../share/vm/runtime/sharedRuntimeTrans.cpp | 8 +- .../share/vm/runtime/sharedRuntimeTrig.cpp | 8 +- hotspot/src/share/vm/runtime/signature.cpp | 13 +- hotspot/src/share/vm/runtime/signature.hpp | 11 +- .../vm/runtime/simpleThresholdPolicy.cpp | 8 +- .../vm/runtime/simpleThresholdPolicy.hpp | 10 + .../runtime/simpleThresholdPolicy.inline.hpp | 4 + hotspot/src/share/vm/runtime/stackValue.cpp | 10 +- hotspot/src/share/vm/runtime/stackValue.hpp | 11 +- .../share/vm/runtime/stackValueCollection.cpp | 15 +- .../share/vm/runtime/stackValueCollection.hpp | 11 +- hotspot/src/share/vm/runtime/statSampler.cpp | 24 +- hotspot/src/share/vm/runtime/statSampler.hpp | 10 +- .../share/vm/runtime/stubCodeGenerator.cpp | 16 +- .../share/vm/runtime/stubCodeGenerator.hpp | 10 +- hotspot/src/share/vm/runtime/stubRoutines.cpp | 14 +- hotspot/src/share/vm/runtime/stubRoutines.hpp | 35 +- hotspot/src/share/vm/runtime/sweeper.cpp | 16 +- hotspot/src/share/vm/runtime/sweeper.hpp | 5 + hotspot/src/share/vm/runtime/synchronizer.cpp | 33 +- hotspot/src/share/vm/runtime/synchronizer.hpp | 13 +- hotspot/src/share/vm/runtime/task.cpp | 21 +- hotspot/src/share/vm/runtime/task.hpp | 9 +- hotspot/src/share/vm/runtime/thread.cpp | 80 +- hotspot/src/share/vm/runtime/thread.hpp | 53 +- .../src/share/vm/runtime/threadCritical.hpp | 9 +- .../share/vm/runtime/threadLocalStorage.cpp | 18 +- .../share/vm/runtime/threadLocalStorage.hpp | 31 +- hotspot/src/share/vm/runtime/timer.cpp | 17 +- hotspot/src/share/vm/runtime/timer.hpp | 9 +- .../src/share/vm/runtime/unhandledOops.cpp | 12 +- .../src/share/vm/runtime/unhandledOops.hpp | 8 +- hotspot/src/share/vm/runtime/vframe.cpp | 25 +- hotspot/src/share/vm/runtime/vframe.hpp | 17 +- hotspot/src/share/vm/runtime/vframeArray.cpp | 21 +- hotspot/src/share/vm/runtime/vframeArray.hpp | 13 +- hotspot/src/share/vm/runtime/vframe_hp.cpp | 24 +- hotspot/src/share/vm/runtime/vframe_hp.hpp | 9 +- hotspot/src/share/vm/runtime/virtualspace.cpp | 17 +- hotspot/src/share/vm/runtime/virtualspace.hpp | 9 +- hotspot/src/share/vm/runtime/vmStructs.cpp | 148 +- hotspot/src/share/vm/runtime/vmStructs.hpp | 14 +- hotspot/src/share/vm/runtime/vmThread.cpp | 26 +- hotspot/src/share/vm/runtime/vmThread.hpp | 19 +- .../src/share/vm/runtime/vm_operations.cpp | 25 +- .../src/share/vm/runtime/vm_operations.hpp | 13 +- hotspot/src/share/vm/runtime/vm_version.cpp | 15 +- hotspot/src/share/vm/runtime/vm_version.hpp | 10 +- .../src/share/vm/services/attachListener.cpp | 17 +- .../src/share/vm/services/attachListener.hpp | 11 +- .../share/vm/services/classLoadingService.cpp | 13 +- .../share/vm/services/classLoadingService.hpp | 11 +- .../src/share/vm/services/dtraceAttacher.cpp | 11 +- .../src/share/vm/services/dtraceAttacher.hpp | 7 +- .../src/share/vm/services/g1MemoryPool.cpp | 8 +- .../src/share/vm/services/g1MemoryPool.hpp | 12 +- hotspot/src/share/vm/services/heapDumper.cpp | 22 +- hotspot/src/share/vm/services/heapDumper.hpp | 10 + hotspot/src/share/vm/services/jmm.h | 2 +- .../share/vm/services/lowMemoryDetector.cpp | 15 +- .../share/vm/services/lowMemoryDetector.hpp | 11 +- hotspot/src/share/vm/services/management.cpp | 29 +- hotspot/src/share/vm/services/management.hpp | 12 +- .../src/share/vm/services/memoryManager.cpp | 16 +- .../src/share/vm/services/memoryManager.hpp | 11 +- hotspot/src/share/vm/services/memoryPool.cpp | 14 +- hotspot/src/share/vm/services/memoryPool.hpp | 16 +- .../src/share/vm/services/memoryService.cpp | 38 +- .../src/share/vm/services/memoryService.hpp | 12 +- hotspot/src/share/vm/services/memoryUsage.hpp | 9 +- .../src/share/vm/services/psMemoryPool.cpp | 15 +- .../src/share/vm/services/psMemoryPool.hpp | 18 +- .../src/share/vm/services/runtimeService.cpp | 9 +- .../src/share/vm/services/runtimeService.hpp | 10 +- hotspot/src/share/vm/services/serviceUtil.hpp | 10 +- .../src/share/vm/services/threadService.cpp | 18 +- .../src/share/vm/services/threadService.hpp | 17 +- hotspot/src/share/vm/shark/llvmHeaders.hpp | 7 +- hotspot/src/share/vm/shark/llvmValue.hpp | 11 +- hotspot/src/share/vm/shark/sharkBlock.cpp | 15 +- hotspot/src/share/vm/shark/sharkBlock.hpp | 18 +- hotspot/src/share/vm/shark/sharkBuilder.cpp | 17 +- hotspot/src/share/vm/shark/sharkBuilder.hpp | 19 +- .../src/share/vm/shark/sharkCacheDecache.cpp | 12 +- .../src/share/vm/shark/sharkCacheDecache.hpp | 13 +- .../src/share/vm/shark/sharkCodeBuffer.hpp | 11 +- hotspot/src/share/vm/shark/sharkCompiler.cpp | 24 +- hotspot/src/share/vm/shark/sharkCompiler.hpp | 14 +- hotspot/src/share/vm/shark/sharkConstant.cpp | 10 +- hotspot/src/share/vm/shark/sharkConstant.hpp | 12 +- hotspot/src/share/vm/shark/sharkContext.cpp | 10 +- hotspot/src/share/vm/shark/sharkContext.hpp | 10 +- hotspot/src/share/vm/shark/sharkEntry.hpp | 9 +- hotspot/src/share/vm/shark/sharkFunction.cpp | 16 +- hotspot/src/share/vm/shark/sharkFunction.hpp | 18 +- hotspot/src/share/vm/shark/sharkInliner.cpp | 17 +- hotspot/src/share/vm/shark/sharkInliner.hpp | 12 +- .../src/share/vm/shark/sharkIntrinsics.cpp | 11 +- .../src/share/vm/shark/sharkIntrinsics.hpp | 12 +- .../src/share/vm/shark/sharkInvariants.cpp | 6 +- .../src/share/vm/shark/sharkInvariants.hpp | 17 +- .../src/share/vm/shark/sharkMemoryManager.cpp | 8 +- .../src/share/vm/shark/sharkMemoryManager.hpp | 10 +- .../src/share/vm/shark/sharkNativeWrapper.cpp | 8 +- .../src/share/vm/shark/sharkNativeWrapper.hpp | 14 +- hotspot/src/share/vm/shark/sharkRuntime.cpp | 14 +- hotspot/src/share/vm/shark/sharkRuntime.hpp | 13 +- hotspot/src/share/vm/shark/sharkStack.cpp | 10 +- hotspot/src/share/vm/shark/sharkStack.hpp | 11 +- hotspot/src/share/vm/shark/sharkState.cpp | 14 +- hotspot/src/share/vm/shark/sharkState.hpp | 14 +- .../src/share/vm/shark/sharkStateScanner.cpp | 7 +- .../src/share/vm/shark/sharkStateScanner.hpp | 12 +- .../src/share/vm/shark/sharkTopLevelBlock.cpp | 25 +- .../src/share/vm/shark/sharkTopLevelBlock.hpp | 19 +- hotspot/src/share/vm/shark/sharkType.hpp | 13 +- hotspot/src/share/vm/shark/sharkValue.cpp | 10 +- hotspot/src/share/vm/shark/sharkValue.hpp | 13 +- hotspot/src/share/vm/shark/shark_globals.cpp | 6 +- hotspot/src/share/vm/shark/shark_globals.hpp | 12 +- .../src/share/vm/utilities/accessFlags.cpp | 16 +- .../src/share/vm/utilities/accessFlags.hpp | 8 + hotspot/src/share/vm/utilities/array.cpp | 16 +- hotspot/src/share/vm/utilities/array.hpp | 10 +- hotspot/src/share/vm/utilities/bitMap.cpp | 17 +- hotspot/src/share/vm/utilities/bitMap.hpp | 10 +- .../src/share/vm/utilities/bitMap.inline.hpp | 10 +- .../src/share/vm/utilities/constantTag.cpp | 6 +- .../src/share/vm/utilities/constantTag.hpp | 8 + hotspot/src/share/vm/utilities/copy.cpp | 7 +- hotspot/src/share/vm/utilities/copy.hpp | 20 +- hotspot/src/share/vm/utilities/debug.cpp | 42 +- hotspot/src/share/vm/utilities/debug.hpp | 9 +- .../src/share/vm/utilities/defaultStream.hpp | 9 +- hotspot/src/share/vm/utilities/dtrace.hpp | 7 +- hotspot/src/share/vm/utilities/events.cpp | 20 +- hotspot/src/share/vm/utilities/events.hpp | 10 +- hotspot/src/share/vm/utilities/exceptions.cpp | 24 +- hotspot/src/share/vm/utilities/exceptions.hpp | 11 +- .../share/vm/utilities/globalDefinitions.cpp | 9 +- .../share/vm/utilities/globalDefinitions.hpp | 28 +- .../vm/utilities/globalDefinitions_gcc.hpp | 9 +- .../globalDefinitions_sparcWorks.hpp | 9 +- .../vm/utilities/globalDefinitions_visCPP.hpp | 9 +- .../src/share/vm/utilities/growableArray.cpp | 16 +- .../src/share/vm/utilities/growableArray.hpp | 13 +- hotspot/src/share/vm/utilities/hashtable.cpp | 12 +- hotspot/src/share/vm/utilities/hashtable.hpp | 12 +- .../share/vm/utilities/hashtable.inline.hpp | 10 +- hotspot/src/share/vm/utilities/histogram.cpp | 7 +- hotspot/src/share/vm/utilities/histogram.hpp | 20 +- hotspot/src/share/vm/utilities/intHisto.cpp | 6 +- hotspot/src/share/vm/utilities/intHisto.hpp | 10 +- hotspot/src/share/vm/utilities/macros.hpp | 5 + hotspot/src/share/vm/utilities/numberSeq.cpp | 9 +- hotspot/src/share/vm/utilities/numberSeq.hpp | 7 +- hotspot/src/share/vm/utilities/ostream.cpp | 25 +- hotspot/src/share/vm/utilities/ostream.hpp | 10 +- .../share/vm/utilities/preserveException.cpp | 7 +- .../share/vm/utilities/preserveException.hpp | 18 +- hotspot/src/share/vm/utilities/sizes.cpp | 7 +- hotspot/src/share/vm/utilities/sizes.hpp | 10 +- hotspot/src/share/vm/utilities/stack.hpp | 15 +- .../src/share/vm/utilities/stack.inline.hpp | 15 +- hotspot/src/share/vm/utilities/taskqueue.cpp | 17 +- hotspot/src/share/vm/utilities/taskqueue.hpp | 28 + hotspot/src/share/vm/utilities/top.hpp | 25 +- hotspot/src/share/vm/utilities/utf8.cpp | 6 +- hotspot/src/share/vm/utilities/utf8.hpp | 10 +- hotspot/src/share/vm/utilities/vmError.cpp | 16 +- hotspot/src/share/vm/utilities/vmError.hpp | 7 + hotspot/src/share/vm/utilities/workgroup.cpp | 7 +- hotspot/src/share/vm/utilities/workgroup.hpp | 16 + hotspot/src/share/vm/utilities/xmlstream.cpp | 14 +- hotspot/src/share/vm/utilities/xmlstream.hpp | 10 +- .../share/vm/utilities/yieldingWorkgroup.cpp | 6 +- .../share/vm/utilities/yieldingWorkgroup.hpp | 9 + 1587 files changed, 18713 insertions(+), 14419 deletions(-) delete mode 100644 hotspot/make/linux/makefiles/makedeps.make delete mode 100644 hotspot/make/solaris/makefiles/makedeps.make delete mode 100644 hotspot/make/windows/README create mode 100644 hotspot/make/windows/create_obj_files.sh delete mode 100644 hotspot/make/windows/makefiles/makedeps.make create mode 100644 hotspot/make/windows/makefiles/projectcreator.make delete mode 100644 hotspot/src/share/tools/MakeDeps/Database.java delete mode 100644 hotspot/src/share/tools/MakeDeps/FileList.java delete mode 100644 hotspot/src/share/tools/MakeDeps/FileName.java delete mode 100644 hotspot/src/share/tools/MakeDeps/MakeDeps.java delete mode 100644 hotspot/src/share/tools/MakeDeps/MetroWerksMacPlatform.java delete mode 100644 hotspot/src/share/tools/MakeDeps/Platform.java delete mode 100644 hotspot/src/share/tools/MakeDeps/UnixPlatform.java rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/ArgsParser.java (96%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/BuildConfig.java (89%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/DirectoryTree.java (87%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/DirectoryTreeNode.java (94%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/FileFormatException.java (93%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/Macro.java (92%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/MacroDefinitions.java (61%) create mode 100644 hotspot/src/share/tools/ProjectCreator/ProjectCreator.java rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/Util.java (96%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/WinGammaPlatform.java (90%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/WinGammaPlatformVC6.java (99%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/WinGammaPlatformVC7.java (86%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/WinGammaPlatformVC8.java (95%) rename hotspot/src/share/tools/{MakeDeps => ProjectCreator}/WinGammaPlatformVC9.java (91%) delete mode 100644 hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep delete mode 100644 hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 delete mode 100644 hotspot/src/share/vm/gc_implementation/includeDB_gc_parNew delete mode 100644 hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge delete mode 100644 hotspot/src/share/vm/gc_implementation/includeDB_gc_serial delete mode 100644 hotspot/src/share/vm/gc_implementation/includeDB_gc_shared delete mode 100644 hotspot/src/share/vm/includeDB_compiler1 delete mode 100644 hotspot/src/share/vm/includeDB_compiler2 delete mode 100644 hotspot/src/share/vm/includeDB_core delete mode 100644 hotspot/src/share/vm/includeDB_features delete mode 100644 hotspot/src/share/vm/includeDB_gc delete mode 100644 hotspot/src/share/vm/includeDB_gc_parallel delete mode 100644 hotspot/src/share/vm/includeDB_jvmti delete mode 100644 hotspot/src/share/vm/includeDB_shark delete mode 100644 hotspot/src/share/vm/includeDB_zero create mode 100644 hotspot/src/share/vm/precompiled.hpp diff --git a/hotspot/make/linux/makefiles/adlc.make b/hotspot/make/linux/makefiles/adlc.make index 35b7a89ccff..a4d2babb4b8 100644 --- a/hotspot/make/linux/makefiles/adlc.make +++ b/hotspot/make/linux/makefiles/adlc.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -42,16 +42,14 @@ SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \ $(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad -Src_Dirs += $(GAMMADIR)/src/share/vm/adlc - EXEC = $(OUTDIR)/adlc # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc +VPATH += $(Src_Dirs_V:%=%:) # set INCLUDES for C preprocessor -Src_Dirs_I = ${Src_Dirs} $(GENERATED) +Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) # set flags for adlc compilation diff --git a/hotspot/make/linux/makefiles/amd64.make b/hotspot/make/linux/makefiles/amd64.make index b6f1f2f18fc..ecdac17ee3a 100644 --- a/hotspot/make/linux/makefiles/amd64.make +++ b/hotspot/make/linux/makefiles/amd64.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,6 @@ # # -# Not included in includeDB because it has no dependencies -Obj_Files += linux_x86_64.o - # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) # The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized diff --git a/hotspot/make/linux/makefiles/buildtree.make b/hotspot/make/linux/makefiles/buildtree.make index af34617f46c..0089ac29c5c 100644 --- a/hotspot/make/linux/makefiles/buildtree.make +++ b/hotspot/make/linux/makefiles/buildtree.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -113,7 +113,7 @@ endif COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE)) SIMPLE_DIRS = \ - $(PLATFORM_DIR)/generated/incls \ + $(PLATFORM_DIR)/generated/dependencies \ $(PLATFORM_DIR)/generated/adfiles \ $(PLATFORM_DIR)/generated/jvmtifiles @@ -197,11 +197,27 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst echo "HOTSPOT_BUILD_USER = $(HOTSPOT_BUILD_USER)"; \ echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \ echo; \ - echo "Src_Dirs = \\"; \ + echo "# Used for platform dispatching"; \ + echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \ + echo "CFLAGS += \$$(TARGET_DEFINES)"; \ + echo; \ + echo "Src_Dirs_V = \\"; \ sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \ echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ + echo; \ + echo "Src_Dirs_I = \\"; \ + echo "\$$(GAMMADIR)/src/share/vm \\"; \ + echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \ + echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ [ -n "$(CFLAGS_BROWSE)" ] && \ echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ diff --git a/hotspot/make/linux/makefiles/core.make b/hotspot/make/linux/makefiles/core.make index eb662de79cb..e032d964f57 100644 --- a/hotspot/make/linux/makefiles/core.make +++ b/hotspot/make/linux/makefiles/core.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,8 +24,7 @@ # Sets make macros for making core version of VM -# Note the effect on includeDB lists in top.make: -# includeDB_compiler* and ad_.*pp are excluded from the build, +# Select which files to use (in top.make) TYPE=CORE # There is no "core" directory in JDK. Install core build in server directory. diff --git a/hotspot/make/linux/makefiles/gcc.make b/hotspot/make/linux/makefiles/gcc.make index 7107858f7d9..2ba9228f6b9 100644 --- a/hotspot/make/linux/makefiles/gcc.make +++ b/hotspot/make/linux/makefiles/gcc.make @@ -44,7 +44,8 @@ CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2) ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" USE_PRECOMPILED_HEADER=1 PRECOMPILED_HEADER_DIR=. -PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch +PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp +PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch endif @@ -144,6 +145,11 @@ ifneq "$(shell expr \( \( $(CC_VER_MAJOR) = 4 \) \& \( $(CC_VER_MINOR) = 3 \) \) OPT_CFLAGS/mulnode.o += -O0 endif +# Flags for generating make dependency flags. +ifneq ("${CC_VER_MAJOR}", "2") +DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) +endif + #------------------------------------------------------------------------ # Linker flags diff --git a/hotspot/make/linux/makefiles/i486.make b/hotspot/make/linux/makefiles/i486.make index 6764e2d5d1f..86e825d3e9d 100644 --- a/hotspot/make/linux/makefiles/i486.make +++ b/hotspot/make/linux/makefiles/i486.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,6 @@ # # TLS helper, assembled from .s file -# Not included in includeDB because it has no dependencies -Obj_Files += linux_x86_32.o # The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT) diff --git a/hotspot/make/linux/makefiles/jvmti.make b/hotspot/make/linux/makefiles/jvmti.make index 7694b1c9b15..292ccc8ef2d 100644 --- a/hotspot/make/linux/makefiles/jvmti.make +++ b/hotspot/make/linux/makefiles/jvmti.make @@ -37,11 +37,10 @@ JvmtiOutDir = $(GENERATED)/jvmtifiles JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter -Src_Dirs += $(JvmtiSrcDir) # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(JvmtiSrcDir) +VPATH += $(Src_Dirs_V:%=%:) JvmtiGeneratedNames = \ jvmtiEnv.hpp \ diff --git a/hotspot/make/linux/makefiles/launcher.make b/hotspot/make/linux/makefiles/launcher.make index 52ba511aea9..b1ecf325054 100644 --- a/hotspot/make/linux/makefiles/launcher.make +++ b/hotspot/make/linux/makefiles/launcher.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ LINK_LAUNCHER/PRE_HOOK = $(LINK_LIB.CC/PRE_HOOK) LINK_LAUNCHER/POST_HOOK = $(LINK_LIB.CC/POST_HOOK) launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c - $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) + $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) $(TARGET_DEFINES) launcher.c: @echo Generating $@ diff --git a/hotspot/make/linux/makefiles/makedeps.make b/hotspot/make/linux/makefiles/makedeps.make deleted file mode 100644 index 1ea4f3b117f..00000000000 --- a/hotspot/make/linux/makefiles/makedeps.make +++ /dev/null @@ -1,43 +0,0 @@ -# -# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# - -include $(GAMMADIR)/make/linux/makefiles/rules.make - -COMPILE.JAVAC.FLAGS += -d $(OUTDIR) - -MakeDepsSources=\ - $(GAMMADIR)/src/share/tools/MakeDeps/Database.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTree.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTreeNode.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileFormatException.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileList.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileName.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Macro.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MacroDefinitions.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MakeDeps.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MetroWerksMacPlatform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Platform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/UnixPlatform.java - -MakeDepsOptions= diff --git a/hotspot/make/linux/makefiles/rules.make b/hotspot/make/linux/makefiles/rules.make index 73f2eb44d7e..4ce9e3db872 100644 --- a/hotspot/make/linux/makefiles/rules.make +++ b/hotspot/make/linux/makefiles/rules.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -151,20 +151,20 @@ ifdef LP64 %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) - $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) + $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) else %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) $(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \ - $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \ - $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)) + $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \ + $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)) endif %.o: %.s @echo Assembling $< $(QUIETLY) $(REMOVE_TARGET) - $(QUIETLY) $(AS.S) -o $@ $< $(COMPILE_DONE) + $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) %.s: %.cpp @echo Generating assembly for $< diff --git a/hotspot/make/linux/makefiles/saproc.make b/hotspot/make/linux/makefiles/saproc.make index bc4fc66c5fa..e65bf5ba142 100644 --- a/hotspot/make/linux/makefiles/saproc.make +++ b/hotspot/make/linux/makefiles/saproc.make @@ -55,10 +55,12 @@ endif # if $(AGENT_DIR) does not exist, we don't build SA # also, we don't build SA on Itanium, PPC, ARM or zero. -checkAndBuildSA: - $(QUIETLY) if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" -a "$(SRCARCH)" != "arm" -a "$(SRCARCH)" != "ppc" -a "$(SRCARCH)" != "zero" ] ; then \ - $(MAKE) -f vm.make $(LIBSAPROC); \ - fi +ifneq ($(wildcard $(AGENT_DIR)),) +ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),) + BUILDLIBSAPROC = $(LIBSAPROC) +endif +endif + SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) @@ -81,10 +83,10 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE) -lthread_db $(QUIETLY) [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } -install_saproc: checkAndBuildSA +install_saproc: $(BUILDLIBSAPROC) $(QUIETLY) if [ -e $(LIBSAPROC) ] ; then \ echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ fi -.PHONY: checkAndBuildSA install_saproc +.PHONY: install_saproc diff --git a/hotspot/make/linux/makefiles/sparc.make b/hotspot/make/linux/makefiles/sparc.make index ef5b122eab4..ddb05132fab 100644 --- a/hotspot/make/linux/makefiles/sparc.make +++ b/hotspot/make/linux/makefiles/sparc.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,3 @@ # # -# Not included in includeDB because it has no dependencies -Obj_Files += linux_sparc.o - diff --git a/hotspot/make/linux/makefiles/sparcWorks.make b/hotspot/make/linux/makefiles/sparcWorks.make index 900c7ddea00..f0a9901f70e 100644 --- a/hotspot/make/linux/makefiles/sparcWorks.make +++ b/hotspot/make/linux/makefiles/sparcWorks.make @@ -74,6 +74,11 @@ CFLAGS_WARN/BYFILE = $(CFLAGS_WARN/$@)$(CFLAGS_WARN/DEFAULT$(CFLAGS_WARN/$@)) OPT_CFLAGS+=-xO4 OPT_CFLAGS/NOOPT=-xO0 +# Flags for creating the dependency files. +ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) +DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d) +endif + #------------------------------------------------------------------------ # Linker flags diff --git a/hotspot/make/linux/makefiles/sparcv9.make b/hotspot/make/linux/makefiles/sparcv9.make index 8687dfb4bb1..b9e4e525d76 100644 --- a/hotspot/make/linux/makefiles/sparcv9.make +++ b/hotspot/make/linux/makefiles/sparcv9.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -21,10 +21,6 @@ # questions. # -# -# Not included in includeDB because it has no dependencies -Obj_Files += linux_sparc.o - # gcc 4.0 miscompiles this code in -m64 OPT_CFLAGS/macro.o = -O0 diff --git a/hotspot/make/linux/makefiles/top.make b/hotspot/make/linux/makefiles/top.make index c9988f6aba7..db9224fc215 100644 --- a/hotspot/make/linux/makefiles/top.make +++ b/hotspot/make/linux/makefiles/top.make @@ -31,7 +31,7 @@ # -generate sa-jdi.jar (JDI binding to core files) # It assumes the following flags are set: -# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Obj_Files +# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Obj_Files # -- D. Ungar (5/97) from a file by Bill Bush @@ -45,10 +45,6 @@ VM = $(GAMMADIR)/src/share/vm Plat_File = $(Platform_file) CDG = cd $(GENERATED); -# Pick up MakeDeps' sources and definitions -include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make -MakeDepsClass = MakeDeps.class - ifdef USE_PRECOMPILED_HEADER PrecompiledOption = -DUSE_PRECOMPILED_HEADER UpdatePCH = $(MAKE) -f vm.make $(PRECOMPILED_HEADER) $(MFLAGS) @@ -57,33 +53,7 @@ UpdatePCH = \# precompiled header is not used PrecompiledOption = endif -MakeDeps = $(RUN.JAVA) $(PrecompiledOption) -classpath $(GENERATED) MakeDeps - -Include_DBs/GC = $(VM)/includeDB_gc \ - $(VM)/includeDB_gc_parallel \ - $(VM)/gc_implementation/includeDB_gc_parallelScavenge \ - $(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(VM)/gc_implementation/includeDB_gc_parNew \ - $(VM)/gc_implementation/includeDB_gc_g1 \ - $(VM)/gc_implementation/includeDB_gc_serial \ - $(VM)/gc_implementation/includeDB_gc_shared - -Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \ - $(VM)/includeDB_jvmti \ - $(VM)/includeDB_features -Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 -Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2 -Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2 -Include_DBs/ZERO = $(Include_DBs/CORE) $(VM)/includeDB_zero -Include_DBs/SHARK = $(Include_DBs/ZERO) $(VM)/includeDB_shark -Include_DBs = $(Include_DBs/$(TYPE)) - Cached_plat = $(GENERATED)/platform.current -Cached_db = $(GENERATED)/includeDB.current - -Incremental_Lists = $(Cached_db) -# list generation also creates $(GENERATED)/$(Cached_plat) - AD_Dir = $(GENERATED)/adfiles ADLC = $(AD_Dir)/adlc @@ -102,7 +72,7 @@ adjust-mflags = $(GENERATED)/adjust-mflags MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"` -# default target: make makeDeps, update lists, make vm +# default target: update lists, make vm # done in stages to force sequential order with parallel make # @@ -110,39 +80,18 @@ default: vm_build_preliminaries the_vm @echo All done. # This is an explicit dependency for the sake of parallel makes. -vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff +vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff @# We need a null action here, so implicit rules don't get consulted. -# make makeDeps: (and zap the cached db files to force a nonincremental run) - -$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) - @$(REMOTE) $(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) - -# make incremental_lists, if cached files out of date, run makeDeps - -$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass) - $(CDG) cat $(Include_DBs) > $(GENERATED)/includeDB - $(CDG) if [ ! -r incls ] ; then \ - mkdir incls ; \ - fi - $(CDG) (echo $(CDG) echo $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) $(GENERATED)/includeDB $(MakeDepsOptions)) > makeDeps.sh - $(CDG) $(REMOTE) sh $(GENERATED)/makeDeps.sh - $(CDG) cp includeDB $(Cached_db) +$(Cached_plat): $(Plat_File) $(CDG) cp $(Plat_File) $(Cached_plat) -# symbolic target for command lines -lists: $(Incremental_Lists) - @: lists are now up to date - # make AD files as necessary -ad_stuff: $(Incremental_Lists) $(adjust-mflags) +ad_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f adlc.make $(MFLAGS-adjusted) # generate JVMTI files from the spec -jvmti_stuff: $(Incremental_Lists) $(adjust-mflags) +jvmti_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f jvmti.make $(MFLAGS-adjusted) # generate SA jar files and native header @@ -169,7 +118,7 @@ the_vm: vm_build_preliminaries $(adjust-mflags) install: the_vm @$(MAKE) -f vm.make install -# next rules support "make foo.[oi]" +# next rules support "make foo.[ois]" %.o %.i %.s: $(UpdatePCH) @@ -179,7 +128,6 @@ install: the_vm # this should force everything to be rebuilt clean: rm -f $(GENERATED)/*.class - $(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass) $(MAKE) -f vm.make $(MFLAGS) clean # just in case it doesn't, this should do it diff --git a/hotspot/make/linux/makefiles/vm.make b/hotspot/make/linux/makefiles/vm.make index 92add561f09..0eb208da792 100644 --- a/hotspot/make/linux/makefiles/vm.make +++ b/hotspot/make/linux/makefiles/vm.make @@ -35,9 +35,10 @@ default: build # Defs GENERATED = ../generated +DEP_DIR = $(GENERATED)/dependencies -# read a generated file defining the set of .o's and the .o .h dependencies -include $(GENERATED)/Dependencies +# reads the generated files defining the set of .o's and the .o .h dependencies +-include $(DEP_DIR)/*.d # read machine-specific adjustments (%%% should do this via buildtree.make?) ifeq ($(ZERO_BUILD), true) @@ -47,16 +48,16 @@ else endif # set VPATH so make knows where to look for source files -# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm -# The incls directory contains generated header file lists for inclusion. +# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm # The adfiles directory contains ad_.[ch]pp. # The jvmtifiles directory contains jvmti*.[ch]pp -Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles +VPATH += $(Src_Dirs_V:%=%:) -# set INCLUDES for C preprocessor -Src_Dirs_I = $(PRECOMPILED_HEADER_DIR) $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED) -INCLUDES += $(Src_Dirs_I:%=-I%) +# set INCLUDES for C preprocessor. +Src_Dirs_I += $(GENERATED) +# The order is important for the precompiled headers to work. +INCLUDES += $(PRECOMPILED_HEADER_DIR:%=-I%) $(Src_Dirs_I:%=-I%) ifeq (${VERSION}, debug) SYMFLAG = -g @@ -118,6 +119,62 @@ JVM = jvm LIBJVM = lib$(JVM).so LIBJVM_G = lib$(JVM)$(G_SUFFIX).so +CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)) +CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm +CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm +CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm +CORE_PATHS += $(GENERATED)/jvmtifiles + +COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1 + +COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto +COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt +COMPILER2_PATHS += $(GENERATED)/adfiles + +# Include dirs per type. +Src_Dirs/CORE := $(CORE_PATHS) +Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS) +Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS) +Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS) +Src_Dirs/ZERO := $(CORE_PATHS) +Src_Dirs/SHARK := $(CORE_PATHS) +Src_Dirs := $(Src_Dirs/$(TYPE)) + +COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\* +COMPILER1_SPECIFIC_FILES := c1_\* +SHARK_SPECIFIC_FILES := shark +ZERO_SPECIFIC_FILES := zero + +# Always exclude these. +Src_Files_EXCLUDE := jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp + +# Exclude per type. +Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) + +Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE)) + +# Special handling of arch model. +ifeq ($(Platform_arch_model), x86_32) +Src_Files_EXCLUDE += \*x86_64\* +endif +ifeq ($(Platform_arch_model), x86_64) +Src_Files_EXCLUDE += \*x86_32\* +endif + +# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. +define findsrc + $(notdir $(shell find $(1) \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \) )) +endef + +Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e))) + +Obj_Files = $(addsuffix .o,$(basename $(Src_Files))) + JVM_OBJ_FILES = $(Obj_Files) vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) @@ -180,10 +237,10 @@ endif LINK_VM = $(LINK_LIB.c) # rule for building precompiled header -$(PRECOMPILED_HEADER): $(Precompiled_Files) +$(PRECOMPILED_HEADER): $(QUIETLY) echo Generating precompiled header $@ - $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR)/incls - $(QUIETLY) $(COMPILE.CC) -x c++-header -c $(GENERATED)/incls/_precompiled.incl -o $@ $(COMPILE_DONE) + $(QUIETLY) mkdir -p $(PRECOMPILED_HEADER_DIR) + $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -x c++-header $(PRECOMPILED_HEADER_SRC) -o $@ $(COMPILE_DONE) # making the library: @@ -252,7 +309,7 @@ include $(MAKEFILES_DIR)/saproc.make #---------------------------------------------------------------------- -build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) checkAndBuildSA +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(BUILDLIBSAPROC) install: install_jvm install_jsig install_saproc diff --git a/hotspot/make/linux/makefiles/zero.make b/hotspot/make/linux/makefiles/zero.make index 6de6d0e6374..0270711f5cb 100644 --- a/hotspot/make/linux/makefiles/zero.make +++ b/hotspot/make/linux/makefiles/zero.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright 2009 Red Hat, Inc. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # @@ -25,7 +25,7 @@ # Setup for Zero (non-Shark) version of VM -# Select which includeDB files to use (in top.make) +# Select which files to use (in top.make) TYPE = ZERO # Install libjvm.so, etc in in server directory. diff --git a/hotspot/make/solaris/makefiles/adlc.make b/hotspot/make/solaris/makefiles/adlc.make index 35cce4b99cf..7fc55b9d39e 100644 --- a/hotspot/make/solaris/makefiles/adlc.make +++ b/hotspot/make/solaris/makefiles/adlc.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -42,16 +42,14 @@ SOURCE.AD = $(OUTDIR)/$(OS)_$(Platform_arch_model).ad SOURCES.AD = $(GAMMADIR)/src/cpu/$(ARCH)/vm/$(Platform_arch_model).ad \ $(GAMMADIR)/src/os_cpu/$(OS)_$(ARCH)/vm/$(OS)_$(Platform_arch_model).ad -Src_Dirs += $(GAMMADIR)/src/share/vm/adlc - EXEC = $(OUTDIR)/adlc # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GAMMADIR)/src/share/vm/adlc +VPATH += $(Src_Dirs_V:%=%:) # set INCLUDES for C preprocessor -Src_Dirs_I = ${Src_Dirs} $(GENERATED) +Src_Dirs_I += $(GAMMADIR)/src/share/vm/adlc $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) # set flags for adlc compilation diff --git a/hotspot/make/solaris/makefiles/amd64.make b/hotspot/make/solaris/makefiles/amd64.make index 4c6afaad702..f88d743fe7c 100644 --- a/hotspot/make/solaris/makefiles/amd64.make +++ b/hotspot/make/solaris/makefiles/amd64.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,9 +25,6 @@ # Must also specify if CPU is little endian CFLAGS += -DVM_LITTLE_ENDIAN -# Not included in includeDB because it has no dependencies -Obj_Files += solaris_x86_64.o - # # Special case flags for compilers and compiler versions on amd64. # diff --git a/hotspot/make/solaris/makefiles/buildtree.make b/hotspot/make/solaris/makefiles/buildtree.make index a505963a252..82eaf1f9a34 100644 --- a/hotspot/make/solaris/makefiles/buildtree.make +++ b/hotspot/make/solaris/makefiles/buildtree.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -106,7 +106,7 @@ endif COMPILER = $(shell sed -n 's/^compiler[ ]*=[ ]*//p' $(PLATFORM_FILE)) SIMPLE_DIRS = \ - $(PLATFORM_DIR)/generated/incls \ + $(PLATFORM_DIR)/generated/dependencies \ $(PLATFORM_DIR)/generated/adfiles \ $(PLATFORM_DIR)/generated/jvmtifiles @@ -191,11 +191,27 @@ flags.make: $(BUILDTREE_MAKE) ../shared_dirs.lst echo "HOTSPOT_VM_DISTRO = $(HOTSPOT_VM_DISTRO)"; \ echo "$(LP64_SETTING/$(DATA_MODE))"; \ echo; \ - echo "Src_Dirs = \\"; \ + echo "# Used for platform dispatching"; \ + echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_\$$(Platform_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_ARCH_MODEL_\$$(Platform_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_\$$(Platform_os_arch)"; \ + echo "TARGET_DEFINES += -DTARGET_OS_ARCH_MODEL_\$$(Platform_os_arch_model)"; \ + echo "TARGET_DEFINES += -DTARGET_COMPILER_\$$(Platform_compiler)"; \ + echo "CFLAGS += \$$(TARGET_DEFINES)"; \ + echo; \ + echo "Src_Dirs_V = \\"; \ sed 's/$$/ \\/;s|$(GAMMADIR)|$$(GAMMADIR)|' ../shared_dirs.lst; \ echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ + echo; \ + echo "Src_Dirs_I = \\"; \ + echo "\$$(GAMMADIR)/src/share/vm \\"; \ + echo "\$$(GAMMADIR)/src/share/vm/prims \\"; \ + echo "\$$(GAMMADIR)/src/cpu/$(ARCH)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os/$(OS_FAMILY)/vm \\"; \ + echo "\$$(GAMMADIR)/src/os_cpu/$(OS_FAMILY)_$(ARCH)/vm"; \ [ -n "$(CFLAGS_BROWSE)" ] && \ echo && echo "CFLAGS_BROWSE = $(CFLAGS_BROWSE)"; \ [ -n "$(HOTSPOT_EXTRA_SYSDEFS)" ] && \ diff --git a/hotspot/make/solaris/makefiles/core.make b/hotspot/make/solaris/makefiles/core.make index 66d73b6618d..64400556fcc 100644 --- a/hotspot/make/solaris/makefiles/core.make +++ b/hotspot/make/solaris/makefiles/core.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,8 +24,7 @@ # Sets make macros for making core version of VM -# Note the effect on includeDB lists in top.make: -# includeDB_compiler* and ad_.*pp are excluded from the build, +# Select which files to use (in top.make) TYPE=CORE # There is no "core" directory in JDK. Install core build in server directory. diff --git a/hotspot/make/solaris/makefiles/dtrace.make b/hotspot/make/solaris/makefiles/dtrace.make index 2338c01099d..8b750858cd3 100644 --- a/hotspot/make/solaris/makefiles/dtrace.make +++ b/hotspot/make/solaris/makefiles/dtrace.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -63,8 +63,6 @@ endif # making libjvm_db -INCLS = $(GENERATED)/incls - # Use mapfile with libjvm_db.so LIBJVM_DB_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jvm_db LFLAGS_JVM_DB += $(MAPFLAG:FILENAME=$(LIBJVM_DB_MAPFILE)) @@ -114,7 +112,7 @@ LFLAGS_GENOFFS += -mt -xnolib -norunpath endif lib$(GENOFFS).so: $(DTRACE_SRCDIR)/$(GENOFFS).cpp $(DTRACE_SRCDIR)/$(GENOFFS).h \ - $(INCLS)/_vmStructs.cpp.incl $(LIBJVM.o) + $(LIBJVM.o) $(QUIETLY) $(CCC) $(CPPFLAGS) $(GENOFFS_CFLAGS) $(SHARED_FLAG) $(PICFLAG) \ $(LFLAGS_GENOFFS) -o $@ $(DTRACE_SRCDIR)/$(GENOFFS).cpp -lc @@ -161,6 +159,27 @@ $(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \ $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d $(QUIETLY) cat $^ > $@ +DTraced_Files = ciEnv.o \ + classLoadingService.o \ + compileBroker.o \ + hashtable.o \ + instanceKlass.o \ + java.o \ + jni.o \ + jvm.o \ + memoryManager.o \ + nmethod.o \ + objectMonitor.o \ + runtimeService.o \ + sharedRuntime.o \ + synchronizer.o \ + thread.o \ + unsafe.o \ + vmThread.o \ + vmCMSOperations.o \ + vmPSOperations.o \ + vmGCOperations.o \ + # Dtrace is available, so we build $(DTRACE.o) $(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files) @echo Compiling $(DTRACE).d diff --git a/hotspot/make/solaris/makefiles/gcc.make b/hotspot/make/solaris/makefiles/gcc.make index 0bbba240498..5a2072d96e1 100644 --- a/hotspot/make/solaris/makefiles/gcc.make +++ b/hotspot/make/solaris/makefiles/gcc.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -49,7 +49,8 @@ $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2) ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" USE_PRECOMPILED_HEADER=1 PRECOMPILED_HEADER_DIR=. -PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch +PRECOMPILED_HEADER_SRC=$(GAMMADIR)/src/share/vm/precompiled.hpp +PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/precompiled.hpp.gch endif @@ -131,6 +132,12 @@ OPT_CFLAGS/bytecodeInterpreter.o += -fno-expensive-optimizations endif OPT_CFLAGS/NOOPT=-O0 + +# Flags for generating make dependency flags. +ifneq ("${CC_VER_MAJOR}", "2") +DEPFLAGS = -MMD -MP -MF $(DEP_DIR)/$(@:%=%.d) +endif + #------------------------------------------------------------------------ # Linker flags diff --git a/hotspot/make/solaris/makefiles/i486.make b/hotspot/make/solaris/makefiles/i486.make index c5c15035e67..c2e6ff8395a 100644 --- a/hotspot/make/solaris/makefiles/i486.make +++ b/hotspot/make/solaris/makefiles/i486.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -26,8 +26,6 @@ CFLAGS += -DVM_LITTLE_ENDIAN # TLS helper, assembled from .s file -# Not included in includeDB because it has no dependencies -Obj_Files += solaris_x86_32.o # # Special case flags for compilers and compiler versions on i486. diff --git a/hotspot/make/solaris/makefiles/jvmti.make b/hotspot/make/solaris/makefiles/jvmti.make index 08b4f0edfb4..1a32cab7060 100644 --- a/hotspot/make/solaris/makefiles/jvmti.make +++ b/hotspot/make/solaris/makefiles/jvmti.make @@ -36,11 +36,10 @@ JvmtiOutDir = $(GENERATED)/jvmtifiles JvmtiSrcDir = $(GAMMADIR)/src/share/vm/prims InterpreterSrcDir = $(GAMMADIR)/src/share/vm/interpreter -Src_Dirs += $(JvmtiSrcDir) # set VPATH so make knows where to look for source files -Src_Dirs_V = ${Src_Dirs} -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(JvmtiSrcDir) +VPATH += $(Src_Dirs_V:%=%:) JvmtiGeneratedNames = \ jvmtiEnv.hpp \ diff --git a/hotspot/make/solaris/makefiles/launcher.make b/hotspot/make/solaris/makefiles/launcher.make index 0051fd9892b..b5a25017747 100644 --- a/hotspot/make/solaris/makefiles/launcher.make +++ b/hotspot/make/solaris/makefiles/launcher.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -69,7 +69,7 @@ ifeq ("${Platform_compiler}", "sparcWorks") endif # Platform_compiler == sparcWorks launcher.o: launcher.c $(LAUNCHERDIR)/java.c $(LAUNCHERDIR)/java_md.c - $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) + $(CC) -g -c -o $@ launcher.c $(LAUNCHERFLAGS) $(CPPFLAGS) ${TARGET_DEFINES} launcher.c: @echo Generating $@ diff --git a/hotspot/make/solaris/makefiles/makedeps.make b/hotspot/make/solaris/makefiles/makedeps.make deleted file mode 100644 index 671b53df29f..00000000000 --- a/hotspot/make/solaris/makefiles/makedeps.make +++ /dev/null @@ -1,43 +0,0 @@ -# -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# - -include $(GAMMADIR)/make/solaris/makefiles/rules.make - -COMPILE.JAVAC.FLAGS += -d $(OUTDIR) - -MakeDepsSources=\ - $(GAMMADIR)/src/share/tools/MakeDeps/Database.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTree.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/DirectoryTreeNode.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileFormatException.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileList.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/FileName.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Macro.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MacroDefinitions.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MakeDeps.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/MetroWerksMacPlatform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/Platform.java \ - $(GAMMADIR)/src/share/tools/MakeDeps/UnixPlatform.java - -MakeDepsOptions= diff --git a/hotspot/make/solaris/makefiles/rules.make b/hotspot/make/solaris/makefiles/rules.make index e9e87365f57..baafe9c4fd0 100644 --- a/hotspot/make/solaris/makefiles/rules.make +++ b/hotspot/make/solaris/makefiles/rules.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -151,14 +151,14 @@ ifdef LP64 %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) - $(QUIETLY) $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) + $(QUIETLY) $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) else %.o: %.cpp @echo Compiling $< $(QUIETLY) $(REMOVE_TARGET) $(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \ - $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) -o $@ $< $(COMPILE_DONE), \ - $(COMPILE.CC) -o $@ $< $(COMPILE_DONE)) + $(subst $(VM_PICFLAG), ,$(COMPILE.CC)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \ + $(COMPILE.CC) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)) endif %.o: %.s diff --git a/hotspot/make/solaris/makefiles/saproc.make b/hotspot/make/solaris/makefiles/saproc.make index 99661ce6b22..0f5a0bb4cd6 100644 --- a/hotspot/make/solaris/makefiles/saproc.make +++ b/hotspot/make/solaris/makefiles/saproc.make @@ -44,10 +44,9 @@ DEST_SAPROC = $(JDK_LIBDIR)/$(LIBSAPROC) # if $(AGENT_DIR) does not exist, we don't build SA -checkAndBuildSA: - $(QUIETLY) if [ -d $(AGENT_DIR) ] ; then \ - $(MAKE) -f vm.make $(LIBSAPROC); \ - fi +ifneq ($(wildcard $(AGENT_DIR)),) + BUILDLIBSAPROC = $(LIBSAPROC) +endif SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) @@ -75,10 +74,10 @@ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE) -ldl -ldemangle -lthread -lc [ -f $(LIBSAPROC_G) ] || { ln -s $@ $(LIBSAPROC_G); } -install_saproc: checkAndBuildSA +install_saproc: $(BULDLIBSAPROC) $(QUIETLY) if [ -f $(LIBSAPROC) ] ; then \ echo "Copying $(LIBSAPROC) to $(DEST_SAPROC)"; \ cp -f $(LIBSAPROC) $(DEST_SAPROC) && echo "Done"; \ fi -.PHONY: checkAndBuildSA install_saproc +.PHONY: install_saproc diff --git a/hotspot/make/solaris/makefiles/sparcWorks.make b/hotspot/make/solaris/makefiles/sparcWorks.make index 8e13e44063d..4fed1551316 100644 --- a/hotspot/make/solaris/makefiles/sparcWorks.make +++ b/hotspot/make/solaris/makefiles/sparcWorks.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -145,7 +145,12 @@ OPT_CFLAGS/SLOWER=-xO3 OPT_CFLAGS/O2=-xO2 OPT_CFLAGS/NOOPT=-xO1 -################################################# +# Flags for creating the dependency files. +ifeq ($(shell expr $(COMPILER_REV_NUMERIC) \>= 509), 1) +DEPFLAGS = -xMMD -xMF $(DEP_DIR)/$(@:%=%.d) +endif + +################################################ # Begin current (>=5.9) Forte compiler options # ################################################# diff --git a/hotspot/make/solaris/makefiles/sparcv9.make b/hotspot/make/solaris/makefiles/sparcv9.make index af8f0f082c2..ae2fad447f9 100644 --- a/hotspot/make/solaris/makefiles/sparcv9.make +++ b/hotspot/make/solaris/makefiles/sparcv9.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,6 @@ # # -Obj_Files += solaris_sparc.o ASFLAGS += $(AS_ARCHFLAG) ifeq ("${Platform_compiler}", "sparcWorks") diff --git a/hotspot/make/solaris/makefiles/top.make b/hotspot/make/solaris/makefiles/top.make index 1cc8ad11fdf..b0505e77aae 100644 --- a/hotspot/make/solaris/makefiles/top.make +++ b/hotspot/make/solaris/makefiles/top.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -31,7 +31,7 @@ # -generate sa-jdi.jar (JDI binding to core files) # It assumes the following flags are set: -# CFLAGS Platform_file, Src_Dirs, SYSDEFS, AOUT, Jvm_Obj_Files +# CFLAGS Platform_file, Src_Dirs_I, Src_Dirs_V, SYSDEFS, AOUT, Jvm_Obj_Files # -- D. Ungar (5/97) from a file by Bill Bush @@ -44,42 +44,7 @@ VM = $(GAMMADIR)/src/share/vm Plat_File = $(Platform_file) CDG = cd $(GENERATED); -# Pick up MakeDeps' sources and definitions -include $(GAMMADIR)/make/$(Platform_os_family)/makefiles/makedeps.make -MakeDepsClass = MakeDeps.class -MakeDeps = $(RUN.JAVA) -classpath . MakeDeps - -Include_DBs/GC = $(VM)/includeDB_gc \ - $(VM)/includeDB_gc_parallel \ - $(VM)/gc_implementation/includeDB_gc_parallelScavenge \ - $(VM)/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(VM)/gc_implementation/includeDB_gc_parNew \ - $(VM)/gc_implementation/includeDB_gc_g1 \ - $(VM)/gc_implementation/includeDB_gc_serial \ - $(VM)/gc_implementation/includeDB_gc_shared - - -Include_DBs/KERNEL = $(VM)/includeDB_core $(VM)/includeDB_gc \ - $(VM)/gc_implementation/includeDB_gc_serial \ - $(VM)/includeDB_jvmti \ - $(VM)/includeDB_compiler1 - -Include_DBs/CORE = $(VM)/includeDB_core $(Include_DBs/GC) \ - $(VM)/includeDB_jvmti \ - $(VM)/includeDB_features -Include_DBs/COMPILER1 = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 -Include_DBs/COMPILER2 = $(Include_DBs/CORE) $(VM)/includeDB_compiler2 -Include_DBs/TIERED = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 \ - $(VM)/includeDB_compiler2 - -Include_DBs = $(Include_DBs/$(TYPE)) - -Cached_plat = platform.current -Cached_db = includeDB.current - -Incremental_Lists =$(GENERATED)/$(Cached_db) -# list generation also creates $(GENERATED)/$(Cached_plat) - +Cached_plat = $(GENERATED)/platform.current AD_Dir = $(GENERATED)/adfiles ADLC = $(AD_Dir)/adlc @@ -98,7 +63,7 @@ adjust-mflags = $(GENERATED)/adjust-mflags MFLAGS-adjusted = -r `$(adjust-mflags) "$(MFLAGS)" "$(HOTSPOT_BUILD_JOBS)"` -# default target: make makeDeps, update lists, make vm +# default target: update lists, make vm # done in stages to force sequential order with parallel make # @@ -106,38 +71,18 @@ default: vm_build_preliminaries the_vm @echo All done. # This is an explicit dependency for the sake of parallel makes. -vm_build_preliminaries: checks $(Incremental_Lists) $(AD_Files_If_Required) jvmti_stuff sa_stuff +vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) jvmti_stuff sa_stuff @# We need a null action here, so implicit rules don't get consulted. -# make makeDeps: (and zap the cached db files to force a nonincremental run) - -$(GENERATED)/$(MakeDepsClass): $(MakeDepsSources) - @$(COMPILE.JAVAC) -classpath $(GAMMADIR)/src/share/tools/MakeDeps -d $(GENERATED) $(MakeDepsSources) - @echo Removing $(Incremental_Lists) to force regeneration. - @rm -f $(Incremental_Lists) - @$(CDG) echo >$(Cached_plat) - -# make incremental_lists, if cached files out of date, run makeDeps - -$(Incremental_Lists): $(Include_DBs) $(Plat_File) $(GENERATED)/$(MakeDepsClass) - $(CDG) cat $(Include_DBs) > includeDB - $(CDG) if [ ! -r incls ] ; then \ - mkdir incls ; \ - fi - $(CDG) $(MakeDeps) diffs UnixPlatform $(Cached_plat) $(Cached_db) $(Plat_File) includeDB $(MakeDepsOptions) - $(CDG) cp includeDB $(Cached_db) - $(CDG) cp $(Plat_File) $(Cached_plat) - -# symbolic target for command lines -lists: $(Incremental_Lists) - @: lists are now up to date +$(Cached_plat): $(Plat_File) + $(CDG) cp $(Plat_File) $(Cached_plat) # make AD files as necessary -ad_stuff: $(Incremental_Lists) $(adjust-mflags) +ad_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f adlc.make $(MFLAGS-adjusted) # generate JVMTI files from the spec -jvmti_stuff: $(Incremental_Lists) $(adjust-mflags) +jvmti_stuff: $(Cached_plat) $(adjust-mflags) @$(MAKE) -f jvmti.make $(MFLAGS-adjusted) # generate SA jar files and native header @@ -172,7 +117,6 @@ install: the_vm # this should force everything to be rebuilt clean: rm -f $(GENERATED)/*.class - $(MAKE) $(MFLAGS) $(GENERATED)/$(MakeDepsClass) $(MAKE) -f vm.make $(MFLAGS) clean # just in case it doesn't, this should do it diff --git a/hotspot/make/solaris/makefiles/vm.make b/hotspot/make/solaris/makefiles/vm.make index 7289c72f950..28673be141c 100644 --- a/hotspot/make/solaris/makefiles/vm.make +++ b/hotspot/make/solaris/makefiles/vm.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -35,23 +35,23 @@ default: build # Defs GENERATED = ../generated +DEP_DIR = $(GENERATED)/dependencies -# read a generated file defining the set of .o's and the .o .h dependencies -include $(GENERATED)/Dependencies +# reads the generated files defining the set of .o's and the .o .h dependencies +-include $(DEP_DIR)/*.d # read machine-specific adjustments (%%% should do this via buildtree.make?) include $(MAKEFILES_DIR)/$(BUILDARCH).make # set VPATH so make knows where to look for source files -# Src_Dirs is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm -# The incls directory contains generated header file lists for inclusion. +# Src_Dirs_V is everything in src/share/vm/*, plus the right os/*/vm and cpu/*/vm # The adfiles directory contains ad_.[ch]pp. # The jvmtifiles directory contains jvmti*.[ch]pp -Src_Dirs_V = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED)/incls -VPATH += $(Src_Dirs_V:%=%:) +Src_Dirs_V += $(GENERATED)/adfiles $(GENERATED)/jvmtifiles +VPATH += $(Src_Dirs_V:%=%:) # set INCLUDES for C preprocessor -Src_Dirs_I = $(GENERATED)/adfiles $(GENERATED)/jvmtifiles ${Src_Dirs} $(GENERATED) +Src_Dirs_I += $(GENERATED) INCLUDES += $(Src_Dirs_I:%=-I%) ifeq (${VERSION}, debug) @@ -135,6 +135,62 @@ JVM = jvm LIBJVM = lib$(JVM).so LIBJVM_G = lib$(JVM)$(G_SUFFIX).so +CORE_PATHS := $(shell find $(GAMMADIR)/src/share/vm/* -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)) +CORE_PATHS += $(GAMMADIR)/src/os/$(Platform_os_family)/vm +CORE_PATHS += $(GAMMADIR)/src/cpu/$(Platform_arch)/vm +CORE_PATHS += $(GAMMADIR)/src/os_cpu/$(Platform_os_arch)/vm +CORE_PATHS += $(GENERATED)/jvmtifiles + +COMPILER1_PATHS := $(GAMMADIR)/src/share/vm/c1 + +COMPILER2_PATHS := $(GAMMADIR)/src/share/vm/opto +COMPILER2_PATHS += $(GAMMADIR)/src/share/vm/libadt +COMPILER2_PATHS += $(GENERATED)/adfiles + +# Include dirs per type. +Src_Dirs/CORE := $(CORE_PATHS) +Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS) +Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS) +Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS) +Src_Dirs/ZERO := $(CORE_PATHS) +Src_Dirs/SHARK := $(CORE_PATHS) +Src_Dirs := $(Src_Dirs/$(TYPE)) + +COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\* +COMPILER1_SPECIFIC_FILES := c1_\* +SHARK_SPECIFIC_FILES := shark +ZERO_SPECIFIC_FILES := zero + +# Always exclude these. +Src_Files_EXCLUDE := dtrace jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp + +# Exclude per type. +Src_Files_EXCLUDE/CORE := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER1 := $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/COMPILER2 := $(COMPILER1_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/TIERED := $(ZERO_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) +Src_Files_EXCLUDE/ZERO := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(SHARK_SPECIFIC_FILES) ciTypeFlow.cpp +Src_Files_EXCLUDE/SHARK := $(COMPILER1_SPECIFIC_FILES) $(COMPILER2_SPECIFIC_FILES) $(ZERO_SPECIFIC_FILES) + +Src_Files_EXCLUDE += $(Src_Files_EXCLUDE/$(TYPE)) + +# Special handling of arch model. +ifeq ($(Platform_arch_model), x86_32) +Src_Files_EXCLUDE += \*x86_64\* +endif +ifeq ($(Platform_arch_model), x86_64) +Src_Files_EXCLUDE += \*x86_32\* +endif + +# Locate all source files in the given directory, excluding files in Src_Files_EXCLUDE. +define findsrc + $(notdir $(shell find $(1) \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name DUMMY $(addprefix -o -name ,$(Src_Files_EXCLUDE)) \) )) +endef + +Src_Files := $(foreach e,$(Src_Dirs),$(call findsrc,$(e))) + +Obj_Files = $(addsuffix .o,$(basename $(Src_Files))) + JVM_OBJ_FILES = $(Obj_Files) $(DTRACE_OBJS) vm_version.o: $(filter-out vm_version.o,$(JVM_OBJ_FILES)) @@ -205,7 +261,7 @@ include $(MAKEFILES_DIR)/saproc.make #---------------------------------------------------------------------- -build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) checkAndBuildSA dtraceCheck +build: $(LIBJVM) $(LAUNCHER) $(LIBJSIG) $(LIBJVM_DB) $(LIBJVM_DTRACE) $(BUILDLIBSAPROC) dtraceCheck install: install_jvm install_jsig install_saproc diff --git a/hotspot/make/windows/README b/hotspot/make/windows/README deleted file mode 100644 index 2f966374fab..00000000000 --- a/hotspot/make/windows/README +++ /dev/null @@ -1,212 +0,0 @@ -Copyright (c) 2007 Oracle and/or its affiliates. All rights reserved. -DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - -This code is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License version 2 only, as -published by the Free Software Foundation. - -This code is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -version 2 for more details (a copy is included in the LICENSE file that -accompanied this code). - -You should have received a copy of the GNU General Public License version -2 along with this work; if not, write to the Free Software Foundation, -Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - -Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -or visit www.oracle.com if you need additional information or have any -questions. - -________________________________________________________________________________ - -__Introduction__________________________________________________________________ - -This readme file should provide all the information needed to build -the HotSpot VM for Windows 95/Windows NT from its teamware workspace. -It is intended as a starting point for people who want to learn how -to work with the current HotSpot source workspace and who need to -build the VM locally. It is not intended as a tutorial for licensees. - -Last update: 03/28/05 - - -__Platform______________________________________________________________________ - -The VM builds under the following platforms: -- Windows NT 4.0 on Intel x486 or greater -- x486 PC (or greater), 32MByte or more - - -__Tools_________________________________________________________________________ - -For building/testing the following tools need to be available: -- Microsoft Visual C++ 6.0 (with nmake version 1.62.7022 or greater) -- MKS Toolkit 6.1 or greater - see: /net/reinstall/export/vol0/pc-archive/software/mks6.1 (NFS) - or: \\reinstall\pc-archive\software\mks6.1 (NT) - - -__JDK___________________________________________________________________________ - -The workspace works with the following version of the JDK: -(NOTE: these are out of date) -- JDK1.2FCS "V" build - see: /usr/local/java/jdk1.2/win32 - -and the following version(s) of HotJava: -- hjb1.1.4 -- hjb1.1.5 - see /usr/local/java/hjb1.1.x/win32 - - -__Environment variables_________________________________________________________ - -The following environment variables need to be set up for the IDE -build process. For batch builds these do not need to be set. - -HotSpotMksHome points to the (NFS or PC-local) directory where the MKS - executables (like sh.exe and grep.exe) are installed - -Optionally you may set the following variables in your environment and they -will be picked up by the create.bat script used to generate the vm.vcproj files. -See the section on building within MS Developer Studio for more details. - -HotSpotWorkSpace points to the (NFS) directory where the workspace is located -HotSpotBuildSpace points to the (PC-local) directory where the vm is built -HotSpotReleaseBinDest points to the (NFS or PC-local) directory where the product DLL is - written -HotSpotDebugBinDest points to the (NFS or PC-local) directory where the debug DLL is - written - -NOTE: For both batch and IDE builds, java and javac must be in your -PATH, and the versions found by default must work. (If this turns out -to be a problem, we can define HotSpotJava and HotSpotJavaC for -bootstrapping...) - -__Building the JVM from the command line________________________________________ - -1) choose a directory in which you want to build the vm - (the build process will create a subdirectory) - -2) To build the 'core' version (debug || optimized) - %HotSpotWorkSpace%\build\windows\build core %HotSpotWorkSpace% - To build the 'compiler2' version (debug || optimized) - %HotSpotWorkSpace%\build\windows\build compiler2 %HotSpotWorkSpace% - - where is a full path to a JDK in which bin/java and - bin/javac are present and working. - -3) If you have problems with building, first try: - vcvars32 (sets path for VC++) - -4) In addition to jvm.dll, the Serviceability Agent (SA) based JDI connector - and command line tools are built if dbgeng.h and dbgeng.lib - can be located, and BUILD_WIN_SA=1 is specified. We look for dbgeng.h here: - $(MSVCDIR)\PlatformSDK\Include - $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include - - The first directory is part of Visual Studio VC .NET 2003. - The second is used on Windows-amd64. - - -__Building the JVM from within MS Developer Studio______________________________ - -0) Set environment variables as described above - -1) Run the following script: - %HotSpotWorkSpace%\build\windows\create { } - where type is one of core, compiler1, compiler2. If you leave off the - " " part, the script expects to find their - values in the HotSpotWorkSpace, HotSpotBuildSpace, HotSpotReleaseBinDest, and HotSpotDebugBinDest environment - variables. The resulting vm.vcproj does not depend on these values in the environment. - - This will populate the build space with the appropriate makefiles - and run nmake in it. This builds and runs makedeps, which now - generates the appropriate vm.vcproj into the build space. It also - builds and runs adlc. - - To regenerate the .incl and .dsp files after changing the include - databases, just run nmake in the build space. - - The build process now relies on java and javac. For the IDE builds, - the full path to a JDK (in which bin/java and bin/javac are present - and working) can be specified either explicitly with the - ALT_BOOTDIR environment variable (like the JDK build process), via - the JDK build's default BOOTDIR environment variable, via JAVA_HOME, - or implicitly via the PATH. - - (Note that there are now many more command line options to MakeDeps - on the Windows platform than before. These have been bundled into - makefiles/makedeps.make, but it is still necessary to keep this in - sync with the batch makefiles, in vm/generated.) - - If you have problems with building (i.e,. finding nmake), first try: - vcvars32 (sets path for VC++) - -2) Double-click the vm.vcproj file in the %HotSpotBuildSpace% directory - to open MS Developer Studio. - -3) build desired or all versions: - menu Build -> Batch Build... -> Build (or Rebuild All) - -4) jvm.dll is in the %HotSpotReleaseBinDest% or %HotSpotDebugBinDest% directory - depending on which configuration you built (release or debug). - -Note: do not edit any of the files (especially the vm.vcproj file) in the -build space, since they are all either autogenerated or copied from -the work space. If necessary, modify the original Makefiles in -%HotSpotWorkSpace%\build\windows\projectfiles, or the shared -makedeps arguments in -%HotSpotWorkSpace%\build\windows\makefiles\makedeps.make. - -Note that it appears that some options set in the IDE (for example, -the default executable) show up not in the .dsp file, but in the .opt -file, so the automatic regeneration of the .dsp file should not -destroy the project settings. However, makedeps.make should be edited -to supply per-file compiler options. - -To build adlc from within the IDE for debugging purposes: - -1) in MS Developer Studio, open ADLCompiler.dsw: - menu File -> Open Workspace... - select & double-click ADLCompiler.dsw - -2) rebuild all (debug mode is enough) - menu Build -> Rebuild All (make sure Win32 Debug version is selected) - - -__Testing the VM________________________________________________________________ - -To test the VM using the Tonga Testsuite, use testlook. testlook is a very -simple testing framework on top of Tonga which allows us to use one (Tonga) -test file, that can be extended with attributes. - -1) copy %HotSpotWorkSpace%\test\testlook.bat onto PC (preferably - %HotSpotBuildSpace%\bin, which should ideally be in the path) - -2) run testlook or testlook help for details - -3) to run testlook you need to have Tonga mounted: - net use T: \\tapas\export1\psqe - - -__HotJava under HotSpot_________________________________________________________ - -To run HotJava, use the .bat file %HotSpotWorkSpace%\test\h.bat. Copy -it into %HotSpotBuildSpace%/ (which ideally is in the path) and run -HotJava: h java (e.g., h java_g -Xint). - - -__Preferred directory setup under Windows NT____________________________________ - -Within the HotSpot group we are using the following directory setup: - -D:\jdk1.2 - where we install the JDK - -The following drives are mounted for testing/putbacks/etc.: - -net use T: \\tapas\export1\psqe -net use Y: \\rschmidt\GammaBase -net use Z: \\animorphic\animorphic diff --git a/hotspot/make/windows/create.bat b/hotspot/make/windows/create.bat index 172f706f15b..f291a0c562d 100644 --- a/hotspot/make/windows/create.bat +++ b/hotspot/make/windows/create.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. +REM Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. REM REM This code is free software; you can redistribute it and/or modify it @@ -26,11 +26,8 @@ REM REM This is the interactive build setup script (as opposed to the batch REM build execution script). It creates $HotSpotBuildSpace if necessary, REM copies the appropriate files out of $HotSpotWorkSpace into it, and -REM builds and runs MakeDeps in it. This has the side-effect of creating +REM builds and runs ProjectCreator in it. This has the side-effect of creating REM the vm.vcproj file in the buildspace, which is then used in Visual C++. -REM -REM The generated project file depends upon the include databases. If -REM those are changed then MakeDeps is rerun. REM REM Since we don't have uname and we could be cross-compiling, @@ -158,13 +155,31 @@ echo BUILDARCH=%BUILDARCH% >> %HotSpotBuildSpace%\%%i\local.m echo Platform_arch=%Platform_arch% >> %HotSpotBuildSpace%\%%i\local.make echo Platform_arch_model=%Platform_arch_model% >> %HotSpotBuildSpace%\%%i\local.make -REM build config specific stuff - pushd %HotSpotBuildSpace%\%%i nmake /nologo popd + ) +pushd %HotSpotBuildSpace% + +echo # Generated file! > local.make +echo # Changing a variable below and then deleting %ProjectFile% will cause >> local.make +echo # %ProjectFile% to be regenerated with the new values. Changing the >> local.make +echo # version requires rerunning create.bat. >> local.make +echo. >> local.make +echo HOTSPOTWORKSPACE=%HotSpotWorkSpace% >> local.make +echo HOTSPOTBUILDSPACE=%HotSpotBuildSpace% >> local.make +echo HOTSPOTJDKDIST=%HotSpotJDKDist% >> local.make +echo ARCH=%ARCH% >> local.make +echo BUILDARCH=%BUILDARCH% >> local.make +echo Platform_arch=%Platform_arch% >> local.make +echo Platform_arch_model=%Platform_arch_model% >> local.make + +nmake /nologo /F %HotSpotWorkSpace%/make/windows/projectfiles/common/Makefile %HotSpotBuildSpace%/%ProjectFile% + +popd + goto end :usage @@ -173,14 +188,11 @@ echo. echo This is the interactive build setup script (as opposed to the batch echo build execution script). It creates HotSpotBuildSpace if necessary, echo copies the appropriate files out of HotSpotWorkSpace into it, and -echo builds and runs MakeDeps in it. This has the side-effect of creating +echo builds and runs ProjectCreator in it. This has the side-effect of creating echo the %ProjectFile% file in the build space, which is then used in Visual C++. echo The HotSpotJDKDist defines place where JVM binaries should be placed. echo Environment variable FORCE_MSC_VER allows to override MSVC version autodetection. echo. -echo The generated project file depends upon the include databases. If -echo those are changed then MakeDeps is rerun. -echo. echo NOTE that it is now NOT safe to modify any of the files in the build echo space, since they may be overwritten whenever this script is run or echo nmake is run in that directory. diff --git a/hotspot/make/windows/create_obj_files.sh b/hotspot/make/windows/create_obj_files.sh new file mode 100644 index 00000000000..61729a8ab7c --- /dev/null +++ b/hotspot/make/windows/create_obj_files.sh @@ -0,0 +1,124 @@ +# +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# + +set -e + +# Note that we currently do not have a way to set HotSpotMksHome in +# the batch build, but so far this has not seemed to be a problem. The +# reason this environment variable is necessary is that it seems that +# Windows truncates very long PATHs when executing shells like MKS's +# sh, and it has been found that sometimes `which sh` fails. + +if [ "x$HotSpotMksHome" != "x" ]; then + TOOL_DIR="$HotSpotMksHome" +else + # HotSpotMksHome is not set so use the directory that contains "sh". + # This works with both MKS and Cygwin. + SH=`which sh` + TOOL_DIR=`dirname "$SH"` +fi + +DIRNAME="$TOOL_DIR/dirname" +FIND="$TOOL_DIR/find" + +TYPE=$1 +Platform_arch=$2 +Platform_arch_model=$3 +Platform_os_family=windows +Platform_os_arch=windows_$Platform_arch + +WorkSpace=$4 +GENERATED=$5 + +BASE_PATHS="` $FIND ${WorkSpace}/src/share/vm ! -name vm -prune -type d \! \( -name adlc -o -name c1 -o -name gc_implementation -o -name opto -o -name shark -o -name libadt \)`" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/share/vm/gc_implementation/shared" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os/${Platform_os_family}/vm" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/cpu/${Platform_arch}/vm" +BASE_PATHS="${BASE_PATHS} ${WorkSpace}/src/os_cpu/${Platform_os_arch}/vm" +BASE_PATHS="${BASE_PATHS} ${GENERATED}/jvmtifiles" + +CORE_PATHS="${BASE_PATHS}" +# shared is already in BASE_PATHS. Should add vm/memory but that one is also in BASE_PATHS. +CORE_PATHS="${CORE_PATHS} `$FIND ${WorkSpace}/src/share/vm/gc_implementation ! -name gc_implementation -prune -type d \! -name shared`" + +COMPILER1_PATHS="${WorkSpace}/src/share/vm/c1" + +COMPILER2_PATHS="${WorkSpace}/src/share/vm/opto" +COMPILER2_PATHS="${COMPILER2_PATHS} ${WorkSpace}/src/share/vm/libadt" +COMPILER2_PATHS="${COMPILER2_PATHS} ${GENERATED}/adfiles" + +# Include dirs per type. +case "${TYPE}" in + "core") Src_Dirs="${CORE_PATHS}" ;; + "kernel") Src_Dirs="${BASE_PATHS} ${COMPILER1_PATHS}" ;; + "compiler1") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS}" ;; + "compiler2") Src_Dirs="${CORE_PATHS} ${COMPILER2_PATHS}" ;; + "tiered") Src_Dirs="${CORE_PATHS} ${COMPILER1_PATHS} ${COMPILER2_PATHS}" ;; + "zero") Src_Dirs="${CORE_PATHS}" ;; + "shark") Src_Dirs="${CORE_PATHS}" ;; +esac + +COMPILER2_SPECIFIC_FILES="opto libadt bcEscapeAnalyzer.cpp chaitin* c2_* runtime_*" +COMPILER1_SPECIFIC_FILES="c1_*" +SHARK_SPECIFIC_FILES="shark" +ZERO_SPECIFIC_FILES="zero" + +# These files need to be excluded when building the kernel target. +KERNEL_EXCLUDED_FILES="attachListener.cpp attachListener_windows.cpp dump.cpp dump_${Platform_arch_model}.cpp forte.cpp fprofiler.cpp heapDumper.cpp heapInspection.cpp jniCheck.cpp jvmtiCodeBlobEvents.cpp jvmtiExtensions.cpp jvmtiImpl.cpp jvmtiRawMonitor.cpp jvmtiTagMap.cpp jvmtiTrace.cpp restore.cpp serialize.cpp vmStructs.cpp g1MemoryPool.cpp psMemoryPool.cpp gcAdaptivePolicyCounters.cpp concurrentGCThread.cpp mutableNUMASpace.cpp allocationStats.cpp gSpaceCounters.cpp immutableSpace.cpp mutableSpace.cpp spaceCounters.cpp yieldingWorkgroup.cpp" + +# Always exclude these. +Src_Files_EXCLUDE="jsig.c jvmtiEnvRecommended.cpp jvmtiEnvStub.cpp" + +# Exclude per type. +case "${TYPE}" in + "core") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; + "kernel") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ${KERNEL_EXCLUDED_FILES} ciTypeFlow.cpp" ;; + "compiler1") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; + "compiler2") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;; + "tiered") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${ZERO_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES}" ;; + "zero") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${SHARK_SPECIFIC_FILES} ciTypeFlow.cpp" ;; + "shark") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} ${COMPILER1_SPECIFIC_FILES} ${COMPILER2_SPECIFIC_FILES} ${ZERO_SPECIFIC_FILES}" ;; +esac + +# Special handling of arch model. +case "${Platform_arch_model}" in + "x86_32") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_64*" ;; + "x86_64") Src_Files_EXCLUDE="${Src_Files_EXCLUDE} *x86_32*" ;; +esac + +function findsrc { + $FIND ${1} \( -name \*.c -o -name \*.cpp -o -name \*.s \) -a \! \( -name ${Src_Files_EXCLUDE// / -o -name } \) | sed 's/.*\/\(.*\)/\1/'; +} + +Src_Files= +for e in ${Src_Dirs}; do + Src_Files="${Src_Files}`findsrc ${e}` " +done + +Obj_Files= +for e in ${Src_Files}; do + Obj_Files="${Obj_Files}${e%\.[!.]*}.obj " +done + +echo Obj_Files=${Obj_Files} diff --git a/hotspot/make/windows/makefiles/adlc.make b/hotspot/make/windows/makefiles/adlc.make index c7519da4955..863ce07d3f7 100644 --- a/hotspot/make/windows/makefiles/adlc.make +++ b/hotspot/make/windows/makefiles/adlc.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -49,24 +49,13 @@ ADLCFLAGS=-q -T -U_LP64 CPP_FLAGS=$(CPP_FLAGS) /D _CRT_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_DEPRECATE CPP_INCLUDE_DIRS=\ - /I "..\generated" \ - /I "$(WorkSpace)\src\share\vm\compiler" \ - /I "$(WorkSpace)\src\share\vm\code" \ - /I "$(WorkSpace)\src\share\vm\interpreter" \ - /I "$(WorkSpace)\src\share\vm\classfile" \ - /I "$(WorkSpace)\src\share\vm\asm" \ - /I "$(WorkSpace)\src\share\vm\memory" \ - /I "$(WorkSpace)\src\share\vm\oops" \ - /I "$(WorkSpace)\src\share\vm\prims" \ - /I "$(WorkSpace)\src\share\vm\runtime" \ - /I "$(WorkSpace)\src\share\vm\utilities" \ - /I "$(WorkSpace)\src\share\vm\libadt" \ - /I "$(WorkSpace)\src\share\vm\opto" \ - /I "$(WorkSpace)\src\os\windows\vm" \ + /I "..\generated" \ + /I "$(WorkSpace)\src\share\vm" \ + /I "$(WorkSpace)\src\os\windows\vm" \ /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm" -# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_INCL -# and MakeDepsIDEOptions in makedeps.make. +# NOTE! If you add any files here, you must also update GENERATED_NAMES_IN_DIR +# and ProjectCreatorIDEOptions in projectcreator.make. GENERATED_NAMES=\ ad_$(Platform_arch_model).cpp \ ad_$(Platform_arch_model).hpp \ @@ -81,18 +70,18 @@ GENERATED_NAMES=\ dfa_$(Platform_arch_model).cpp # NOTE! This must be kept in sync with GENERATED_NAMES -GENERATED_NAMES_IN_INCL=\ - incls/ad_$(Platform_arch_model).cpp \ - incls/ad_$(Platform_arch_model).hpp \ - incls/ad_$(Platform_arch_model)_clone.cpp \ - incls/ad_$(Platform_arch_model)_expand.cpp \ - incls/ad_$(Platform_arch_model)_format.cpp \ - incls/ad_$(Platform_arch_model)_gen.cpp \ - incls/ad_$(Platform_arch_model)_misc.cpp \ - incls/ad_$(Platform_arch_model)_peephole.cpp \ - incls/ad_$(Platform_arch_model)_pipeline.cpp \ - incls/adGlobals_$(Platform_arch_model).hpp \ - incls/dfa_$(Platform_arch_model).cpp +GENERATED_NAMES_IN_DIR=\ + $(AdlcOutDir)\ad_$(Platform_arch_model).cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model).hpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_clone.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_expand.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_format.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_gen.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_misc.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_peephole.cpp \ + $(AdlcOutDir)\ad_$(Platform_arch_model)_pipeline.cpp \ + $(AdlcOutDir)\adGlobals_$(Platform_arch_model).hpp \ + $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp {$(WorkSpace)\src\share\vm\adlc}.cpp.obj:: $(CPP) $(CPP_FLAGS) $(EXH_FLAGS) $(CPP_INCLUDE_DIRS) /c $< @@ -110,10 +99,12 @@ adlc.exe: main.obj adlparse.obj archDesc.obj arena.obj dfa.obj dict2.obj filebuf $(MT) /manifest $@.manifest /outputresource:$@;#1 !endif -$(GENERATED_NAMES_IN_INCL): $(Platform_arch_model).ad adlc.exe includeDB.current +$(GENERATED_NAMES_IN_DIR): $(Platform_arch_model).ad adlc.exe rm -f $(GENERATED_NAMES) + if exist $(AdlcOutDir) rmdir /s /q $(AdlcOutDir) + mkdir $(AdlcOutDir) $(ADLC) $(ADLCFLAGS) $(Platform_arch_model).ad - mv $(GENERATED_NAMES) incls/ + mv $(GENERATED_NAMES) $(AdlcOutDir)/ $(Platform_arch_model).ad: $(WorkSpace)/src/cpu/$(Platform_arch)/vm/$(Platform_arch_model).ad $(WorkSpace)/src/os_cpu/windows_$(Platform_arch)/vm/windows_$(Platform_arch_model).ad rm -f $(Platform_arch_model).ad diff --git a/hotspot/make/windows/makefiles/debug.make b/hotspot/make/windows/makefiles/debug.make index 893a252d522..73f5a397fa3 100644 --- a/hotspot/make/windows/makefiles/debug.make +++ b/hotspot/make/windows/makefiles/debug.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,6 @@ CPP_FLAGS=$(CPP_FLAGS) $(DEBUG_OPT_OPTION) !include $(WorkSpace)/make/windows/makefiles/vm.make !include local.make -!include $(GENERATED)/Dependencies - HS_BUILD_ID=$(HS_BUILD_VER)-debug # Force resources to be rebuilt every time diff --git a/hotspot/make/windows/makefiles/fastdebug.make b/hotspot/make/windows/makefiles/fastdebug.make index 4b59010cbe6..a93c59cfc01 100644 --- a/hotspot/make/windows/makefiles/fastdebug.make +++ b/hotspot/make/windows/makefiles/fastdebug.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -38,8 +38,6 @@ CPP_FLAGS=$(CPP_FLAGS) $(FASTDEBUG_OPT_OPTION) !include $(WorkSpace)/make/windows/makefiles/vm.make !include local.make -!include $(GENERATED)/Dependencies - HS_BUILD_ID=$(HS_BUILD_VER)-fastdebug # Force resources to be rebuilt every time @@ -57,6 +55,5 @@ $(AOUT): $(Res_Files) $(Obj_Files) $(MT) /manifest $@.manifest /outputresource:$@;#2 !endif - !include $(WorkSpace)/make/windows/makefiles/shared.make !include $(WorkSpace)/make/windows/makefiles/sa.make diff --git a/hotspot/make/windows/makefiles/generated.make b/hotspot/make/windows/makefiles/generated.make index 47d3bd8b78b..904f12363b6 100644 --- a/hotspot/make/windows/makefiles/generated.make +++ b/hotspot/make/windows/makefiles/generated.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ # !include ../local.make -!include $(WorkSpace)/make/windows/makefiles/makedeps.make +!include $(WorkSpace)/make/windows/makefiles/projectcreator.make !include local.make # Pick up rules for building JVMTI (JSR-163) @@ -33,65 +33,21 @@ JvmtiOutDir=jvmtifiles # Pick up rules for building SA !include $(WorkSpace)/make/windows/makefiles/sa.make +AdlcOutDir=adfiles + !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") -default:: includeDB.current Dependencies incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles) +default:: $(AdlcOutDir)/ad_$(Platform_arch_model).cpp $(AdlcOutDir)/dfa_$(Platform_arch_model).cpp $(JvmtiGeneratedFiles) buildobjfiles !else -default:: includeDB.current Dependencies $(JvmtiGeneratedFiles) -!endif - -# core plus serial gc -IncludeDBs_base=$(WorkSpace)/src/share/vm/includeDB_core \ - $(WorkSpace)/src/share/vm/includeDB_jvmti \ - $(WorkSpace)/src/share/vm/includeDB_gc \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_serial - -# parallel gc -IncludeDBs_gc= $(WorkSpace)/src/share/vm/includeDB_gc_parallel \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_shared \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_parNew \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(WorkSpace)/src/share/vm/gc_implementation/includeDB_gc_g1 - -IncludeDBs_core=$(IncludeDBs_base) $(IncludeDBs_gc) \ - $(WorkSpace)/src/share/vm/includeDB_features - -!if "$(Variant)" == "core" -IncludeDBs=$(IncludeDBs_core) -!endif - -!if "$(Variant)" == "kernel" -IncludeDBs=$(IncludeDBs_base) $(WorkSpace)/src/share/vm/includeDB_compiler1 -!endif - -!if "$(Variant)" == "compiler1" -IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1 -!endif - - -!if "$(Variant)" == "compiler2" -IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler2 -!endif - -!if "$(Variant)" == "tiered" -IncludeDBs=$(IncludeDBs_core) $(WorkSpace)/src/share/vm/includeDB_compiler1 \ - $(WorkSpace)/src/share/vm/includeDB_compiler2 +default:: $(JvmtiGeneratedFiles) buildobjfiles !endif -# Note we don't generate a Visual C++ project file using MakeDeps for -# the batch build. -includeDB.current Dependencies: classes/MakeDeps.class $(IncludeDBs) - cat $(IncludeDBs) > includeDB - if exist incls rmdir /s /q incls - mkdir incls - $(RUN_JAVA) -Djava.class.path=classes MakeDeps WinGammaPlatform$(VcVersion) $(WorkSpace)/make/windows/platform_$(BUILDARCH) includeDB $(MakeDepsOptions) - rm -f includeDB.current - cp includeDB includeDB.current +buildobjfiles: + @ sh $(WorkSpace)/make/windows/create_obj_files.sh $(Variant) $(Platform_arch) $(Platform_arch_model) $(WorkSpace) . > objfiles.make -classes/MakeDeps.class: $(MakeDepsSources) +classes/ProjectCreator.class: $(ProjectCreatorSources) if exist classes rmdir /s /q classes mkdir classes - $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\MakeDeps -d classes $(MakeDepsSources) + $(COMPILE_JAVAC) -classpath $(WorkSpace)\src\share\tools\ProjectCreator -d classes $(ProjectCreatorSources) !if ("$(Variant)" == "compiler2") || ("$(Variant)" == "tiered") diff --git a/hotspot/make/windows/makefiles/makedeps.make b/hotspot/make/windows/makefiles/makedeps.make deleted file mode 100644 index a25d3a18708..00000000000 --- a/hotspot/make/windows/makefiles/makedeps.make +++ /dev/null @@ -1,177 +0,0 @@ -# -# Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# This code is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 only, as -# published by the Free Software Foundation. -# -# This code is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# version 2 for more details (a copy is included in the LICENSE file that -# accompanied this code). -# -# You should have received a copy of the GNU General Public License version -# 2 along with this work; if not, write to the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -# or visit www.oracle.com if you need additional information or have any -# questions. -# -# - -!include $(WorkSpace)/make/windows/makefiles/rules.make - -# This is used externally by both batch and IDE builds, so can't -# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE, -# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables. -# -# NOTE: unfortunately the MakeDepsSources list must be kept -# synchronized between this and the Solaris version -# (make/solaris/makefiles/makedeps.make). - -MakeDepsSources=\ - $(WorkSpace)\src\share\tools\MakeDeps\Database.java \ - $(WorkSpace)\src\share\tools\MakeDeps\DirectoryTree.java \ - $(WorkSpace)\src\share\tools\MakeDeps\DirectoryTreeNode.java \ - $(WorkSpace)\src\share\tools\MakeDeps\FileFormatException.java \ - $(WorkSpace)\src\share\tools\MakeDeps\FileList.java \ - $(WorkSpace)\src\share\tools\MakeDeps\FileName.java \ - $(WorkSpace)\src\share\tools\MakeDeps\Macro.java \ - $(WorkSpace)\src\share\tools\MakeDeps\MacroDefinitions.java \ - $(WorkSpace)\src\share\tools\MakeDeps\MakeDeps.java \ - $(WorkSpace)\src\share\tools\MakeDeps\MetroWerksMacPlatform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\Platform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\UnixPlatform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatform.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC6.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC7.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC8.java \ - $(WorkSpace)\src\share\tools\MakeDeps\WinGammaPlatformVC9.java \ - $(WorkSpace)\src\share\tools\MakeDeps\Util.java \ - $(WorkSpace)\src\share\tools\MakeDeps\BuildConfig.java \ - $(WorkSpace)\src\share\tools\MakeDeps\ArgsParser.java - -# This is only used internally -MakeDepsIncludesPRIVATE=\ - -relativeInclude src\share\vm\c1 \ - -relativeInclude src\share\vm\compiler \ - -relativeInclude src\share\vm\code \ - -relativeInclude src\share\vm\interpreter \ - -relativeInclude src\share\vm\ci \ - -relativeInclude src\share\vm\classfile \ - -relativeInclude src\share\vm\gc_implementation\parallelScavenge \ - -relativeInclude src\share\vm\gc_implementation\shared \ - -relativeInclude src\share\vm\gc_implementation\parNew \ - -relativeInclude src\share\vm\gc_implementation\concurrentMarkSweep \ - -relativeInclude src\share\vm\gc_implementation\g1 \ - -relativeInclude src\share\vm\gc_interface \ - -relativeInclude src\share\vm\asm \ - -relativeInclude src\share\vm\memory \ - -relativeInclude src\share\vm\oops \ - -relativeInclude src\share\vm\prims \ - -relativeInclude src\share\vm\runtime \ - -relativeInclude src\share\vm\services \ - -relativeInclude src\share\vm\utilities \ - -relativeInclude src\share\vm\libadt \ - -relativeInclude src\share\vm\opto \ - -relativeInclude src\os\windows\vm \ - -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \ - -relativeInclude src\cpu\$(Platform_arch)\vm - -# This is referenced externally by both the IDE and batch builds -MakeDepsOptions= - -# This is used externally, but only by the IDE builds, so we can -# reference environment variables which aren't defined in the batch -# build process. - -MakeDepsIDEOptions = \ - -useToGeneratePch java.cpp \ - -disablePch os_windows.cpp \ - -disablePch os_windows_$(Platform_arch).cpp \ - -disablePch osThread_windows.cpp \ - -disablePch bytecodeInterpreter.cpp \ - -disablePch bytecodeInterpreterWithChecks.cpp \ - -disablePch getThread_windows_$(Platform_arch).cpp \ - -disablePch_compiler2 opcodes.cpp - -# Common options for the IDE builds for core, c1, and c2 -MakeDepsIDEOptions=\ - $(MakeDepsIDEOptions) \ - -sourceBase $(HOTSPOTWORKSPACE) \ - -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \ - -startAt src \ - -compiler $(VcVersion) \ - -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \ - -jdkTargetRoot $(HOTSPOTJDKDIST) \ - -define ALIGN_STACK_FRAMES \ - -define VM_LITTLE_ENDIAN \ - -additionalFile includeDB_compiler1 \ - -additionalFile includeDB_compiler2 \ - -additionalFile includeDB_core \ - -additionalFile includeDB_features \ - -additionalFile includeDB_jvmti \ - -additionalFile includeDB_gc \ - -additionalFile includeDB_gc_parallel \ - -additionalFile includeDB_gc_parallelScavenge \ - -additionalFile includeDB_gc_concurrentMarkSweep \ - -additionalFile includeDB_gc_g1 \ - -additionalFile includeDB_gc_parNew \ - -additionalFile includeDB_gc_shared \ - -additionalFile includeDB_gc_serial \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)\%f\%b vm.def \ - -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \ - $(MakeDepsIncludesPRIVATE) - -# Add in build-specific options -!if "$(BUILDARCH)" == "i486" -MakeDepsIDEOptions=$(MakeDepsIDEOptions) -define IA32 -!endif - -################################################## -# JKERNEL specific options -################################################## -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -define_kernel KERNEL \ - -################################################## -# Client(C1) compiler specific options -################################################## -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -define_compiler1 COMPILER1 \ - -################################################## -# Server(C2) compiler specific options -################################################## -#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make. -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -define_compiler2 COMPILER2 \ - -absoluteInclude_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls \ - -additionalFile_compiler2 $(Platform_arch_model).ad \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model).cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model).hpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_clone.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_expand.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_format.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_gen.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_misc.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_peephole.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls ad_$(Platform_arch_model)_pipeline.cpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls adGlobals_$(Platform_arch_model).hpp \ - -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/incls dfa_$(Platform_arch_model).cpp - -# Add in the jvmti (JSR-163) options -# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated -# so the programmer can diff it with jvmtiEnv.cpp to be sure the -# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java). -# If so, they would then check it in as a new version of jvmtiEnv.cpp. -MakeDepsIDEOptions=$(MakeDepsIDEOptions) \ - -absoluteInclude $(HOTSPOTBUILDSPACE)/jvmtifiles \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnv.hpp \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnter.cpp \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmtiEnterTrace.cpp \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles jvmti.h \ - -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/jvmtifiles bytecodeInterpreterWithChecks.cpp diff --git a/hotspot/make/windows/makefiles/product.make b/hotspot/make/windows/makefiles/product.make index 537791e6338..73c01536b12 100644 --- a/hotspot/make/windows/makefiles/product.make +++ b/hotspot/make/windows/makefiles/product.make @@ -1,5 +1,5 @@ # -# Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -41,8 +41,6 @@ RC_FLAGS=$(RC_FLAGS) /D "NDEBUG" !include $(WorkSpace)/make/windows/makefiles/vm.make !include local.make -!include $(GENERATED)/Dependencies - HS_BUILD_ID=$(HS_BUILD_VER) # Force resources to be rebuilt every time diff --git a/hotspot/make/windows/makefiles/projectcreator.make b/hotspot/make/windows/makefiles/projectcreator.make new file mode 100644 index 00000000000..608cf804d42 --- /dev/null +++ b/hotspot/make/windows/makefiles/projectcreator.make @@ -0,0 +1,234 @@ +# +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# +# + +!include $(WorkSpace)/make/windows/makefiles/rules.make + +# This is used externally by both batch and IDE builds, so can't +# reference any of the HOTSPOTWORKSPACE, HOTSPOTBUILDSPACE, +# HOTSPOTRELEASEBINDEST, or HOTSPOTDEBUGBINDEST environment variables. +# +# NOTE: unfortunately the ProjectCreatorSources list must be kept +# synchronized between this and the Solaris version +# (make/solaris/makefiles/projectcreator.make). + +ProjectCreatorSources=\ + $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTree.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\DirectoryTreeNode.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\FileFormatException.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\Macro.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\MacroDefinitions.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\ProjectCreator.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatform.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC6.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC7.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC8.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\WinGammaPlatformVC9.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\Util.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\BuildConfig.java \ + $(WorkSpace)\src\share\tools\ProjectCreator\ArgsParser.java + +# This is only used internally +ProjectCreatorIncludesPRIVATE=\ + -relativeInclude src\share\vm \ + -relativeInclude src\share\vm\prims \ + -relativeInclude src\os\windows\vm \ + -relativeInclude src\os_cpu\windows_$(Platform_arch)\vm \ + -relativeInclude src\cpu\$(Platform_arch)\vm \ + -absoluteInclude $(HOTSPOTBUILDSPACE)/%f/generated \ + -ignorePath $(HOTSPOTBUILDSPACE)/%f/generated \ + -ignorePath src\share\vm\adlc \ + -ignorePath src\share\vm\shark + +# This is referenced externally by both the IDE and batch builds +ProjectCreatorOptions= + +# This is used externally, but only by the IDE builds, so we can +# reference environment variables which aren't defined in the batch +# build process. + +ProjectCreatorIDEOptions = \ + -useToGeneratePch java.cpp \ + -disablePch os_windows.cpp \ + -disablePch os_windows_$(Platform_arch).cpp \ + -disablePch osThread_windows.cpp \ + -disablePch bytecodeInterpreter.cpp \ + -disablePch bytecodeInterpreterWithChecks.cpp \ + -disablePch getThread_windows_$(Platform_arch).cpp \ + -disablePch_compiler2 opcodes.cpp + +# Common options for the IDE builds for core, c1, and c2 +ProjectCreatorIDEOptions=\ + $(ProjectCreatorIDEOptions) \ + -sourceBase $(HOTSPOTWORKSPACE) \ + -buildBase $(HOTSPOTBUILDSPACE)\%f\%b \ + -startAt src \ + -compiler $(VcVersion) \ + -projectFileName $(HOTSPOTBUILDSPACE)\$(ProjectFile) \ + -jdkTargetRoot $(HOTSPOTJDKDIST) \ + -define ALIGN_STACK_FRAMES \ + -define VM_LITTLE_ENDIAN \ + -prelink "" "Generating vm.def..." "cd $(HOTSPOTBUILDSPACE)\%f\%b set HOTSPOTMKSHOME=$(HOTSPOTMKSHOME) $(HOTSPOTMKSHOME)\sh $(HOTSPOTWORKSPACE)\make\windows\build_vm_def.sh $(LINK_VER)" \ + -ignoreFile jsig.c \ + -ignoreFile jvmtiEnvRecommended.cpp \ + -ignoreFile jvmtiEnvStub.cpp \ + -ignoreFile globalDefinitions_gcc.hpp \ + -ignoreFile globalDefinitions_sparcWorks.hpp \ + -ignoreFile version.rc \ + -ignoreFile Xusage.txt \ + -define TARGET_ARCH_x86 \ + -define TARGET_OS_ARCH_windows_x86 \ + -define TARGET_OS_FAMILY_windows \ + -define TARGET_COMPILER_visCPP \ + $(ProjectCreatorIncludesPRIVATE) + +# Add in build-specific options +!if "$(BUILDARCH)" == "i486" +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define IA32 \ + -ignorePath x86_64 \ + -define TARGET_ARCH_MODEL_x86_32 +!else +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -ignorePath x86_32 \ + -define TARGET_ARCH_MODEL_x86_64 +!endif + +ProjectCreatorIDEOptionsIgnoreCompiler1=\ + -ignorePath_TARGET c1_ + +ProjectCreatorIDEOptionsIgnoreCompiler2=\ + -ignorePath_TARGET src/share/vm/opto \ + -ignorePath_TARGET src/share/vm/libadt \ + -ignorePath_TARGET adfiles \ + -ignoreFile_TARGET bcEscapeAnalyzer.cpp \ + -ignoreFile_TARGET bcEscapeAnalyzer.hpp \ + -ignorePath_TARGET chaitin \ + -ignorePath_TARGET c2_ \ + -ignorePath_TARGET runtime_ \ + -ignoreFile_TARGET ciTypeFlow.cpp \ + -ignoreFile_TARGET ciTypeFlow.hpp \ + -ignoreFile_TARGET $(Platform_arch_model).ad + +################################################## +# Without compiler(core) specific options +################################################## +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ +$(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=core) \ +$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=core) + +################################################## +# JKERNEL specific options +################################################## +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define_kernel KERNEL \ +$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=kernel) \ + -ignorePath_kernel src/share/vm/gc_implementation/parallelScavenge \ + -ignorePath_kernel src/share/vm/gc_implementation/parNew \ + -ignorePath_kernel src/share/vm/gc_implementation/concurrentMarkSweep \ + -ignorePath_kernel src/share/vm/gc_implementation/g1 \ + -ignoreFile_kernel attachListener.cpp \ + -ignoreFile_kernel attachListener_windows.cpp \ + -ignoreFile_kernel dump.cpp \ + -ignoreFile_kernel dump_$(Platform_arch_model).cpp \ + -ignoreFile_kernel forte.cpp \ + -ignoreFile_kernel fprofiler.cpp \ + -ignoreFile_kernel heapDumper.cpp \ + -ignoreFile_kernel heapInspection.cpp \ + -ignoreFile_kernel jniCheck.cpp \ + -ignoreFile_kernel jvmtiCodeBlobEvents.cpp \ + -ignoreFile_kernel jvmtiExtensions.cpp \ + -ignoreFile_kernel jvmtiImpl.cpp \ + -ignoreFile_kernel jvmtiRawMonitor.cpp \ + -ignoreFile_kernel jvmtiTagMap.cpp \ + -ignoreFile_kernel jvmtiTrace.cpp \ + -ignoreFile_kernel jvmtiTrace.hpp \ + -ignoreFile_kernel restore.cpp \ + -ignoreFile_kernel serialize.cpp \ + -ignoreFile_kernel vmStructs.cpp \ + -ignoreFile_kernel g1MemoryPool.cpp \ + -ignoreFile_kernel g1MemoryPool.hpp \ + -ignoreFile_kernel psMemoryPool.cpp \ + -ignoreFile_kernel psMemoryPool.hpp \ + -ignoreFile_kernel gcAdaptivePolicyCounters.cpp \ + -ignoreFile_kernel concurrentGCThread.cpp \ + -ignoreFile_kernel mutableNUMASpace.cpp \ + -ignoreFile_kernel ciTypeFlow.cpp \ + -ignoreFile_kernel ciTypeFlow.hpp \ + -ignoreFile_kernel oop.pcgc.inline.hpp \ + -ignoreFile_kernel oop.psgc.inline.hpp \ + -ignoreFile_kernel allocationStats.cpp \ + -ignoreFile_kernel allocationStats.hpp \ + -ignoreFile_kernel concurrentGCThread.hpp \ + -ignoreFile_kernel gSpaceCounters.cpp \ + -ignoreFile_kernel gSpaceCounters.hpp \ + -ignoreFile_kernel gcAdaptivePolicyCounters.hpp \ + -ignoreFile_kernel immutableSpace.cpp \ + -ignoreFile_kernel mutableNUMASpace.hpp \ + -ignoreFile_kernel mutableSpace.cpp \ + -ignoreFile_kernel spaceCounters.cpp \ + -ignoreFile_kernel spaceCounters.hpp \ + -ignoreFile_kernel yieldingWorkgroup.cpp \ + -ignoreFile_kernel yieldingWorkgroup.hpp \ + -ignorePath_kernel vmStructs_ \ + -ignoreFile_kernel $(Platform_arch_model).ad \ + -additionalFile_kernel gcTaskManager.hpp + +################################################## +# Client(C1) compiler specific options +################################################## +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define_compiler1 COMPILER1 \ +$(ProjectCreatorIDEOptionsIgnoreCompiler2:TARGET=compiler1) + +################################################## +# Server(C2) compiler specific options +################################################## +#NOTE! This list must be kept in sync with GENERATED_NAMES in adlc.make. +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -define_compiler2 COMPILER2 \ + -additionalFile_compiler2 $(Platform_arch_model).ad \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model).hpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_clone.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_expand.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_format.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_gen.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_misc.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_peephole.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles ad_$(Platform_arch_model)_pipeline.cpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles adGlobals_$(Platform_arch_model).hpp \ + -additionalGeneratedFile_compiler2 $(HOTSPOTBUILDSPACE)/%f/generated/adfiles dfa_$(Platform_arch_model).cpp \ + $(ProjectCreatorIDEOptionsIgnoreCompiler1:TARGET=compiler2) + +# Add in the jvmti (JSR-163) options +# NOTE: do not pull in jvmtiEnvRecommended.cpp. This file is generated +# so the programmer can diff it with jvmtiEnv.cpp to be sure the +# code merge was done correctly (@see jvmti.make and jvmtiEnvFill.java). +# If so, they would then check it in as a new version of jvmtiEnv.cpp. +ProjectCreatorIDEOptions=$(ProjectCreatorIDEOptions) \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnv.hpp \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnter.cpp \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmtiEnterTrace.cpp \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles jvmti.h \ + -additionalGeneratedFile $(HOTSPOTBUILDSPACE)/%f/generated/jvmtifiles bytecodeInterpreterWithChecks.cpp diff --git a/hotspot/make/windows/makefiles/vm.make b/hotspot/make/windows/makefiles/vm.make index 0f4cd002ca1..fb82e9c7613 100644 --- a/hotspot/make/windows/makefiles/vm.make +++ b/hotspot/make/windows/makefiles/vm.make @@ -1,5 +1,5 @@ # -# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ # Resource file containing VERSIONINFO Res_Files=.\version.res +!include ..\generated\objfiles.make + !ifdef RELEASE !ifdef DEVELOP CPP_FLAGS=$(CPP_FLAGS) /D "DEBUG" @@ -77,6 +79,14 @@ CPP_FLAGS=$(CPP_FLAGS) /D "VM_LITTLE_ENDIAN" # Define that so jni.h is on correct side CPP_FLAGS=$(CPP_FLAGS) /D "_JNI_IMPLEMENTATION_" +# Used for platform dispatching +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_FAMILY_windows +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_$(Platform_arch) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_ARCH_MODEL_$(Platform_arch_model) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_windows_$(Platform_arch) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_OS_ARCH_MODEL_windows_$(Platform_arch_model) +CPP_FLAGS=$(CPP_FLAGS) /D TARGET_COMPILER_visCPP + !if "$(BUILDARCH)" == "ia64" STACK_SIZE="/STACK:1048576,262144" !else @@ -111,37 +121,18 @@ LINK_FLAGS=$(LINK_FLAGS) $(STACK_SIZE) /subsystem:windows /dll /base:0x8000000 \ /export:JVM_InitAgentProperties CPP_INCLUDE_DIRS=\ - /I "..\generated" \ - /I "..\generated\jvmtifiles" \ - /I "$(WorkSpace)\src\share\vm\c1" \ - /I "$(WorkSpace)\src\share\vm\compiler" \ - /I "$(WorkSpace)\src\share\vm\code" \ - /I "$(WorkSpace)\src\share\vm\interpreter" \ - /I "$(WorkSpace)\src\share\vm\ci" \ - /I "$(WorkSpace)\src\share\vm\classfile" \ - /I "$(WorkSpace)\src\share\vm\gc_implementation\parallelScavenge"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\shared"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\parNew"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\concurrentMarkSweep"\ - /I "$(WorkSpace)\src\share\vm\gc_implementation\g1"\ - /I "$(WorkSpace)\src\share\vm\gc_interface"\ - /I "$(WorkSpace)\src\share\vm\asm" \ - /I "$(WorkSpace)\src\share\vm\memory" \ - /I "$(WorkSpace)\src\share\vm\oops" \ - /I "$(WorkSpace)\src\share\vm\prims" \ - /I "$(WorkSpace)\src\share\vm\runtime" \ - /I "$(WorkSpace)\src\share\vm\services" \ - /I "$(WorkSpace)\src\share\vm\utilities" \ - /I "$(WorkSpace)\src\share\vm\libadt" \ - /I "$(WorkSpace)\src\share\vm\opto" \ - /I "$(WorkSpace)\src\os\windows\vm" \ + /I "..\generated" \ + /I "$(WorkSpace)\src\share\vm" \ + /I "$(WorkSpace)\src\share\vm\prims" \ + /I "$(WorkSpace)\src\os\windows\vm" \ /I "$(WorkSpace)\src\os_cpu\windows_$(Platform_arch)\vm" \ /I "$(WorkSpace)\src\cpu\$(Platform_arch)\vm" -CPP_USE_PCH=/Fp"vm.pch" /Yu"incls/_precompiled.incl" +CPP_USE_PCH=/Fp"vm.pch" /Yu"precompiled.hpp" # Where to find the source code for the virtual machine -VM_PATH=../generated/incls +VM_PATH=../generated +VM_PATH=$(VM_PATH);../generated/adfiles VM_PATH=$(VM_PATH);../generated/jvmtifiles VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/c1 VM_PATH=$(VM_PATH);$(WorkSpace)/src/share/vm/compiler @@ -280,11 +271,14 @@ bytecodeInterpreterWithChecks.obj: ..\generated\jvmtifiles\bytecodeInterpreterWi {..\generated\incls}.cpp.obj:: $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< +{..\generated\adfiles}.cpp.obj:: + $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< + {..\generated\jvmtifiles}.cpp.obj:: $(CPP) $(CPP_FLAGS) $(CPP_USE_PCH) /c $< default:: _build_pch_file.obj: - @echo #include "incls/_precompiled.incl" > ../generated/_build_pch_file.cpp - $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"incls/_precompiled.incl" /c ../generated/_build_pch_file.cpp + @echo #include "precompiled.hpp" > ../generated/_build_pch_file.cpp + $(CPP) $(CPP_FLAGS) /Fp"vm.pch" /Yc"precompiled.hpp" /c ../generated/_build_pch_file.cpp diff --git a/hotspot/make/windows/projectfiles/common/Makefile b/hotspot/make/windows/projectfiles/common/Makefile index 038cb280b2f..3d9ae901105 100644 --- a/hotspot/make/windows/projectfiles/common/Makefile +++ b/hotspot/make/windows/projectfiles/common/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,8 @@ # # +!include local.make + WorkSpace=$(HOTSPOTWORKSPACE) !ifdef ALT_BOOTDIR @@ -36,70 +38,25 @@ BootStrapDir=$(JAVA_HOME) !endif !endif -!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/makedeps.make +!include $(HOTSPOTWORKSPACE)/make/windows/makefiles/projectcreator.make # Pick up rules for building JVMTI (JSR-163) -JvmtiOutDir=$(HOTSPOTBUILDSPACE)\jvmtifiles +JvmtiOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\jvmtifiles !include $(HOTSPOTWORKSPACE)/make/windows/makefiles/jvmti.make Platform=$(HOTSPOTWORKSPACE)/make/windows/platform_$(BUILDARCH) -default:: $(AdditionalTargets) $(JvmtiGeneratedFiles) - -IncludeDBs_base=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_core \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_jvmti \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_serial - -# Parallel gc files -IncludeDBs_gc=$(HOTSPOTWORKSPACE)/src/share/vm/includeDB_gc_parallel \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_shared \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parNew \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep \ - $(HOTSPOTWORKSPACE)/src/share/vm/gc_implementation/includeDB_gc_g1 - - -IncludeDBs_kernel =$(IncludeDBs_base) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 - -IncludeDBs_core =$(IncludeDBs_base) $(IncludeDBs_gc) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_features - -IncludeDBs_compiler1=$(IncludeDBs_core) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 - -IncludeDBs_compiler2=$(IncludeDBs_core) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2 - -IncludeDBs_tiered=$(IncludeDBs_core) \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler1 \ - $(HOTSPOTWORKSPACE)/src/share/vm/includeDB_compiler2 - - -!if "$(Variant)" == "compiler1" -IncludeDBs = $(IncludeDBs_compiler1) -!endif - !if "$(Variant)" == "compiler2" -IncludeDBs = $(IncludeDBs_compiler2) # Pick up rules for building adlc !include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make !endif !if "$(Variant)" == "tiered" -IncludeDBs = $(IncludeDBs_tiered) # Pick up rules for building adlc !include $(HOTSPOTWORKSPACE)/make/windows/makefiles/adlc.make !endif -!if "$(Variant)" == "core" -IncludeDBs = $(IncludeDBs_core) -!endif - -!if "$(Variant)" == "kernel" -IncludeDBs = $(IncludeDBs_kernel) -!endif +default:: $(AdditionalTargets) $(JvmtiGeneratedFiles) !include $(HOTSPOTWORKSPACE)/make/hotspot_version @@ -130,55 +87,22 @@ HOTSPOT_VM_DISTRO="OpenJDK" !endif !endif -MakeDepsIDEOptions = $(MakeDepsIDEOptions) \ - -includeDB_kernel $(HOTSPOTBUILDSPACE)\includeDB_kernel \ - -includeDB_core $(HOTSPOTBUILDSPACE)\includeDB_core \ - -includeDB_compiler1 $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \ - -includeDB_compiler2 $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \ - -includeDB_tiered $(HOTSPOTBUILDSPACE)\includeDB_tiered \ +ProjectCreatorIDEOptions = $(ProjectCreatorIDEOptions) \ -platform $(Platform) \ -define HOTSPOT_RELEASE_VERSION=\\\"$(HOTSPOT_RELEASE_VERSION)\\\" \ -define JRE_RELEASE_VERSION=\\\"$(JRE_RELEASE_VERSION)\\\" \ -define HOTSPOT_VM_DISTRO=\\\"$(HOTSPOT_VM_DISTRO)\\\" -incls: - @mkdir incls - -includeDB.current $(ProjectFile) Dependencies: local.make $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class \ - $(IncludeDBs) incls - @rm -f includeDB $(HOTSPOTBUILDSPACE)\includeDB_kernel \ - $(HOTSPOTBUILDSPACE)\includeDB_core \ - $(HOTSPOTBUILDSPACE)\includeDB_compiler1 \ - $(HOTSPOTBUILDSPACE)\includeDB_compiler2 \ - $(HOTSPOTBUILDSPACE)\includeDB_tiered - @cat $(IncludeDBs_kernel) > $(HOTSPOTBUILDSPACE)\includeDB_kernel - @cat $(IncludeDBs_core) > $(HOTSPOTBUILDSPACE)\includeDB_core - @cat $(IncludeDBs_compiler1) > $(HOTSPOTBUILDSPACE)\includeDB_compiler1 - @cat $(IncludeDBs_compiler2) > $(HOTSPOTBUILDSPACE)\includeDB_compiler2 - @cat $(IncludeDBs_tiered) > $(HOTSPOTBUILDSPACE)\includeDB_tiered - @echo java.cpp jni.h > includeDB - @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps diffs WinGammaPlatform$(VcVersion) \ - $(Platform) includeDB.current $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions) - @rm -f includeDB.current - @cp includeDB includeDB.current - -lists: $(HOTSPOTBUILDSPACE)/classes/MakeDeps.class FORCE - @if exist incls rmdir /s /q incls - @rm -f includeDB - @cat $(IncludeDBs) > includeDB - @mkdir incls - @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes MakeDeps WinGammaPlatform$(VcVersion) \ - $(Platform) includeDB $(MakeDepsOptions) $(MakeDepsIDEOptions) - @rm -f includeDB.current - @cp includeDB includeDB.current +$(HOTSPOTBUILDSPACE)/$(ProjectFile): local.make $(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class + @$(RUN_JAVA) -Djava.class.path=$(HOTSPOTBUILDSPACE)/classes ProjectCreator WinGammaPlatform$(VcVersion) $(ProjectCreatorIDEOptions) clean: - @rm -rf incls $(HOTSPOTBUILDSPACE)/classes - @rm -f includeDB includeDB.current $(ProjectFile) Dependencies + @rm -rf $(HOTSPOTBUILDSPACE)/classes + @rm -r ../$(ProjectFile) -$(HOTSPOTBUILDSPACE)/classes/MakeDeps.class: $(MakeDepsSources) +$(HOTSPOTBUILDSPACE)/classes/ProjectCreator.class: $(ProjectCreatorSources) @if exist $(HOTSPOTBUILDSPACE)\classes rmdir /s /q $(HOTSPOTBUILDSPACE)\classes @mkdir $(HOTSPOTBUILDSPACE)\classes - @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\MakeDeps -d $(HOTSPOTBUILDSPACE)/classes $(MakeDepsSources) + @$(COMPILE_JAVAC) -classpath $(HOTSPOTWORKSPACE)\src\share\tools\ProjectCreator -d $(HOTSPOTBUILDSPACE)/classes $(ProjectCreatorSources) FORCE: diff --git a/hotspot/make/windows/projectfiles/compiler2/Makefile b/hotspot/make/windows/projectfiles/compiler2/Makefile index 49f96eb7f11..1380b489487 100644 --- a/hotspot/make/windows/projectfiles/compiler2/Makefile +++ b/hotspot/make/windows/projectfiles/compiler2/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ Variant=compiler2 !include local.make -AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp +AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles +AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp !include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile diff --git a/hotspot/make/windows/projectfiles/kernel/Makefile b/hotspot/make/windows/projectfiles/kernel/Makefile index e18305a67b3..ae89a2e77c6 100644 --- a/hotspot/make/windows/projectfiles/kernel/Makefile +++ b/hotspot/make/windows/projectfiles/kernel/Makefile @@ -22,7 +22,7 @@ # # -Variant=compiler1 +Variant=kernel !include local.make !include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile diff --git a/hotspot/make/windows/projectfiles/tiered/Makefile b/hotspot/make/windows/projectfiles/tiered/Makefile index b513759ad7b..e2a8c97c98e 100644 --- a/hotspot/make/windows/projectfiles/tiered/Makefile +++ b/hotspot/make/windows/projectfiles/tiered/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -24,6 +24,7 @@ Variant=tiered !include local.make -AdditionalTargets=incls/ad_$(Platform_arch_model).cpp incls/dfa_$(Platform_arch_model).cpp +AdlcOutDir=$(HOTSPOTBUILDSPACE)\$(Variant)\generated\adfiles +AdditionalTargets=$(AdlcOutDir)\ad_$(Platform_arch_model).cpp $(AdlcOutDir)\dfa_$(Platform_arch_model).cpp !include $(HOTSPOTWORKSPACE)/make/windows/projectfiles/common/Makefile diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp index a677b20dfa0..901931fb79f 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#endif // Convert the raw encoding form into the form expected by the // constructor for Address. diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp index 486222751b5..f6ff1bde4e0 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_ASSEMBLER_SPARC_HPP + class BiasedLockingCounters; // promises that the system will not use traps 16-31 @@ -2500,3 +2503,5 @@ class SkipIfEqual : public StackObj { // On RISC, there's no benefit to verifying instruction boundaries. inline bool AbstractAssembler::pd_check_instruction_mark() { return false; } #endif + +#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp index db8807cfd06..4dfeb191d1b 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.inline.hpp @@ -22,6 +22,14 @@ * */ +#ifndef CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP +#define CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP + +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "code/codeCache.hpp" +#include "runtime/handles.inline.hpp" + inline void MacroAssembler::pd_patch_instruction(address branch, address target) { jint& stub_inst = *(jint*) branch; stub_inst = patched_branch(target - branch, stub_inst, 0); @@ -822,3 +830,5 @@ inline void MacroAssembler::membar( Membar_mask_bits const7a ) { Assembler::ldstub(SP, 0, G0); } } + +#endif // CPU_SPARC_VM_ASSEMBLER_SPARC_INLINE_HPP diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp index 9e3b78920e9..643762eca01 100644 --- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,24 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interp_masm_sparc.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" + // KILL THIS FILE diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp index d339d3485e3..aad5bc7162c 100644 --- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP + // Platform specific for C++ based Interpreter #define LOTS_OF_REGS /* Lets interpreter use plenty of registers */ @@ -97,3 +100,5 @@ public: ((VMJavaVal64*)(addr))->d) #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) + +#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp index 6bd42a8ec84..d9c8e66de6a 100644 --- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp +++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP +#define CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP + // Inline interpreter functions for sparc inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; } @@ -331,3 +334,5 @@ class u8_converter { } }; #endif /* ALIGN_CONVERTER */ + +#endif // CPU_SPARC_VM_BYTECODEINTERPRETER_SPARC_INLINE_HPP diff --git a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp index d8701db24d9..8874d8ca8cc 100644 --- a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodes_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodes.hpp" void Bytecodes::pd_initialize() { diff --git a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp index b6913fa5621..f1d08b336ab 100644 --- a/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/bytecodes_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_BYTECODES_SPARC_HPP +#define CPU_SPARC_VM_BYTECODES_SPARC_HPP + #ifdef SPARC #define NLOCALS_IN_REGS 6 #endif @@ -30,3 +33,5 @@ // Sparc specific bytecodes // (none) + +#endif // CPU_SPARC_VM_BYTECODES_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp index 7593326364a..67d4307ff74 100644 --- a/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/bytes_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_SPARC_VM_BYTES_SPARC_HPP +#define CPU_SPARC_VM_BYTES_SPARC_HPP + +#include "memory/allocation.hpp" + class Bytes: AllStatic { public: // Efficient reading and writing of unaligned unsigned data in platform-specific byte ordering @@ -155,3 +160,5 @@ class Bytes: AllStatic { // 1.15 98/10/05 16:30:21 bytes_i486.hpp // 1.17 99/06/22 16:37:35 bytes_i486.hpp //End + +#endif // CPU_SPARC_VM_BYTES_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp index effc007d7db..f3149d7426e 100644 --- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_CodeStubs_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "nativeInst_sparc.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_sparc.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#endif #define __ ce->masm()-> diff --git a/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp index c03873d4e65..a63e28fafe3 100644 --- a/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_Defs_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_DEFS_SPARC_HPP +#define CPU_SPARC_VM_C1_DEFS_SPARC_HPP + // native word offsets from memory address (big endian) enum { pd_lo_word_offset_in_bytes = BytesPerInt, @@ -65,3 +68,5 @@ enum { enum { pd_float_saved_as_double = false }; + +#endif // CPU_SPARC_VM_C1_DEFS_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp index 3a2c65d9f17..8c3a19a9e78 100644 --- a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,10 @@ * */ +#include "precompiled.hpp" +#include "c1/c1_FpuStackSim.hpp" +#include "c1/c1_FrameMap.hpp" +#include "utilities/array.hpp" +#include "utilities/ostream.hpp" + // No FPU stack on SPARC diff --git a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp index 3aa967d4627..83f14968bb1 100644 --- a/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_FpuStackSim_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,10 @@ * */ +#ifndef CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP +#define CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP + // No FPU stack on SPARC class FpuStackSim; + +#endif // CPU_SPARC_VM_C1_FPUSTACKSIM_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp index 2bf36306771..6b9e5652ae7 100644 --- a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.cpp @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FrameMap_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIR.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_sparc.inline.hpp" const int FrameMap::pd_c_runtime_reserved_arg_size = 7; diff --git a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp index 10dfbceadd6..05e034096b4 100644 --- a/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_FrameMap_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP +#define CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP + public: enum { @@ -151,3 +154,5 @@ static bool is_caller_save_register (LIR_Opr reg); static bool is_caller_save_register (Register r); + +#endif // CPU_SPARC_VM_C1_FRAMEMAP_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 7d10f9ba013..b1e2a2b464f 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRAssembler_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciInstance.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/barrierSet.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/objArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp index f6f715408e4..ffcd5b494e9 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP + private: ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -90,3 +93,5 @@ enum { #endif // _LP64 exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4), deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4) }; + +#endif // CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp index 2566f3f8227..1abbdb51d49 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRGenerator_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_sparc.inline.hpp" #ifdef ASSERT #define __ gen()->lir(__FILE__, __LINE__)-> diff --git a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp index 92fc7e08624..e09039e7e4c 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_LinearScan_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LinearScan.hpp" +#include "utilities/bitMap.inline.hpp" void LinearScan::allocate_fpu_stack() { // No FPU stack on SPARC diff --git a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp index f9aaf1f77e1..ddb6f9a5bd5 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_LinearScan_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP +#define CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP + inline bool LinearScan::is_processed_reg_num(int reg_num) { return reg_num < 26 || reg_num > 31; } @@ -71,3 +74,5 @@ inline bool LinearScanWalker::pd_init_regs_for_alloc(Interval* cur) { } return false; } + +#endif // CPU_SPARC_VM_C1_LINEARSCAN_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp index db9ef843c7e..6d9f9de5286 100644 --- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_MacroAssembler_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) { Label L; diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp index 891d577ee67..b8b063928ab 100644 --- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP + void pd_init() { /* nothing to do */ } public: @@ -84,3 +87,5 @@ // invalidates registers in this window void invalidate_registers(bool iregisters, bool lregisters, bool oregisters, Register preserve1 = noreg, Register preserve2 = noreg); + +#endif // CPU_SPARC_VM_C1_MACROASSEMBLER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp index 649e9b12388..127cc9ab316 100644 --- a/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp @@ -22,8 +22,20 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Runtime1_sparc.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "register_sparc.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/signature.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_sparc.inline.hpp" // Implementation of StubAssembler diff --git a/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp b/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp index c1ca004f1ff..ef5900debf0 100644 --- a/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c1_globals_sparc.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP +#define CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the client compiler. // (see c1_globals.hpp) @@ -61,3 +67,5 @@ define_pd_global(bool, CSEArrayLength, true ); define_pd_global(bool, TwoOperandLIRForm, false); define_pd_global(intx, SafepointPollOffset, 0 ); + +#endif // CPU_SPARC_VM_C1_GLOBALS_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp b/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp index cb54d3ba767..0e870e63cc7 100644 --- a/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP +#define CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the server compiler. // (see c2_globals.hpp). Alpha-sorted. @@ -88,3 +94,5 @@ define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); // Ergonomics related flags define_pd_global(bool, NeverActAsServerClassMachine, false); + +#endif // CPU_SPARC_VM_C2_GLOBALS_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp b/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp index b82f89017e1..685a39dbf0f 100644 --- a/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c2_init_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c2_init_sparc.cpp.incl" +#include "precompiled.hpp" +#include "opto/compile.hpp" +#include "opto/node.hpp" // processor dependent initialization for sparc diff --git a/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp b/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp index 258ff281e7e..f1a371acf1e 100644 --- a/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/codeBuffer_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_CODEBUFFER_SPARC_HPP +#define CPU_SPARC_VM_CODEBUFFER_SPARC_HPP + private: void pd_initialize() {} @@ -32,3 +35,5 @@ public: bool is_backward_branch(Label& L) { return L.is_bound() && insts_end() <= locator_address(L.loc()); } + +#endif // CPU_SPARC_VM_CODEBUFFER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp index e082ab8a687..0267d25a670 100644 --- a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_COPY_SPARC_HPP +#define CPU_SPARC_VM_COPY_SPARC_HPP + // Inline functions for memory copy and fill. static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { @@ -186,3 +189,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) { static void pd_zero_to_bytes(void* to, size_t count) { (void)memset(to, 0, count); } + +#endif // CPU_SPARC_VM_COPY_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp index 271f7b2729f..2dc68c74f63 100644 --- a/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/cppInterpreterGenerator_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP +#define CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP + static address frame_manager_return; static address frame_manager_sync_return; @@ -32,3 +35,5 @@ void generate_compute_interpreter_state(const Register state, const Register prev_state, bool native); + +#endif // CPU_SPARC_VM_CPPINTERPRETERGENERATOR_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp index c048ba34098..8cae2273632 100644 --- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/cppInterpreter.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef SHARK +#include "shark/shark_globals.hpp" +#endif #ifdef CC_INTERP diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp index 381ecc06abf..3d613f36a02 100644 --- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP + // Size of interpreter code. Increase if too small. Interpreter will // fail with a guarantee ("not enough space for interpreter generation"); // if too small. @@ -37,3 +40,5 @@ #else const static int InterpreterCodeSize = 180 * K; #endif + +#endif // CPU_SPARC_VM_CPPINTERPRETER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/debug_sparc.cpp b/hotspot/src/cpu/sparc/vm/debug_sparc.cpp index 2958a5238ce..76441c0ceb0 100644 --- a/hotspot/src/cpu/sparc/vm/debug_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/debug_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_debug_sparc.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "runtime/frame.hpp" +#include "runtime/init.hpp" +#include "runtime/os.hpp" +#include "utilities/debug.hpp" +#include "utilities/top.hpp" #ifndef PRODUCT diff --git a/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp b/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp index 296a6c877b3..f37545d97db 100644 --- a/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/depChecker_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_depChecker_sparc.cpp.incl" +#include "precompiled.hpp" +#include "compiler/disassembler.hpp" +#include "depChecker_sparc.hpp" +#include "runtime/hpi.hpp" // Nothing to do on Sparc diff --git a/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp b/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp index e484d8d7609..6e275437fae 100644 --- a/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/depChecker_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_DEPCHECKER_SPARC_HPP +#define CPU_SPARC_VM_DEPCHECKER_SPARC_HPP + // Nothing to do on Sparc + +#endif // CPU_SPARC_VM_DEPCHECKER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp index caa6bd2a9a4..761d0e3810e 100644 --- a/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/disassembler_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP +#define CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP + static int pd_instruction_alignment() { return sizeof(int); } @@ -30,3 +33,5 @@ return (VM_Version::v9_instructions_work()? (VM_Version::v8_instructions_work()? "" : "v9only") : "v8only"); } + +#endif // CPU_SPARC_VM_DISASSEMBLER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/dump_sparc.cpp b/hotspot/src/cpu/sparc/vm/dump_sparc.cpp index 60f3e1388fd..5bfa1cebffd 100644 --- a/hotspot/src/cpu/sparc/vm/dump_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/dump_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dump_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp index 1ee91aedae0..e6fa47a5b75 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp @@ -22,8 +22,24 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_frame_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/resourceArea.hpp" +#include "oops/markOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/monitorChunk.hpp" +#include "runtime/signature.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_sparc.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#include "runtime/vframeArray.hpp" +#endif void RegisterMap::pd_clear() { if (_thread->has_last_Java_frame()) { diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.hpp b/hotspot/src/cpu/sparc/vm/frame_sparc.hpp index 15a07f8492f..ed30d40e284 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_FRAME_SPARC_HPP +#define CPU_SPARC_VM_FRAME_SPARC_HPP + +#include "runtime/synchronizer.hpp" +#include "utilities/top.hpp" + // A frame represents a physical stack frame (an activation). Frames can be // C or Java frames, and the Java frames can be interpreted or compiled. // In contrast, vframes represent source-level activations, so that one physical frame @@ -309,3 +315,5 @@ return reg->is_out() || reg->is_global(); #endif } + +#endif // CPU_SPARC_VM_FRAME_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp index 8fa763f095e..3a8bc79b823 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP +#define CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP + // Inline functions for SPARC frames: // Constructors @@ -295,3 +298,5 @@ inline oop frame::saved_oop_result(RegisterMap* map) const { inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) { *((oop*) map->location(O0->as_VMReg())) = obj; } + +#endif // CPU_SPARC_VM_FRAME_SPARC_INLINE_HPP diff --git a/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp b/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp index 21d41d73012..e90896c4919 100644 --- a/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/globalDefinitions_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP +#define CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP + // Size of Sparc Instructions const int BytesPerInstWord = 4; const int StackAlignmentInBytes = (2*wordSize); + +#endif // CPU_SPARC_VM_GLOBALDEFINITIONS_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/globals_sparc.hpp b/hotspot/src/cpu/sparc/vm/globals_sparc.hpp index 071f6b58d68..1854475a5a9 100644 --- a/hotspot/src/cpu/sparc/vm/globals_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/globals_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_GLOBALS_SPARC_HPP +#define CPU_SPARC_VM_GLOBALS_SPARC_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -64,3 +70,5 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); define_pd_global(bool, UseMembar, false); + +#endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp b/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp index d192084face..6327cc7a554 100644 --- a/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/icBuffer_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/icBuffer.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" int InlineCacheBuffer::ic_stub_code_size() { #ifdef _LP64 diff --git a/hotspot/src/cpu/sparc/vm/icache_sparc.cpp b/hotspot/src/cpu/sparc/vm/icache_sparc.cpp index 40ab79bc767..af7a4c09b01 100644 --- a/hotspot/src/cpu/sparc/vm/icache_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/icache_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icache_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "runtime/icache.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/sparc/vm/icache_sparc.hpp b/hotspot/src/cpu/sparc/vm/icache_sparc.hpp index e0b7579d9de..e3b5bad7aa1 100644 --- a/hotspot/src/cpu/sparc/vm/icache_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/icache_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_ICACHE_SPARC_HPP +#define CPU_SPARC_VM_ICACHE_SPARC_HPP + // Interface for updating the instruction cache. Whenever the VM modifies // code, part of the processor instruction cache potentially has to be flushed. @@ -36,3 +39,5 @@ class ICache : public AbstractICache { // Use default implementation }; + +#endif // CPU_SPARC_VM_ICACHE_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp index 91c3bc09fa0..ea17d6f574e 100644 --- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp @@ -22,8 +22,26 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interp_masm_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interp_masm_sparc.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif #ifndef CC_INTERP #ifndef FAST_DISPATCH diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp index b893f9413a1..835dcac6836 100644 --- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_INTERP_MASM_SPARC_HPP +#define CPU_SPARC_VM_INTERP_MASM_SPARC_HPP + +#include "assembler_sparc.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros REGISTER_DECLARATION( Register, Otos_i , O0); // tos for ints, etc @@ -327,3 +333,5 @@ class InterpreterMacroAssembler: public MacroAssembler { void restore_return_value(TosState state, bool is_native_call); }; + +#endif // CPU_SPARC_VM_INTERP_MASM_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp index 2478f089acf..ce3c3d48f69 100644 --- a/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP +#define CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP + friend class AbstractInterpreterGenerator; private: @@ -39,3 +42,5 @@ void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue); void generate_counter_overflow(Label& Lcontinue); + +#endif // CPU_SPARC_VM_INTERPRETERGENERATOR_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp index fb95f8ad4a3..bc7d556d517 100644 --- a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.cpp @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp index 97f861cf37b..6d90042c013 100644 --- a/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/interpreterRT_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP +#define CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP + +#include "memory/allocation.hpp" + static int binary_search(int key, LookupswitchPair* array, int n); static address iload (JavaThread* thread); @@ -54,3 +59,5 @@ class SignatureHandlerGenerator: public NativeSignatureIterator { // Code generation void generate( uint64_t fingerprint ); }; + +#endif // CPU_SPARC_VM_INTERPRETERRT_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp index e22ecde84db..503fb67d1dc 100644 --- a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif diff --git a/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp index 2f3bb3f6fa8..bc38d6e882f 100644 --- a/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/interpreter_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_INTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_INTERPRETER_SPARC_HPP + public: static int expr_offset_in_bytes(int i) { return stackElementSize * i + wordSize; } @@ -34,3 +37,5 @@ assert(i <= 0, "local direction already negated"); return stackElementWords * i; } + +#endif // CPU_SPARC_VM_INTERPRETER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp b/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp index f9607f8fede..1b4b3bf2ffc 100644 --- a/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/javaFrameAnchor_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP +#define CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP + private: volatile int _flags; @@ -97,3 +100,5 @@ private: _flags |= flushed; OrderAccess::fence(); } + +#endif // CPU_SPARC_VM_JAVAFRAMEANCHOR_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp b/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp index f390efff1b9..e31fa87b3aa 100644 --- a/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/jniFastGetField_sparc.cpp @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_jniFastGetField_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" // TSO ensures that loads are blocking and ordered with respect to // to earlier loads, so we don't need LoadLoad membars. diff --git a/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp b/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp index 1c91caac29f..9c3049141fd 100644 --- a/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/jniTypes_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef CPU_SPARC_VM_JNITYPES_SPARC_HPP +#define CPU_SPARC_VM_JNITYPES_SPARC_HPP + +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "prims/jni.h" + // This file holds platform-dependent routines used to write primitive jni // types to the array of arguments passed into JavaCalls::call @@ -106,3 +113,5 @@ public: #endif }; + +#endif // CPU_SPARC_VM_JNITYPES_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/jni_sparc.h b/hotspot/src/cpu/sparc/vm/jni_sparc.h index 9bb86a05c7e..9712dfc9d0d 100644 --- a/hotspot/src/cpu/sparc/vm/jni_sparc.h +++ b/hotspot/src/cpu/sparc/vm/jni_sparc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp index c38d1f0235a..50bbbafa405 100644 --- a/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/methodHandles_sparc.cpp @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_methodHandles_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "prims/methodHandles.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp index 3c578c95e1f..d38c979fa87 100644 --- a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_nativeInst_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/ostream.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif bool NativeInstruction::is_dtrace_trap() { diff --git a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp index b5d2aac6dec..3ecb6d93720 100644 --- a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef CPU_SPARC_VM_NATIVEINST_SPARC_HPP +#define CPU_SPARC_VM_NATIVEINST_SPARC_HPP + +#include "asm/assembler.hpp" +#include "memory/allocation.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#include "utilities/top.hpp" + // We have interface for the following instructions: // - NativeInstruction // - - NativeCall @@ -913,3 +922,5 @@ class NativeIllegalInstruction: public NativeInstruction { // Insert illegal opcode as specific address static void insert(address code_pos); }; + +#endif // CPU_SPARC_VM_NATIVEINST_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp b/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp index 79a9456fc9c..0ce8294663f 100644 --- a/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/registerMap_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_REGISTERMAP_SPARC_HPP +#define CPU_SPARC_VM_REGISTERMAP_SPARC_HPP + // machine-dependent implemention for register maps friend class frame; @@ -51,3 +54,5 @@ void shift_individual_registers(); // When popping out of compiled frames, we make all IRegs disappear. void make_integer_regs_unsaved() { _location_valid[0] = 0; } + +#endif // CPU_SPARC_VM_REGISTERMAP_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp b/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp index a726217fd0a..03d08ddfa35 100644 --- a/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp @@ -25,8 +25,11 @@ // make sure the defines don't screw up the declarations later on in this file #define DONT_USE_REGISTER_DEFINES -#include "incls/_precompiled.incl" -#include "incls/_register_definitions_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/register.hpp" +#include "interp_masm_sparc.hpp" +#include "register_sparc.hpp" REGISTER_DEFINITION(Register, noreg); diff --git a/hotspot/src/cpu/sparc/vm/register_sparc.cpp b/hotspot/src/cpu/sparc/vm/register_sparc.cpp index bf6f872b44f..4ed28c6a0b5 100644 --- a/hotspot/src/cpu/sparc/vm/register_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/register_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_sparc.cpp.incl" +#include "precompiled.hpp" +#include "register_sparc.hpp" const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers << 1; const int ConcreteRegisterImpl::max_fpr = ConcreteRegisterImpl::max_gpr + FloatRegisterImpl::number_of_registers; diff --git a/hotspot/src/cpu/sparc/vm/register_sparc.hpp b/hotspot/src/cpu/sparc/vm/register_sparc.hpp index 3f1eb90285e..945866e539f 100644 --- a/hotspot/src/cpu/sparc/vm/register_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/register_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_REGISTER_SPARC_HPP +#define CPU_SPARC_VM_REGISTER_SPARC_HPP + +#include "asm/register.hpp" +#include "vm_version_sparc.hpp" + // forward declaration class Address; class VMRegImpl; @@ -440,3 +446,5 @@ class QuadFloatRegisterImpl { return as_FloatRegister( ((encoding & 1) << 5) | (encoding & 0x1c) ); } }; + +#endif // CPU_SPARC_VM_REGISTER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp index a96f6a674a8..d2cefd35d55 100644 --- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_relocInfo_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.inline.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/relocInfo.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" void Relocation::pd_set_data_value(address x, intptr_t o) { NativeInstruction* ip = nativeInstruction_at(addr()); diff --git a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp index 626e117a49f..a2d3b2c3928 100644 --- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_RELOCINFO_SPARC_HPP +#define CPU_SPARC_VM_RELOCINFO_SPARC_HPP + // machine-dependent parts of class relocInfo private: enum { @@ -49,3 +52,5 @@ // 1.8 99/06/22 16:37:50 relocInfo_i486.hpp // 1.9 99/07/16 11:12:11 relocInfo_i486.hpp //End + +#endif // CPU_SPARC_VM_RELOCINFO_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp b/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp index e6f641e26b7..560e67a2113 100644 --- a/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/runtime_sparc.cpp @@ -22,8 +22,22 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_runtime_sparc.cpp.incl" +#include "precompiled.hpp" +#ifdef COMPILER2 +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/vmreg.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_sparc.hpp" +#include "opto/runtime.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/globalDefinitions.hpp" +#include "vmreg_sparc.inline.hpp" +#endif #define __ masm-> diff --git a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp index bae042e8f66..751b512084d 100644 --- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_sparc.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif +#ifdef SHARK +#include "compiler/compileBroker.hpp" +#include "shark/sharkCompiler.hpp" +#endif #define __ masm-> diff --git a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp index 8a4dc2ad9b9..7bb56140d61 100644 --- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp @@ -22,8 +22,31 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_sparc.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff --git a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp index 162f6469d5b..68785abfc73 100644 --- a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif // Implementation of the platform-specific part of StubRoutines - for // a description of how to extend it, see the stubRoutines.hpp file. diff --git a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp index d56655b3e3b..11350f2d400 100644 --- a/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/stubRoutines_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_STUBROUTINES_SPARC_HPP +#define CPU_SPARC_VM_STUBROUTINES_SPARC_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -100,3 +103,5 @@ class Sparc { static address partial_subtype_check() { return _partial_subtype_check; } }; + +#endif // CPU_SPARC_VM_STUBROUTINES_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp index 1519d3ea1f2..73b0f1478b5 100644 --- a/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/templateInterpreterGenerator_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP +#define CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP + protected: void generate_fixed_frame(bool native_call); // template interpreter only void generate_stack_overflow_check(Register Rframe_size, Register Rscratch, Register Rscratch2); + +#endif // CPU_SPARC_VM_TEMPLATEINTERPRETERGENERATOR_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp index cc05ddb7e96..80e3a759d1d 100644 --- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateInterpreter_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #ifndef CC_INTERP #ifndef FAST_DISPATCH diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp index 5770131e1df..9b6cd216fbb 100644 --- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP +#define CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP + protected: @@ -38,3 +41,5 @@ #else const static int InterpreterCodeSize = 180 * K; #endif + +#endif // CPU_SPARC_VM_TEMPLATEINTERPRETER_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp index 9a68a2169a9..89637223745 100644 --- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateTable_sparc.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" #ifndef CC_INTERP #define __ _masm-> diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp index cf82ef4e827..35c8ca1c59b 100644 --- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP +#define CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP + // helper function static void invokevfinal_helper(Register Rcache, Register Rret); static void invokeinterface_object_method(Register RklassOop, Register Rcall, @@ -29,3 +32,5 @@ Register Rflags); static void generate_vtable_call(Register Rrecv, Register Rindex, Register Rret); static void volatile_barrier(Assembler::Membar_mask_bits order_constraint); + +#endif // CPU_SPARC_VM_TEMPLATETABLE_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp b/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp index 47db8d52f0d..8103a6395b7 100644 --- a/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/vmStructs_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP +#define CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP + // These are the CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -97,3 +100,5 @@ /* NOTE that we do not use the last_entry() macro here; it is used */ /* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ /* be present there) */ + +#endif // CPU_SPARC_VM_VMSTRUCTS_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp index 0e323c4e630..9e192861926 100644 --- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_sparc.cpp.incl" +#include "precompiled.hpp" +#include "assembler_sparc.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/java.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "vm_version_sparc.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif int VM_Version::_features = VM_Version::unknown_m; const char* VM_Version::_features_str = ""; diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp index 9fd851b747b..93487bd30d4 100644 --- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_SPARC_VM_VM_VERSION_SPARC_HPP +#define CPU_SPARC_VM_VM_VERSION_SPARC_HPP + +#include "runtime/globals_extension.hpp" +#include "runtime/vm_version.hpp" + class VM_Version: public Abstract_VM_Version { protected: enum Feature_Flag { @@ -152,3 +158,5 @@ public: // Calculates the number of parallel threads static unsigned int calc_parallel_worker_threads(); }; + +#endif // CPU_SPARC_VM_VM_VERSION_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp b/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp index 1693ea297b6..470f354bf46 100644 --- a/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/vmreg_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" diff --git a/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp b/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp index 6234fdd6f85..ce8cb4c3d3a 100644 --- a/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/vmreg_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_SPARC_VM_VMREG_SPARC_HPP +#define CPU_SPARC_VM_VMREG_SPARC_HPP + bool is_Register(); Register as_Register(); bool is_FloatRegister(); FloatRegister as_FloatRegister(); + +#endif // CPU_SPARC_VM_VMREG_SPARC_HPP diff --git a/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp b/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp index fa92eea8e12..993216fc12d 100644 --- a/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp +++ b/hotspot/src/cpu/sparc/vm/vmreg_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP +#define CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP + inline VMReg RegisterImpl::as_VMReg() { if( this==noreg ) return VMRegImpl::Bad(); return VMRegImpl::as_VMReg(encoding() << 1 ); @@ -60,3 +63,5 @@ inline bool VMRegImpl::is_concrete() { assert(false, "what register?"); return false; } + +#endif // CPU_SPARC_VM_VMREG_SPARC_INLINE_HPP diff --git a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp index 2932cfc42b2..9c040216e06 100644 --- a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_sparc.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_sparc.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // machine-dependent part of VtableStubs: create vtableStub of correct size and // initialize its code diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.cpp b/hotspot/src/cpu/x86/vm/assembler_x86.cpp index 64be76d7c84..cb2ed5d08fa 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#endif // Implementation of AddressLiteral diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.hpp index fb832b689d5..d4bf4b422ec 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_ASSEMBLER_X86_HPP +#define CPU_X86_VM_ASSEMBLER_X86_HPP + class BiasedLockingCounters; // Contains all the definitions needed for x86 assembly code generation. @@ -2273,3 +2276,5 @@ class SkipIfEqual { #ifdef ASSERT inline bool AbstractAssembler::pd_check_instruction_mark() { return true; } #endif + +#endif // CPU_X86_VM_ASSEMBLER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp index 1198dad1e58..125bf3ffff0 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP +#define CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP + +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "code/codeCache.hpp" +#include "runtime/handles.inline.hpp" + inline void MacroAssembler::pd_patch_instruction(address branch, address target) { unsigned char op = branch[0]; assert(op == 0xE8 /* call */ || @@ -85,3 +93,5 @@ inline void Assembler::emit_long64(jlong x) { code_section()->set_end(_code_pos); } #endif // _LP64 + +#endif // CPU_X86_VM_ASSEMBLER_X86_INLINE_HPP diff --git a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp index bb6fe1e1d59..5e606224fac 100644 --- a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp +++ b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,30 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodeInterpreter_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "interp_masm_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "interp_masm_x86_64.hpp" +#endif #ifdef CC_INTERP diff --git a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp index 00343c045b3..e4eaa751286 100644 --- a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp +++ b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP +#define CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP + // Platform specific for C++ based Interpreter private: @@ -108,3 +111,5 @@ inline intptr_t* sender_sp() { ((VMJavaVal64*)(addr))->d) #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) + +#endif // CPU_X86_VM_BYTECODEINTERPRETER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp index 1c5616aa352..4f60b455801 100644 --- a/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/bytecodeInterpreter_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP +#define CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP + // Inline interpreter functions for IA32 inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { return op1 + op2; } @@ -278,3 +281,5 @@ inline jshort BytecodeInterpreter::VMint2Short(jint val) { inline jbyte BytecodeInterpreter::VMint2Byte(jint val) { return (jbyte) val; } + +#endif // CPU_X86_VM_BYTECODEINTERPRETER_X86_INLINE_HPP diff --git a/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp b/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp index d9ddba8dd38..4e6993548c9 100644 --- a/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp +++ b/hotspot/src/cpu/x86/vm/bytecodes_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodes_x86.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodes.hpp" void Bytecodes::pd_initialize() { diff --git a/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp b/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp index aab08d90b42..e21c16a09ae 100644 --- a/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp +++ b/hotspot/src/cpu/x86/vm/bytecodes_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_X86_VM_BYTECODES_X86_HPP +#define CPU_X86_VM_BYTECODES_X86_HPP + // No i486 specific bytecodes + +#endif // CPU_X86_VM_BYTECODES_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/bytes_x86.hpp b/hotspot/src/cpu/x86/vm/bytes_x86.hpp index d62120c7041..ac096dc3737 100644 --- a/hotspot/src/cpu/x86/vm/bytes_x86.hpp +++ b/hotspot/src/cpu/x86/vm/bytes_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_X86_VM_BYTES_X86_HPP +#define CPU_X86_VM_BYTES_X86_HPP + +#include "memory/allocation.hpp" + class Bytes: AllStatic { private: #ifndef AMD64 @@ -67,4 +72,15 @@ class Bytes: AllStatic { // The following header contains the implementations of swap_u2, swap_u4, and swap_u8[_base] -#include "incls/_bytes_pd.inline.hpp.incl" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "bytes_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "bytes_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_windows_x86 +# include "bytes_windows_x86.inline.hpp" +#endif + + +#endif // CPU_X86_VM_BYTES_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp index b6f9eea591b..e8de24a5552 100644 --- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_CodeStubs_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "nativeInst_x86.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#endif #define __ ce->masm()-> diff --git a/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp b/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp index 2fd08e2140b..883fa166336 100644 --- a/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_Defs_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_DEFS_X86_HPP +#define CPU_X86_VM_C1_DEFS_X86_HPP + // native word offsets from memory address (little endian) enum { pd_lo_word_offset_in_bytes = 0, @@ -71,3 +74,5 @@ enum { enum { pd_float_saved_as_double = true }; + +#endif // CPU_X86_VM_C1_DEFS_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp index f8ce059955d..3fbd57c5ca3 100644 --- a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FpuStackSim_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FpuStackSim.hpp" +#include "c1/c1_FrameMap.hpp" +#include "utilities/array.hpp" +#include "utilities/ostream.hpp" //-------------------------------------------------------- // FpuStackSim diff --git a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp index 29dabd254be..ae1e0d5904d 100644 --- a/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_FpuStackSim_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP +#define CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP + // Simulates the FPU stack and maintains mapping [fpu-register -> stack offset] // FPU registers are described as numbers from 0..nof_fpu_regs-1 @@ -65,3 +68,5 @@ class FpuStackSim VALUE_OBJ_CLASS_SPEC { void print() PRODUCT_RETURN; }; + +#endif // CPU_X86_VM_C1_FPUSTACKSIM_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp index 20e78c242c5..bc5037404a3 100644 --- a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.cpp @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FrameMap_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIR.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" const int FrameMap::pd_c_runtime_reserved_arg_size = 0; diff --git a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp index c479663ca6e..17f2386c0ba 100644 --- a/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_FrameMap_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_FRAMEMAP_X86_HPP +#define CPU_X86_VM_C1_FRAMEMAP_X86_HPP + // On i486 the frame looks as follows: // // +-----------------------------+---------+----------------------------------------+----------------+----------- @@ -126,3 +129,5 @@ assert(i >= 0 && i < nof_caller_save_xmm_regs, "out of bounds"); return _caller_save_xmm_regs[i]; } + +#endif // CPU_X86_VM_C1_FRAMEMAP_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index e9ca3d885c7..8c15f1926e5 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRAssembler_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciInstance.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/barrierSet.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "nativeInst_x86.hpp" +#include "oops/objArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" // These masks are used to provide 128-bit aligned bitmasks to the XMM diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp index f1b0ed88021..daccb39e0f2 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP +#define CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP + private: Address::ScaleFactor array_element_size(BasicType type) const; @@ -56,3 +59,5 @@ public: exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(175), deopt_handler_size = NOT_LP64(10) LP64_ONLY(17) }; + +#endif // CPU_X86_VM_C1_LIRASSEMBLER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp index dd8bc8d9962..cf2cd56463b 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRGenerator_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_x86.inline.hpp" #ifdef ASSERT #define __ gen()->lir(__FILE__, __LINE__)-> diff --git a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp index f1d005d6ace..0c19851b31f 100644 --- a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_LinearScan_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LinearScan.hpp" +#include "utilities/bitMap.inline.hpp" //---------------------------------------------------------------------- diff --git a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp index 814d25eaf1a..88d15e50d86 100644 --- a/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_LinearScan_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_LINEARSCAN_X86_HPP +#define CPU_X86_VM_C1_LINEARSCAN_X86_HPP + inline bool LinearScan::is_processed_reg_num(int reg_num) { #ifndef _LP64 // rsp and rbp (numbers 6 ancd 7) are ignored @@ -185,3 +188,5 @@ class FpuStackAllocator VALUE_OBJ_CLASS_SPEC { FpuStackAllocator(Compilation* compilation, LinearScan* allocator); void allocate(); }; + +#endif // CPU_X86_VM_C1_LINEARSCAN_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp index b3d8c1f2e66..de6e2e58108 100644 --- a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_MacroAssembler_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Register scratch, Label& slow_case) { const int aligned_mask = BytesPerWord -1; diff --git a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp index 56765a34f85..c53937c78a0 100644 --- a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP +#define CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP + // C1_MacroAssembler contains high-level macros for C1 private: @@ -113,3 +116,5 @@ } void invalidate_registers(bool inv_rax, bool inv_rbx, bool inv_rcx, bool inv_rdx, bool inv_rsi, bool inv_rdi) PRODUCT_RETURN; + +#endif // CPU_X86_VM_C1_MACROASSEMBLER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp index 9c9341038ec..23afb8267d0 100644 --- a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp @@ -22,8 +22,20 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Runtime1_x86.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "register_x86.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/signature.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_x86.inline.hpp" // Implementation of StubAssembler diff --git a/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp b/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp index f3700f33c7b..d6a5cc45c10 100644 --- a/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c1_globals_x86.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_C1_GLOBALS_X86_HPP +#define CPU_X86_VM_C1_GLOBALS_X86_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the client compiler. // (see c1_globals.hpp) @@ -60,3 +66,5 @@ define_pd_global(bool, CSEArrayLength, false); define_pd_global(bool, TwoOperandLIRForm, true ); define_pd_global(intx, SafepointPollOffset, 256 ); + +#endif // CPU_X86_VM_C1_GLOBALS_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp b/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp index ae3029c4064..f41d722b42f 100644 --- a/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp +++ b/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_C2_GLOBALS_X86_HPP +#define CPU_X86_VM_C2_GLOBALS_X86_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the server compiler. // (see c2_globals.hpp). Alpha-sorted. @@ -87,3 +93,5 @@ define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); // Ergonomics related flags define_pd_global(bool, NeverActAsServerClassMachine, false); + +#endif // CPU_X86_VM_C2_GLOBALS_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/c2_init_x86.cpp b/hotspot/src/cpu/x86/vm/c2_init_x86.cpp index 2d54e39c3d0..286fec21376 100644 --- a/hotspot/src/cpu/x86/vm/c2_init_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c2_init_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c2_init_x86.cpp.incl" +#include "precompiled.hpp" +#include "opto/compile.hpp" +#include "opto/node.hpp" // processor dependent initialization for i486 diff --git a/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp b/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp index 3b304a2b031..7f20314ffca 100644 --- a/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp +++ b/hotspot/src/cpu/x86/vm/codeBuffer_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_X86_VM_CODEBUFFER_X86_HPP +#define CPU_X86_VM_CODEBUFFER_X86_HPP + private: void pd_initialize() {} public: void flush_bundle(bool start_new_bundle) {} + +#endif // CPU_X86_VM_CODEBUFFER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/copy_x86.hpp b/hotspot/src/cpu/x86/vm/copy_x86.hpp index 32229c5a695..dbadb0e9f9e 100644 --- a/hotspot/src/cpu/x86/vm/copy_x86.hpp +++ b/hotspot/src/cpu/x86/vm/copy_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,22 @@ * */ +#ifndef CPU_X86_VM_COPY_X86_HPP +#define CPU_X86_VM_COPY_X86_HPP + // Inline functions for memory copy and fill. // Contains inline asm implementations -#include "incls/_copy_pd.inline.hpp.incl" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "copy_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "copy_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_windows_x86 +# include "copy_windows_x86.inline.hpp" +#endif + static void pd_fill_to_words(HeapWord* tohw, size_t count, juint value) { #ifdef AMD64 @@ -58,3 +70,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) { static void pd_zero_to_bytes(void* to, size_t count) { (void)memset(to, 0, count); } + +#endif // CPU_X86_VM_COPY_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp index a6d1596911c..8f5bdd7d4ab 100644 --- a/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp +++ b/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP +#define CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP + protected: #if 0 @@ -45,3 +48,5 @@ const Register prev_state, const Register sender_sp, bool native); // C++ interpreter only + +#endif // CPU_X86_VM_CPPINTERPRETERGENERATOR_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp index e68219ec2cb..936bde4d811 100644 --- a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp +++ b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/cppInterpreter.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef SHARK +#include "shark/shark_globals.hpp" +#endif #ifdef CC_INTERP diff --git a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp index 6fda06cb3fe..797fcebe385 100644 --- a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp +++ b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_CPPINTERPRETER_X86_HPP +#define CPU_X86_VM_CPPINTERPRETER_X86_HPP + protected: @@ -31,3 +34,5 @@ // Run with +PrintInterpreter to get the VM to print out the size. // Max size with JVMTI const static int InterpreterCodeSize = 168 * 1024; + +#endif // CPU_X86_VM_CPPINTERPRETER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/debug_x86.cpp b/hotspot/src/cpu/x86/vm/debug_x86.cpp index 0169c28395e..b128439ef23 100644 --- a/hotspot/src/cpu/x86/vm/debug_x86.cpp +++ b/hotspot/src/cpu/x86/vm/debug_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_debug_x86.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "runtime/frame.hpp" +#include "runtime/init.hpp" +#include "runtime/os.hpp" +#include "utilities/debug.hpp" +#include "utilities/top.hpp" void pd_ps(frame f) {} diff --git a/hotspot/src/cpu/x86/vm/depChecker_x86.cpp b/hotspot/src/cpu/x86/vm/depChecker_x86.cpp index 9277100d15f..fe3b8bcfe0c 100644 --- a/hotspot/src/cpu/x86/vm/depChecker_x86.cpp +++ b/hotspot/src/cpu/x86/vm/depChecker_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_depChecker_x86.cpp.incl" +#include "precompiled.hpp" +#include "compiler/disassembler.hpp" +#include "depChecker_x86.hpp" +#include "runtime/hpi.hpp" // Nothing to do on i486 diff --git a/hotspot/src/cpu/x86/vm/depChecker_x86.hpp b/hotspot/src/cpu/x86/vm/depChecker_x86.hpp index a9aeec14d8a..5654bbd12d4 100644 --- a/hotspot/src/cpu/x86/vm/depChecker_x86.hpp +++ b/hotspot/src/cpu/x86/vm/depChecker_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_X86_VM_DEPCHECKER_X86_HPP +#define CPU_X86_VM_DEPCHECKER_X86_HPP + // Nothing to do on i486 + +#endif // CPU_X86_VM_DEPCHECKER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/disassembler_x86.hpp b/hotspot/src/cpu/x86/vm/disassembler_x86.hpp index d597da8bbe2..a3b74bac422 100644 --- a/hotspot/src/cpu/x86/vm/disassembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/disassembler_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_DISASSEMBLER_X86_HPP +#define CPU_X86_VM_DISASSEMBLER_X86_HPP + static int pd_instruction_alignment() { return 1; } @@ -29,3 +32,5 @@ static const char* pd_cpu_opts() { return ""; } + +#endif // CPU_X86_VM_DISASSEMBLER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/dump_x86_32.cpp b/hotspot/src/cpu/x86/vm/dump_x86_32.cpp index 057d47db1e8..a9e9ff0d91f 100644 --- a/hotspot/src/cpu/x86/vm/dump_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/dump_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dump_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" diff --git a/hotspot/src/cpu/x86/vm/dump_x86_64.cpp b/hotspot/src/cpu/x86/vm/dump_x86_64.cpp index cc3a4ade2d2..b74d2ed72d0 100644 --- a/hotspot/src/cpu/x86/vm/dump_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/dump_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dump_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp index a41ff1dbe3a..8f1585fb9fc 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.cpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp @@ -22,8 +22,24 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_frame_x86.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/resourceArea.hpp" +#include "oops/markOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/monitorChunk.hpp" +#include "runtime/signature.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#include "runtime/vframeArray.hpp" +#endif #ifdef ASSERT void RegisterMap::check_location_valid() { diff --git a/hotspot/src/cpu/x86/vm/frame_x86.hpp b/hotspot/src/cpu/x86/vm/frame_x86.hpp index 8bb73797ba4..d949e250c59 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_FRAME_X86_HPP +#define CPU_X86_VM_FRAME_X86_HPP + +#include "runtime/synchronizer.hpp" +#include "utilities/top.hpp" + // A frame represents a physical stack frame (an activation). Frames can be // C or Java frames, and the Java frames can be interpreted or compiled. // In contrast, vframes represent source-level activations, so that one physical frame @@ -199,3 +205,5 @@ #ifdef CC_INTERP inline interpreterState get_interpreterState() const; #endif // CC_INTERP + +#endif // CPU_X86_VM_FRAME_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp index 0f4881c2b9a..bb9ac15cb31 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_FRAME_X86_INLINE_HPP +#define CPU_X86_VM_FRAME_X86_INLINE_HPP + // Inline functions for Intel frames: // Constructors: @@ -296,3 +299,5 @@ inline oop frame::saved_oop_result(RegisterMap* map) const { inline void frame::set_saved_oop_result(RegisterMap* map, oop obj) { *((oop*) map->location(rax->as_VMReg())) = obj; } + +#endif // CPU_X86_VM_FRAME_X86_INLINE_HPP diff --git a/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp b/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp index 3a339086201..1c032e632b2 100644 --- a/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp +++ b/hotspot/src/cpu/x86/vm/globalDefinitions_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP +#define CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP + const int StackAlignmentInBytes = 16; + +#endif // CPU_X86_VM_GLOBALDEFINITIONS_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/globals_x86.hpp b/hotspot/src/cpu/x86/vm/globals_x86.hpp index e62e6748210..41917378b56 100644 --- a/hotspot/src/cpu/x86/vm/globals_x86.hpp +++ b/hotspot/src/cpu/x86/vm/globals_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_GLOBALS_X86_HPP +#define CPU_X86_VM_GLOBALS_X86_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -65,3 +71,5 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); define_pd_global(bool, UseMembar, false); + +#endif // CPU_X86_VM_GLOBALS_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp b/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp index a21a764d625..992a67947cf 100644 --- a/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp +++ b/hotspot/src/cpu/x86/vm/icBuffer_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/icBuffer.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_x86.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" int InlineCacheBuffer::ic_stub_code_size() { return NativeMovConstReg::instruction_size + diff --git a/hotspot/src/cpu/x86/vm/icache_x86.cpp b/hotspot/src/cpu/x86/vm/icache_x86.cpp index a03d9a32945..91d4f4da1c1 100644 --- a/hotspot/src/cpu/x86/vm/icache_x86.cpp +++ b/hotspot/src/cpu/x86/vm/icache_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icache_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/icache.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/icache_x86.hpp b/hotspot/src/cpu/x86/vm/icache_x86.hpp index 3c446979d87..e02b1031073 100644 --- a/hotspot/src/cpu/x86/vm/icache_x86.hpp +++ b/hotspot/src/cpu/x86/vm/icache_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_ICACHE_X86_HPP +#define CPU_X86_VM_ICACHE_X86_HPP + // Interface for updating the instruction cache. Whenever the VM modifies // code, part of the processor instruction cache potentially has to be flushed. @@ -53,3 +56,5 @@ class ICache : public AbstractICache { }; #endif // AMD64 }; + +#endif // CPU_X86_VM_ICACHE_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp index 013c6c03739..6cc321b5576 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.cpp @@ -22,8 +22,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interp_masm_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "interp_masm_x86_32.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of InterpreterMacroAssembler diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp index 600f0566f7d..404b4d5723b 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_32.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_INTERP_MASM_X86_32_HPP +#define CPU_X86_VM_INTERP_MASM_X86_32_HPP + +#include "assembler_x86.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros @@ -227,3 +233,5 @@ class InterpreterMacroAssembler: public MacroAssembler { void notify_method_exit(TosState state, NotifyMethodExitMode mode); }; + +#endif // CPU_X86_VM_INTERP_MASM_X86_32_HPP diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp index 6392742aac5..75744bef645 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp @@ -22,8 +22,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interp_masm_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "interp_masm_x86_64.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of InterpreterMacroAssembler diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp index 6f485952580..62539a73548 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_INTERP_MASM_X86_64_HPP +#define CPU_X86_VM_INTERP_MASM_X86_64_HPP + +#include "assembler_x86.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros @@ -243,3 +249,5 @@ class InterpreterMacroAssembler: public MacroAssembler { void notify_method_entry(); void notify_method_exit(TosState state, NotifyMethodExitMode mode); }; + +#endif // CPU_X86_VM_INTERP_MASM_X86_64_HPP diff --git a/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp index e12ab0c850a..7f92fbd15c5 100644 --- a/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp +++ b/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP +#define CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP + // Generation of Interpreter // @@ -41,3 +44,5 @@ void generate_counter_incr(Label* overflow, Label* profile_method, Label* profile_method_continue); void generate_counter_overflow(Label* do_continue); + +#endif // CPU_X86_VM_INTERPRETERGENERATOR_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp b/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp index debe9c5c379..f35f0122d43 100644 --- a/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp +++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef CPU_X86_VM_INTERPRETERRT_X86_HPP +#define CPU_X86_VM_INTERPRETERRT_X86_HPP + +#include "memory/allocation.hpp" + // native method calls class SignatureHandlerGenerator: public NativeSignatureIterator { @@ -72,3 +77,5 @@ class SignatureHandlerGenerator: public NativeSignatureIterator { static Register to(); static Register temp(); }; + +#endif // CPU_X86_VM_INTERPRETERRT_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp b/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp index ab70515a69f..05b3ded09e1 100644 --- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_32.cpp @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp b/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp index 1a362b7b9bf..c3a1f5413d1 100644 --- a/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interpreterRT_x86_64.cpp @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86.hpp b/hotspot/src/cpu/x86/vm/interpreter_x86.hpp index 7c0cd214ff9..105a4038ced 100644 --- a/hotspot/src/cpu/x86/vm/interpreter_x86.hpp +++ b/hotspot/src/cpu/x86/vm/interpreter_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_INTERPRETER_X86_HPP +#define CPU_X86_VM_INTERPRETER_X86_HPP + public: // Sentinel placed in the code for interpreter returns so @@ -44,3 +47,5 @@ assert(i <= 0, "local direction already negated"); return stackElementWords * i; } + +#endif // CPU_X86_VM_INTERPRETER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp b/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp index 0dc6ffab9a2..d5424c63c58 100644 --- a/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/interpreter_x86_32.cpp @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp index 4c221d9e97e..373379663a8 100644 --- a/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp b/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp index d78bead14cb..77298e53770 100644 --- a/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp +++ b/hotspot/src/cpu/x86/vm/javaFrameAnchor_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP +#define CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP + private: // FP value associated with _last_Java_sp: @@ -79,3 +82,5 @@ public: intptr_t* last_Java_fp(void) { return _last_Java_fp; } // Assert (last_Java_sp == NULL || fp == NULL) void set_last_Java_fp(intptr_t* fp) { _last_Java_fp = fp; } + +#endif // CPU_X86_VM_JAVAFRAMEANCHOR_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp index 0a63657dcb4..57edd9b195b 100644 --- a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_32.cpp @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_jniFastGetField_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" #define __ masm-> diff --git a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp index f07ae42e1a8..8b0d2e6fa6f 100644 --- a/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/jniFastGetField_x86_64.cpp @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_jniFastGetField_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" #define __ masm-> diff --git a/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp b/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp index d858ad136ef..170cd6e3adc 100644 --- a/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp +++ b/hotspot/src/cpu/x86/vm/jniTypes_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef CPU_X86_VM_JNITYPES_X86_HPP +#define CPU_X86_VM_JNITYPES_X86_HPP + +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "prims/jni.h" + // This file holds platform-dependent routines used to write primitive jni // types to the array of arguments passed into JavaCalls::call @@ -122,3 +129,5 @@ public: static inline jdouble get_double(intptr_t *from) { return *(jdouble *)(from + _JNI_SLOT_OFFSET); } #undef _JNI_SLOT_OFFSET }; + +#endif // CPU_X86_VM_JNITYPES_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/jni_x86.h b/hotspot/src/cpu/x86/vm/jni_x86.h index 887afbdd099..c6d322f2b24 100644 --- a/hotspot/src/cpu/x86/vm/jni_x86.h +++ b/hotspot/src/cpu/x86/vm/jni_x86.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp index 0a65e5a29f1..5c707fec000 100644 --- a/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp +++ b/hotspot/src/cpu/x86/vm/methodHandles_x86.cpp @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_methodHandles_x86.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "prims/methodHandles.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp b/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp index 1c68f604864..7ec07737f61 100644 --- a/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp +++ b/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_nativeInst_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_x86.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/ostream.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif void NativeInstruction::wrote(int offset) { ICache::invalidate_word(addr_at(offset)); diff --git a/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp b/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp index b99aacab5fd..d41bcccdb31 100644 --- a/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp +++ b/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef CPU_X86_VM_NATIVEINST_X86_HPP +#define CPU_X86_VM_NATIVEINST_X86_HPP + +#include "asm/assembler.hpp" +#include "memory/allocation.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#include "utilities/top.hpp" + // We have interfaces for the following instructions: // - NativeInstruction // - - NativeCall @@ -547,3 +556,5 @@ inline bool NativeInstruction::is_mov_literal64() { return false; #endif // AMD64 } + +#endif // CPU_X86_VM_NATIVEINST_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/registerMap_x86.hpp b/hotspot/src/cpu/x86/vm/registerMap_x86.hpp index 7087589a160..5d91b1ba755 100644 --- a/hotspot/src/cpu/x86/vm/registerMap_x86.hpp +++ b/hotspot/src/cpu/x86/vm/registerMap_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_REGISTERMAP_X86_HPP +#define CPU_X86_VM_REGISTERMAP_X86_HPP + // machine-dependent implemention for register maps friend class frame; @@ -37,3 +40,5 @@ void pd_clear() {} void pd_initialize() {} void pd_initialize_from(const RegisterMap* map) {} + +#endif // CPU_X86_VM_REGISTERMAP_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp b/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp index ee19fdd26cc..f1fd229b96b 100644 --- a/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp +++ b/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_definitions_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/register.hpp" +#include "register_x86.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "interp_masm_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "interp_masm_x86_64.hpp" +#endif REGISTER_DEFINITION(Register, noreg); REGISTER_DEFINITION(Register, rax); diff --git a/hotspot/src/cpu/x86/vm/register_x86.cpp b/hotspot/src/cpu/x86/vm/register_x86.cpp index c5ada7d9a93..a6301eafe4d 100644 --- a/hotspot/src/cpu/x86/vm/register_x86.cpp +++ b/hotspot/src/cpu/x86/vm/register_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_x86.cpp.incl" +#include "precompiled.hpp" +#include "register_x86.hpp" + #ifndef AMD64 const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers; #else diff --git a/hotspot/src/cpu/x86/vm/register_x86.hpp b/hotspot/src/cpu/x86/vm/register_x86.hpp index 846f65a8cef..2f4cd0dcac6 100644 --- a/hotspot/src/cpu/x86/vm/register_x86.hpp +++ b/hotspot/src/cpu/x86/vm/register_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_REGISTER_X86_HPP +#define CPU_X86_VM_REGISTER_X86_HPP + +#include "asm/register.hpp" +#include "vm_version_x86.hpp" + class VMRegImpl; typedef VMRegImpl* VMReg; @@ -219,3 +225,5 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl { static const int max_xmm; }; + +#endif // CPU_X86_VM_REGISTER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp index 0c49edf39e8..97e3645bd3c 100644 --- a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp +++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_relocInfo_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.inline.hpp" +#include "assembler_x86.inline.hpp" +#include "code/relocInfo.hpp" +#include "nativeInst_x86.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" void Relocation::pd_set_data_value(address x, intptr_t o) { diff --git a/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp b/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp index a27e4698cc9..32855b343c2 100644 --- a/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp +++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_RELOCINFO_X86_HPP +#define CPU_X86_VM_RELOCINFO_X86_HPP + // machine-dependent parts of class relocInfo private: enum { @@ -36,3 +39,5 @@ format_width = 2 #endif }; + +#endif // CPU_X86_VM_RELOCINFO_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp index 9a32a67fe74..a541fa213c3 100644 --- a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp @@ -22,9 +22,23 @@ * */ +#include "precompiled.hpp" +#ifdef COMPILER2 +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/vmreg.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "opto/runtime.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/globalDefinitions.hpp" +#include "vmreg_x86.inline.hpp" +#endif -#include "incls/_precompiled.incl" -#include "incls/_runtime_x86_32.cpp.incl" #define __ masm-> diff --git a/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp b/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp index 79fa77e62c0..8f53518bb4b 100644 --- a/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/runtime_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,23 @@ * */ -#include "incls/_precompiled.incl" +#include "precompiled.hpp" +#ifdef COMPILER2 +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/vmreg.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "opto/runtime.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/globalDefinitions.hpp" +#include "vmreg_x86.inline.hpp" +#endif + // This file should really contain the code for generating the OptoRuntime // exception_blob. However that code uses SimpleRuntimeFrame which only diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp index 847e68fda37..5a34d46314c 100644 --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif #define __ masm-> #ifdef COMPILER2 diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp index 4f679636492..e3455dea520 100644 --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp @@ -22,8 +22,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif DeoptimizationBlob *SharedRuntime::_deopt_blob; #ifdef COMPILER2 diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp index 9a7c6a022da..c3cf3f84835 100644 --- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp index 57d3b5147d4..1087bf9c54c 100644 --- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_x86.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp index baf766d4df2..a04b3f29a1a 100644 --- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of the platform-specific part of StubRoutines - for // a description of how to extend it, see the stubRoutines.hpp file. diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp index cfbd52fde9f..0a78618e1b0 100644 --- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp +++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_32.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_STUBROUTINES_X86_32_HPP +#define CPU_X86_VM_STUBROUTINES_X86_32_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -60,3 +63,5 @@ class x86 { static bool returns_to_call_stub(address return_pc) { return (return_pc == _call_stub_return_address) || return_pc == x86::get_call_stub_compiled_return(); } + +#endif // CPU_X86_VM_STUBROUTINES_X86_32_HPP diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp index c0588a322a4..caab63bfc1c 100644 --- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // Implementation of the platform-specific part of StubRoutines - for // a description of how to extend it, see the stubRoutines.hpp file. diff --git a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp index 71a4115127b..b1726caa692 100644 --- a/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp +++ b/hotspot/src/cpu/x86/vm/stubRoutines_x86_64.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_STUBROUTINES_X86_64_HPP +#define CPU_X86_VM_STUBROUTINES_X86_64_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -113,3 +116,5 @@ class x86 { return _mxcsr_std; } }; + +#endif // CPU_X86_VM_STUBROUTINES_X86_64_HPP diff --git a/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp index bcec7e124a2..60e95057cef 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreterGenerator_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP +#define CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP + protected: void generate_fixed_frame(bool native_call); // address generate_asm_interpreter_entry(bool synchronized); + +#endif // CPU_X86_VM_TEMPLATEINTERPRETERGENERATOR_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp index a0e22b6af00..c828c90fba1 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP +#define CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP + protected: @@ -35,3 +38,5 @@ #else const static int InterpreterCodeSize = 168 * 1024; #endif // AMD64 + +#endif // CPU_X86_VM_TEMPLATEINTERPRETER_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp index 513263486ec..ee518b31405 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateInterpreter_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp index b39c7f8575d..d48e980f633 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp @@ -22,8 +22,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp index cca834336db..898069bc948 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateTable_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" #ifndef CC_INTERP #define __ _masm-> diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp index 39652a59271..05293afe878 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_TEMPLATETABLE_X86_32_HPP +#define CPU_X86_VM_TEMPLATETABLE_X86_32_HPP + static void prepare_invoke(Register method, Register index, int byte_no); static void invokevirtual_helper(Register index, Register recv, Register flags); @@ -30,3 +33,5 @@ // Helpers static void index_check(Register array, Register index); static void index_check_without_pop(Register array, Register index); + +#endif // CPU_X86_VM_TEMPLATETABLE_X86_32_HPP diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp index dc16a49e340..74d55160c4a 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_templateTable_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" #ifndef CC_INTERP diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp index fce09f5c4f1..922e49542e6 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_TEMPLATETABLE_X86_64_HPP +#define CPU_X86_VM_TEMPLATETABLE_X86_64_HPP + static void prepare_invoke(Register method, Register index, int byte_no); static void invokevirtual_helper(Register index, Register recv, Register flags); @@ -30,3 +33,5 @@ // Helpers static void index_check(Register array, Register index); static void index_check_without_pop(Register array, Register index); + +#endif // CPU_X86_VM_TEMPLATETABLE_X86_64_HPP diff --git a/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp b/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp index bb3c3b68db4..8dddc9c3e1d 100644 --- a/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp +++ b/hotspot/src/cpu/x86/vm/vmStructs_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_VMSTRUCTS_X86_HPP +#define CPU_X86_VM_VMSTRUCTS_X86_HPP + // These are the CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -60,3 +63,5 @@ /* NOTE that we do not use the last_entry() macro here; it is used */ /* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ /* be present there) */ + +#endif // CPU_X86_VM_VMSTRUCTS_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp index 887e71b79e7..df40c5638b7 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp @@ -22,8 +22,21 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_x86.cpp.incl" +#include "precompiled.hpp" +#include "assembler_x86.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/java.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "vm_version_x86.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif int VM_Version::_cpu; diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp index d33edb4d0a1..6f23cb0cada 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp @@ -22,6 +22,12 @@ * */ +#ifndef CPU_X86_VM_VM_VERSION_X86_HPP +#define CPU_X86_VM_VM_VERSION_X86_HPP + +#include "runtime/globals_extension.hpp" +#include "runtime/vm_version.hpp" + class VM_Version : public Abstract_VM_Version { public: // cpuid result register layouts. These are all unions of a uint32_t @@ -520,3 +526,5 @@ public: return count >= 0 ? count : 1; } }; + +#endif // CPU_X86_VM_VM_VERSION_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/vmreg_x86.cpp b/hotspot/src/cpu/x86/vm/vmreg_x86.cpp index 88f775c81b8..a0bfe6e69c1 100644 --- a/hotspot/src/cpu/x86/vm/vmreg_x86.cpp +++ b/hotspot/src/cpu/x86/vm/vmreg_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" diff --git a/hotspot/src/cpu/x86/vm/vmreg_x86.hpp b/hotspot/src/cpu/x86/vm/vmreg_x86.hpp index 7195f3e1c36..38d47dccfc3 100644 --- a/hotspot/src/cpu/x86/vm/vmreg_x86.hpp +++ b/hotspot/src/cpu/x86/vm/vmreg_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_VMREG_X86_HPP +#define CPU_X86_VM_VMREG_X86_HPP + bool is_Register(); Register as_Register(); @@ -30,3 +33,5 @@ bool is_XMMRegister(); XMMRegister as_XMMRegister(); + +#endif // CPU_X86_VM_VMREG_X86_HPP diff --git a/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp b/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp index 8de4d0ea13d..88201bd3d83 100644 --- a/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_X86_VM_VMREG_X86_INLINE_HPP +#define CPU_X86_VM_VMREG_X86_INLINE_HPP + inline VMReg RegisterImpl::as_VMReg() { if( this==noreg ) return VMRegImpl::Bad(); #ifdef AMD64 @@ -82,3 +85,5 @@ inline bool VMRegImpl::is_concrete() { #endif // AMD64 return is_even(value()); } + +#endif // CPU_X86_VM_VMREG_X86_INLINE_HPP diff --git a/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp b/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp index e6fe9dd381b..1517ca30bf3 100644 --- a/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/vtableStubs_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_x86_32.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_x86_32.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // machine-dependent part of VtableStubs: create VtableStub of correct size and // initialize its code diff --git a/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp b/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp index 6a27f4fdeef..f12d85aa787 100644 --- a/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_x86_64.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_x86_64.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_x86.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // machine-dependent part of VtableStubs: create VtableStub of correct size and // initialize its code diff --git a/hotspot/src/cpu/zero/vm/assembler_zero.cpp b/hotspot/src/cpu/zero/vm/assembler_zero.cpp index a748d4009c2..a3e36276415 100644 --- a/hotspot/src/cpu/zero/vm/assembler_zero.cpp +++ b/hotspot/src/cpu/zero/vm/assembler_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,24 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#endif int AbstractAssembler::code_fill_byte() { return 0; diff --git a/hotspot/src/cpu/zero/vm/assembler_zero.hpp b/hotspot/src/cpu/zero/vm/assembler_zero.hpp index ec7ac47920e..2cc25a73aa0 100644 --- a/hotspot/src/cpu/zero/vm/assembler_zero.hpp +++ b/hotspot/src/cpu/zero/vm/assembler_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_HPP +#define CPU_ZERO_VM_ASSEMBLER_ZERO_HPP + // In normal, CPU-specific ports of HotSpot these two classes are used // for generating assembly language. We don't do any of this in zero, // of course, but we do sneak entry points around in CodeBuffers so we @@ -62,3 +65,5 @@ inline bool AbstractAssembler::pd_check_instruction_mark() { address ShouldNotCallThisStub(); address ShouldNotCallThisEntry(); + +#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp b/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp index 1e7f6703a71..274ded2a097 100644 --- a/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp +++ b/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,14 @@ * */ +#ifndef CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP +#define CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP + +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "code/codeCache.hpp" +#include "runtime/handles.inline.hpp" + // This file is intentionally empty + +#endif // CPU_ZERO_VM_ASSEMBLER_ZERO_INLINE_HPP diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp index 0ef2c5db186..1dc891231bb 100644 --- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interp_masm_zero.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" #ifdef CC_INTERP diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp index 49da4359d25..1980be2ba5c 100644 --- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp +++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP + // Platform specific for C++ based Interpreter #if defined(PPC) || defined(SPARC) || defined(IA64) @@ -146,3 +149,5 @@ ((VMJavaVal64*)(addr))->d) #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) + +#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp index a35809f0a5b..6a32ea6a39f 100644 --- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp +++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP +#define CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP + // Inline interpreter functions for zero inline jfloat BytecodeInterpreter::VMfloatAdd(jfloat op1, jfloat op2) { @@ -299,3 +302,5 @@ inline jshort BytecodeInterpreter::VMint2Short(jint val) { inline jbyte BytecodeInterpreter::VMint2Byte(jint val) { return (jbyte) val; } + +#endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_INLINE_HPP diff --git a/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp b/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp index 0655291158d..e3f801f400a 100644 --- a/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp +++ b/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecodes_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodes.hpp" void Bytecodes::pd_initialize() { // No zero specific initialization diff --git a/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp b/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp index 1e7f6703a71..f214bb74512 100644 --- a/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp +++ b/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_BYTECODES_ZERO_HPP +#define CPU_ZERO_VM_BYTECODES_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_BYTECODES_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/bytes_zero.hpp b/hotspot/src/cpu/zero/vm/bytes_zero.hpp index 5bd0254c481..39caaeabcc3 100644 --- a/hotspot/src/cpu/zero/vm/bytes_zero.hpp +++ b/hotspot/src/cpu/zero/vm/bytes_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_BYTES_ZERO_HPP +#define CPU_ZERO_VM_BYTES_ZERO_HPP + +#include "memory/allocation.hpp" + typedef union unaligned { u4 u; u2 us; @@ -160,5 +165,10 @@ class Bytes: AllStatic { #ifdef VM_LITTLE_ENDIAN // The following header contains the implementations of swap_u2, // swap_u4, and swap_u8 -#include "incls/_bytes_pd.inline.hpp.incl" +#ifdef TARGET_OS_ARCH_linux_zero +# include "bytes_linux_zero.inline.hpp" +#endif + #endif // VM_LITTLE_ENDIAN + +#endif // CPU_ZERO_VM_BYTES_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp b/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp index c3348ba8cd0..7837f9a239c 100644 --- a/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp +++ b/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,5 +23,10 @@ * */ +#ifndef CPU_ZERO_VM_CODEBUFFER_ZERO_HPP +#define CPU_ZERO_VM_CODEBUFFER_ZERO_HPP + private: void pd_initialize() {} + +#endif // CPU_ZERO_VM_CODEBUFFER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/copy_zero.hpp b/hotspot/src/cpu/zero/vm/copy_zero.hpp index 971d45d05c0..1837e2b98eb 100644 --- a/hotspot/src/cpu/zero/vm/copy_zero.hpp +++ b/hotspot/src/cpu/zero/vm/copy_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_COPY_ZERO_HPP +#define CPU_ZERO_VM_COPY_ZERO_HPP + // Inline functions for memory copy and fill. static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { @@ -176,3 +179,5 @@ static void pd_zero_to_words(HeapWord* tohw, size_t count) { static void pd_zero_to_bytes(void* to, size_t count) { memset(to, 0, count); } + +#endif // CPU_ZERO_VM_COPY_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp index 78bacdfa2b4..ff61306c760 100644 --- a/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp +++ b/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP +#define CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP + protected: MacroAssembler* assembler() const { return _masm; @@ -35,3 +38,5 @@ entry->set_entry_point(entry_point); return (address) entry; } + +#endif // CPU_ZERO_VM_CPPINTERPRETERGENERATOR_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp index 3d55bbecd37..1c945f22dd4 100644 --- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,33 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cppInterpreter_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/cppInterpreter.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "stack_zero.inline.hpp" +#include "utilities/debug.hpp" +#ifdef SHARK +#include "shark/shark_globals.hpp" +#endif #ifdef CC_INTERP diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp index 9c101e91382..26f0e0414c8 100644 --- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp +++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP + protected: // Size of interpreter code const static int InterpreterCodeSize = 6 * K; @@ -41,3 +44,5 @@ private: // Fast result type determination static BasicType result_type_of(methodOop method); + +#endif // CPU_ZERO_VM_CPPINTERPRETER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/debug_zero.cpp b/hotspot/src/cpu/zero/vm/debug_zero.cpp index 062198e52f5..19d00e33cdc 100644 --- a/hotspot/src/cpu/zero/vm/debug_zero.cpp +++ b/hotspot/src/cpu/zero/vm/debug_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_debug_zero.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "runtime/frame.hpp" +#include "runtime/init.hpp" +#include "runtime/os.hpp" +#include "utilities/debug.hpp" +#include "utilities/top.hpp" void pd_ps(frame f) { ShouldNotCallThis(); diff --git a/hotspot/src/cpu/zero/vm/depChecker_zero.cpp b/hotspot/src/cpu/zero/vm/depChecker_zero.cpp index 1e7f6703a71..163c10893ac 100644 --- a/hotspot/src/cpu/zero/vm/depChecker_zero.cpp +++ b/hotspot/src/cpu/zero/vm/depChecker_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#include "precompiled.hpp" +#include "compiler/disassembler.hpp" +#include "depChecker_zero.hpp" +#include "runtime/hpi.hpp" + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/depChecker_zero.hpp b/hotspot/src/cpu/zero/vm/depChecker_zero.hpp index 1e7f6703a71..cf5a401c4a8 100644 --- a/hotspot/src/cpu/zero/vm/depChecker_zero.hpp +++ b/hotspot/src/cpu/zero/vm/depChecker_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_DEPCHECKER_ZERO_HPP +#define CPU_ZERO_VM_DEPCHECKER_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_DEPCHECKER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/disassembler_zero.cpp b/hotspot/src/cpu/zero/vm/disassembler_zero.cpp index 1e7f6703a71..944a52f5dd9 100644 --- a/hotspot/src/cpu/zero/vm/disassembler_zero.cpp +++ b/hotspot/src/cpu/zero/vm/disassembler_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,6 @@ * */ +#include "precompiled.hpp" + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/disassembler_zero.hpp b/hotspot/src/cpu/zero/vm/disassembler_zero.hpp index c488cf8e765..889b91330e6 100644 --- a/hotspot/src/cpu/zero/vm/disassembler_zero.hpp +++ b/hotspot/src/cpu/zero/vm/disassembler_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP +#define CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP + static int pd_instruction_alignment() { return 1; } @@ -30,3 +33,5 @@ static const char* pd_cpu_opts() { return ""; } + +#endif // CPU_ZERO_VM_DISASSEMBLER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/dump_zero.cpp b/hotspot/src/cpu/zero/vm/dump_zero.cpp index 5ff4d60d59f..c9f341bdc05 100644 --- a/hotspot/src/cpu/zero/vm/dump_zero.cpp +++ b/hotspot/src/cpu/zero/vm/dump_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dump_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/compactingPermGenGen.hpp" +#include "memory/generation.inline.hpp" +#include "memory/space.inline.hpp" void CompactingPermGenGen::generate_vtable_methods(void** vtbl_list, void** vtable, diff --git a/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp b/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp index 95643f906a9..434b11adf1f 100644 --- a/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp +++ b/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP +#define CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP + +#include "runtime/javaCalls.hpp" +#include "stack_zero.hpp" + // | ... | // +--------------------+ ------------------ // | parameter n-1 | low addresses @@ -63,3 +69,5 @@ class EntryFrame : public ZeroFrame { char* valuebuf, int buflen) const; }; + +#endif // CPU_ZERO_VM_ENTRYFRAME_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/entry_zero.hpp b/hotspot/src/cpu/zero/vm/entry_zero.hpp index ed7dff57720..78e25a6757d 100644 --- a/hotspot/src/cpu/zero/vm/entry_zero.hpp +++ b/hotspot/src/cpu/zero/vm/entry_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP +#define CPU_ZERO_VM_ENTRY_ZERO_HPP + class ZeroEntry { public: ZeroEntry() { @@ -72,3 +75,5 @@ class ZeroEntry { return byte_offset_of(ZeroEntry, _entry_point); } }; + +#endif // CPU_ZERO_VM_ENTRY_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp b/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp index ccaf9f5bb71..b7a3b01ca80 100644 --- a/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp +++ b/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP +#define CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP + +#include "stack_zero.hpp" + // | ... | // +--------------------+ ------------------ // | frame_type | low addresses @@ -51,3 +56,5 @@ class FakeStubFrame : public ZeroFrame { char* valuebuf, int buflen) const {} }; + +#endif // CPU_ZERO_VM_FAKESTUBFRAME_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/frame_zero.cpp b/hotspot/src/cpu/zero/vm/frame_zero.cpp index cc68ec905e6..a1e5ea6cfa1 100644 --- a/hotspot/src/cpu/zero/vm/frame_zero.cpp +++ b/hotspot/src/cpu/zero/vm/frame_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,26 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_frame_zero.cpp.incl" +#include "precompiled.hpp" +#include "code/scopeDesc.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/resourceArea.hpp" +#include "oops/markOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/monitorChunk.hpp" +#include "runtime/signature.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "vmreg_zero.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#include "runtime/vframeArray.hpp" +#endif #ifdef ASSERT void RegisterMap::check_location_valid() { diff --git a/hotspot/src/cpu/zero/vm/frame_zero.hpp b/hotspot/src/cpu/zero/vm/frame_zero.hpp index f70e8d44148..56f0a1716b0 100644 --- a/hotspot/src/cpu/zero/vm/frame_zero.hpp +++ b/hotspot/src/cpu/zero/vm/frame_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_FRAME_ZERO_HPP +#define CPU_ZERO_VM_FRAME_ZERO_HPP + +#include "runtime/synchronizer.hpp" +#include "utilities/top.hpp" + // A frame represents a physical stack frame on the Zero stack. public: @@ -72,3 +78,5 @@ outputStream* st, char* buf, int buflen) const; + +#endif // CPU_ZERO_VM_FRAME_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp b/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp index 50fda705ad9..9ad237de945 100644 --- a/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp +++ b/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP +#define CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP + // Constructors inline frame::frame() { @@ -149,3 +152,5 @@ inline intptr_t* frame::unextended_sp() const { else return (intptr_t *) -1; } + +#endif // CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP diff --git a/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp b/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp index 2ab140aa4c5..ceb010f3cc8 100644 --- a/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp +++ b/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP +#define CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP + #include + +#endif // CPU_ZERO_VM_GLOBALDEFINITIONS_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/globals_zero.hpp b/hotspot/src/cpu/zero/vm/globals_zero.hpp index d55a9ca29ec..88c7d0888df 100644 --- a/hotspot/src/cpu/zero/vm/globals_zero.hpp +++ b/hotspot/src/cpu/zero/vm/globals_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_GLOBALS_ZERO_HPP +#define CPU_ZERO_VM_GLOBALS_ZERO_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // Set the default values for platform dependent flags used by the // runtime system. See globals.hpp for details of what they do. @@ -47,3 +53,5 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); define_pd_global(bool, UseMembar, false); + +#endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp b/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp index 3291c387dba..85e9f729140 100644 --- a/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp +++ b/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "code/icBuffer.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_zero.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" int InlineCacheBuffer::ic_stub_code_size() { // NB set this once the functions below are implemented diff --git a/hotspot/src/cpu/zero/vm/icache_zero.cpp b/hotspot/src/cpu/zero/vm/icache_zero.cpp index 5253ff55e7a..b37465016dd 100644 --- a/hotspot/src/cpu/zero/vm/icache_zero.cpp +++ b/hotspot/src/cpu/zero/vm/icache_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icache_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "runtime/icache.hpp" void ICacheStubGenerator::generate_icache_flush( ICache::flush_icache_stub_t* flush_icache_stub) { diff --git a/hotspot/src/cpu/zero/vm/icache_zero.hpp b/hotspot/src/cpu/zero/vm/icache_zero.hpp index 7dd2bcb79e3..2383d211e2e 100644 --- a/hotspot/src/cpu/zero/vm/icache_zero.hpp +++ b/hotspot/src/cpu/zero/vm/icache_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_ICACHE_ZERO_HPP +#define CPU_ZERO_VM_ICACHE_ZERO_HPP + // Interface for updating the instruction cache. Whenever the VM // modifies code, part of the processor instruction cache potentially // has to be flushed. This implementation is empty: Zero never deals @@ -34,3 +37,5 @@ class ICache : public AbstractICache { static void invalidate_word(address addr) {} static void invalidate_range(address start, int nbytes) {} }; + +#endif // CPU_ZERO_VM_ICACHE_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp b/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp index 1e7f6703a71..8b470ebcee7 100644 --- a/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp +++ b/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,22 @@ * */ +#include "precompiled.hpp" +#include "interp_masm_zero.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "oops/arrayOop.hpp" +#include "oops/markOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp b/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp index 75b9be05e04..493f0b7909d 100644 --- a/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp +++ b/hotspot/src/cpu/zero/vm/interp_masm_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_INTERP_MASM_ZERO_HPP +#define CPU_ZERO_VM_INTERP_MASM_ZERO_HPP + +#include "assembler_zero.inline.hpp" +#include "interpreter/invocationCounter.hpp" + // This file specializes the assember with interpreter-specific macros class InterpreterMacroAssembler : public MacroAssembler { @@ -36,3 +42,5 @@ class InterpreterMacroAssembler : public MacroAssembler { ShouldNotCallThis(); } }; + +#endif // CPU_ZERO_VM_INTERP_MASM_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp index e0f3a5eac76..0e2b7888077 100644 --- a/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp +++ b/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,14 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP + +#include "interpreter/bytecodeInterpreter.hpp" +#include "oops/methodOop.hpp" +#include "runtime/thread.hpp" +#include "stack_zero.hpp" + #ifdef CC_INTERP // | ... | // +--------------------+ ------------------ @@ -71,3 +79,5 @@ class InterpreterFrame : public ZeroFrame { int buflen) const; }; #endif // CC_INTERP + +#endif // CPU_ZERO_VM_INTERPRETERFRAME_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp index 2f0ce7ad11e..fe9acbf7595 100644 --- a/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp +++ b/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP + // Generation of Interpreter // friend class AbstractInterpreterGenerator; @@ -35,3 +38,5 @@ address generate_empty_entry(); address generate_accessor_entry(); address generate_method_handle_entry(); + +#endif // CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp b/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp index c8c50a47aa1..785645ac77e 100644 --- a/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp +++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreterRT_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/signature.hpp" +#include "stack_zero.inline.hpp" void InterpreterRuntime::SignatureHandlerGeneratorBase::pass_int() { push(T_INT); diff --git a/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp index 5ff34d99bb5..6330dd4fe4b 100644 --- a/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp +++ b/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP + +#include "memory/allocation.hpp" + class SignatureHandler { public: static SignatureHandler *from_handlerAddr(address handlerAddr) { @@ -125,3 +130,5 @@ class SlowSignatureHandlerGenerator : public SignatureHandlerGeneratorBase { return (SignatureHandler *) cif(); } }; + +#endif // CPU_ZERO_VM_INTERPRETERRT_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp index a74cef8ae01..027d372a2f6 100644 --- a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,32 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_interpreter_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif address AbstractInterpreterGenerator::generate_slow_signature_handler() { _masm->advance(1); diff --git a/hotspot/src/cpu/zero/vm/interpreter_zero.hpp b/hotspot/src/cpu/zero/vm/interpreter_zero.hpp index 192fe210391..b7b0f1d8b32 100644 --- a/hotspot/src/cpu/zero/vm/interpreter_zero.hpp +++ b/hotspot/src/cpu/zero/vm/interpreter_zero.hpp @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_INTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_INTERPRETER_ZERO_HPP + public: static void invoke_method(methodOop method, address entry_point, TRAPS) { ((ZeroEntry *) entry_point)->invoke(method, THREAD); @@ -47,3 +50,5 @@ assert(i <= 0, "local direction already negated"); return stackElementWords * i; } + +#endif // CPU_ZERO_VM_INTERPRETER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp b/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp index 0763790b64e..275fcf53dca 100644 --- a/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp +++ b/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP +#define CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP + private: ZeroFrame* volatile _last_Java_fp; @@ -89,3 +92,5 @@ static ByteSize last_Java_fp_offset() { return byte_offset_of(JavaFrameAnchor, _last_Java_fp); } + +#endif // CPU_ZERO_VM_JAVAFRAMEANCHOR_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp b/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp index 1d089430b97..d37ed807b69 100644 --- a/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp +++ b/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jniFastGetField_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/safepoint.hpp" address JNI_FastGetField::generate_fast_get_boolean_field() { return (address) -1; diff --git a/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp b/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp index 0ee26a77215..766b5e1d6bc 100644 --- a/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp +++ b/hotspot/src/cpu/zero/vm/jniTypes_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef CPU_ZERO_VM_JNITYPES_ZERO_HPP +#define CPU_ZERO_VM_JNITYPES_ZERO_HPP + +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "prims/jni.h" + // This file holds platform-dependent routines used to write primitive jni // types to the array of arguments passed into JavaCalls::call @@ -106,3 +113,5 @@ public: #endif }; + +#endif // CPU_ZERO_VM_JNITYPES_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/jni_zero.h b/hotspot/src/cpu/zero/vm/jni_zero.h index e814a9e1c9c..0e21634dff6 100644 --- a/hotspot/src/cpu/zero/vm/jni_zero.h +++ b/hotspot/src/cpu/zero/vm/jni_zero.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * diff --git a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp index fa6e675f93f..b76b2a7c2f9 100644 --- a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp +++ b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_methodHandles_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "prims/methodHandles.hpp" int MethodHandles::adapter_conversion_ops_supported_mask() { ShouldNotCallThis(); diff --git a/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp b/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp index 60fb24f2d1d..98a2121a8da 100644 --- a/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp +++ b/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_nativeInst_zero.cpp.incl" +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/resourceArea.hpp" +#include "nativeInst_zero.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/ostream.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif // This method is called by nmethod::make_not_entrant_or_zombie to // insert a jump to SharedRuntime::get_handle_wrong_method_stub() diff --git a/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp b/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp index 005574dff28..16d1d3f0dee 100644 --- a/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp +++ b/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,15 @@ * */ +#ifndef CPU_ZERO_VM_NATIVEINST_ZERO_HPP +#define CPU_ZERO_VM_NATIVEINST_ZERO_HPP + +#include "asm/assembler.hpp" +#include "memory/allocation.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#include "utilities/top.hpp" + // We have interfaces for the following instructions: // - NativeInstruction // - - NativeCall @@ -183,3 +192,5 @@ class NativeGeneralJump : public NativeInstruction { inline NativeGeneralJump* nativeGeneralJump_at(address address) { ShouldNotCallThis(); } + +#endif // CPU_ZERO_VM_NATIVEINST_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/registerMap_zero.hpp b/hotspot/src/cpu/zero/vm/registerMap_zero.hpp index 64a6b65afae..6c9e0e6827b 100644 --- a/hotspot/src/cpu/zero/vm/registerMap_zero.hpp +++ b/hotspot/src/cpu/zero/vm/registerMap_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef CPU_ZERO_VM_REGISTERMAP_ZERO_HPP +#define CPU_ZERO_VM_REGISTERMAP_ZERO_HPP + // machine-dependent implemention for register maps friend class frame; @@ -37,3 +40,5 @@ void pd_clear() {} void pd_initialize() {} void pd_initialize_from(const RegisterMap* map) {} + +#endif // CPU_ZERO_VM_REGISTERMAP_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp b/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp index 1e7f6703a71..4ed89fe2b28 100644 --- a/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp +++ b/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,10 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/register.hpp" +#include "interp_masm_zero.hpp" +#include "register_zero.hpp" + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/register_zero.cpp b/hotspot/src/cpu/zero/vm/register_zero.cpp index ddea3c248ff..31bee7baf78 100644 --- a/hotspot/src/cpu/zero/vm/register_zero.cpp +++ b/hotspot/src/cpu/zero/vm/register_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register_zero.cpp.incl" +#include "precompiled.hpp" +#include "register_zero.hpp" const int ConcreteRegisterImpl::max_gpr = RegisterImpl::number_of_registers; const int ConcreteRegisterImpl::max_fpr = diff --git a/hotspot/src/cpu/zero/vm/register_zero.hpp b/hotspot/src/cpu/zero/vm/register_zero.hpp index 65f5ca6eda9..0bcc7638248 100644 --- a/hotspot/src/cpu/zero/vm/register_zero.hpp +++ b/hotspot/src/cpu/zero/vm/register_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_REGISTER_ZERO_HPP +#define CPU_ZERO_VM_REGISTER_ZERO_HPP + +#include "asm/register.hpp" +#include "vm_version_zero.hpp" + class VMRegImpl; typedef VMRegImpl* VMReg; @@ -108,3 +114,5 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl { }; CONSTANT_REGISTER_DECLARATION(Register, noreg, (-1)); + +#endif // CPU_ZERO_VM_REGISTER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp b/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp index 637d9c799d8..e04acad8fd0 100644 --- a/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp +++ b/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_relocInfo_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.inline.hpp" +#include "assembler_zero.inline.hpp" +#include "code/relocInfo.hpp" +#include "nativeInst_zero.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" void Relocation::pd_set_data_value(address x, intptr_t o) { ShouldNotCallThis(); diff --git a/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp b/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp index 6abcb888152..75cf0eaf9af 100644 --- a/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp +++ b/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_RELOCINFO_ZERO_HPP +#define CPU_ZERO_VM_RELOCINFO_ZERO_HPP + // machine-dependent parts of class relocInfo private: enum { @@ -30,3 +33,5 @@ offset_unit = 1, format_width = 1 }; + +#endif // CPU_ZERO_VM_RELOCINFO_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp index 2fa914482eb..b88c5e810f6 100644 --- a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp +++ b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,28 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sharedRuntime_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "code/debugInfoRec.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframeArray.hpp" +#include "vmreg_zero.inline.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif +#ifdef SHARK +#include "compiler/compileBroker.hpp" +#include "shark/sharkCompiler.hpp" +#endif DeoptimizationBlob *SharedRuntime::_deopt_blob; SafepointBlob *SharedRuntime::_polling_page_safepoint_handler_blob; diff --git a/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp b/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp index 4cea6594d32..0dd4b0a52d7 100644 --- a/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp +++ b/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_SHARKFRAME_ZERO_HPP +#define CPU_ZERO_VM_SHARKFRAME_ZERO_HPP + +#include "oops/methodOop.hpp" +#include "stack_zero.hpp" + // | ... | // +--------------------+ ------------------ // | stack slot n-1 | low addresses @@ -77,3 +83,5 @@ class SharkFrame : public ZeroFrame { char* valuebuf, int buflen) const; }; + +#endif // CPU_ZERO_VM_SHARKFRAME_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp b/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp index 30151973840..32a2646139f 100644 --- a/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp +++ b/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP +#define CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP + // Set the default values for platform dependent flags used by the // Shark compiler. See globals.hpp for details of what they do. @@ -60,3 +63,5 @@ define_pd_global(uintx, MaxPermSize, 64*M ); define_pd_global(bool, NeverActAsServerClassMachine, true ); define_pd_global(uint64_t, MaxRAM, 1ULL*G); define_pd_global(bool, CICompileOSR, true ); + +#endif // CPU_ZERO_VM_SHARK_GLOBALS_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/stack_zero.cpp b/hotspot/src/cpu/zero/vm/stack_zero.cpp index 59e94978baf..f1b31cc95ae 100644 --- a/hotspot/src/cpu/zero/vm/stack_zero.cpp +++ b/hotspot/src/cpu/zero/vm/stack_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stack_zero.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "stack_zero.hpp" +#include "stack_zero.inline.hpp" int ZeroStack::suggest_size(Thread *thread) const { assert(needs_setup(), "already set up"); diff --git a/hotspot/src/cpu/zero/vm/stack_zero.hpp b/hotspot/src/cpu/zero/vm/stack_zero.hpp index 304944aa1a2..5f34b7c1cb7 100644 --- a/hotspot/src/cpu/zero/vm/stack_zero.hpp +++ b/hotspot/src/cpu/zero/vm/stack_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,11 @@ * */ +#ifndef CPU_ZERO_VM_STACK_ZERO_HPP +#define CPU_ZERO_VM_STACK_ZERO_HPP + +#include "utilities/sizes.hpp" + class ZeroStack { private: intptr_t *_base; // the last available word @@ -217,3 +222,5 @@ class ZeroFrame { char* fieldbuf, int buflen) const; }; + +#endif // CPU_ZERO_VM_STACK_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp b/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp index 516312f436a..f0387bb7bfd 100644 --- a/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp +++ b/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef CPU_ZERO_VM_STACK_ZERO_INLINE_HPP +#define CPU_ZERO_VM_STACK_ZERO_INLINE_HPP + +#include "runtime/thread.hpp" +#include "stack_zero.hpp" + // This function should match SharkStack::CreateStackOverflowCheck inline void ZeroStack::overflow_check(int required_words, TRAPS) { // Check the Zero stack @@ -46,3 +52,5 @@ inline int ZeroStack::abi_stack_available(Thread *thread) const { int stack_free = thread->stack_size() - stack_used; return stack_free - shadow_pages_size(); } + +#endif // CPU_ZERO_VM_STACK_ZERO_INLINE_HPP diff --git a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp index ada26e089bc..77d23a4ffb7 100644 --- a/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp +++ b/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubGenerator_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "nativeInst_zero.hpp" +#include "oops/instanceOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#include "stack_zero.inline.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // Declaration and definition of StubGenerator (no .hpp file). // For a more detailed description of the stub routine structure diff --git a/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp b/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp index ba92c3b9324..4a8c7cb9329 100644 --- a/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp +++ b/hotspot/src/cpu/zero/vm/stubRoutines_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_zero.cpp.incl" +#include "precompiled.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif #ifdef IA32 address StubRoutines::x86::_call_stub_compiled_return = NULL; diff --git a/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp b/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp index b088f548a36..d4d521b4bc4 100644 --- a/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp +++ b/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_STUBROUTINES_ZERO_HPP +#define CPU_ZERO_VM_STUBROUTINES_ZERO_HPP + // This file holds the platform specific parts of the StubRoutines // definition. See stubRoutines.hpp for a description on how to // extend it. @@ -53,3 +56,5 @@ static address _call_stub_compiled_return; }; #endif // IA32 + +#endif // CPU_ZERO_VM_STUBROUTINES_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp index 1e7f6703a71..1747bc6ea26 100644 --- a/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp +++ b/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP +#define CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_TEMPLATEINTERPRETERGENERATOR_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp index 1e7f6703a71..53486a3907b 100644 --- a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,27 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterGenerator.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "oops/arrayOop.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "prims/jvmtiThreadState.hpp" +#include "runtime/arguments.hpp" +#include "runtime/deoptimization.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/timer.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/debug.hpp" + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp index 1e7f6703a71..fb0e266a3a9 100644 --- a/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp +++ b/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP +#define CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_TEMPLATEINTERPRETER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/templateTable_zero.cpp b/hotspot/src/cpu/zero/vm/templateTable_zero.cpp index 1e7f6703a71..e5fb7b17f7a 100644 --- a/hotspot/src/cpu/zero/vm/templateTable_zero.cpp +++ b/hotspot/src/cpu/zero/vm/templateTable_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,17 @@ * */ +#include "precompiled.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "interpreter/templateTable.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/synchronizer.hpp" + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/templateTable_zero.hpp b/hotspot/src/cpu/zero/vm/templateTable_zero.hpp index 1e7f6703a71..6fc38560522 100644 --- a/hotspot/src/cpu/zero/vm/templateTable_zero.hpp +++ b/hotspot/src/cpu/zero/vm/templateTable_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP +#define CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP + // This file is intentionally empty + +#endif // CPU_ZERO_VM_TEMPLATETABLE_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp b/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp index 872d37fcc25..1b3815a0a2c 100644 --- a/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp +++ b/hotspot/src/cpu/zero/vm/vmStructs_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP +#define CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP + // These are the CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -50,3 +53,5 @@ /* NOTE that we do not use the last_entry() macro here; it is used */ /* in vmStructs__.hpp's VM_LONG_CONSTANTS_OS_CPU macro (and must */ /* be present there) */ + +#endif // CPU_ZERO_VM_VMSTRUCTS_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/vm_version_zero.cpp b/hotspot/src/cpu/zero/vm/vm_version_zero.cpp index 1e7f6703a71..87ff88be5ae 100644 --- a/hotspot/src/cpu/zero/vm/vm_version_zero.cpp +++ b/hotspot/src/cpu/zero/vm/vm_version_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,14 @@ * */ +#include "precompiled.hpp" +#include "assembler_zero.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/java.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "vm_version_zero.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif + // This file is intentionally empty diff --git a/hotspot/src/cpu/zero/vm/vm_version_zero.hpp b/hotspot/src/cpu/zero/vm/vm_version_zero.hpp index c16ab5ddc71..78109b933f4 100644 --- a/hotspot/src/cpu/zero/vm/vm_version_zero.hpp +++ b/hotspot/src/cpu/zero/vm/vm_version_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,9 +23,17 @@ * */ +#ifndef CPU_ZERO_VM_VM_VERSION_ZERO_HPP +#define CPU_ZERO_VM_VM_VERSION_ZERO_HPP + +#include "runtime/globals_extension.hpp" +#include "runtime/vm_version.hpp" + class VM_Version : public Abstract_VM_Version { public: static const char* cpu_features() { return ""; } }; + +#endif // CPU_ZERO_VM_VM_VERSION_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/vmreg_zero.cpp b/hotspot/src/cpu/zero/vm/vmreg_zero.cpp index 8385cb976dc..a5181cf8f53 100644 --- a/hotspot/src/cpu/zero/vm/vmreg_zero.cpp +++ b/hotspot/src/cpu/zero/vm/vmreg_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" void VMRegImpl::set_regName() { int i = 0; diff --git a/hotspot/src/cpu/zero/vm/vmreg_zero.hpp b/hotspot/src/cpu/zero/vm/vmreg_zero.hpp index 6234fdd6f85..60354a11ca0 100644 --- a/hotspot/src/cpu/zero/vm/vmreg_zero.hpp +++ b/hotspot/src/cpu/zero/vm/vmreg_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef CPU_ZERO_VM_VMREG_ZERO_HPP +#define CPU_ZERO_VM_VMREG_ZERO_HPP + bool is_Register(); Register as_Register(); bool is_FloatRegister(); FloatRegister as_FloatRegister(); + +#endif // CPU_ZERO_VM_VMREG_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp b/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp index 56c7b8712ce..0c771062a25 100644 --- a/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp +++ b/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP +#define CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP + inline VMReg RegisterImpl::as_VMReg() { return VMRegImpl::as_VMReg(encoding()); } @@ -30,3 +33,5 @@ inline VMReg RegisterImpl::as_VMReg() { inline VMReg FloatRegisterImpl::as_VMReg() { return VMRegImpl::as_VMReg(encoding() + ConcreteRegisterImpl::max_gpr); } + +#endif // CPU_ZERO_VM_VMREG_ZERO_INLINE_HPP diff --git a/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp b/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp index 13605d9362d..e4ea32e44c1 100644 --- a/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp +++ b/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs_zero.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "code/vtableStubs.hpp" +#include "interp_masm_zero.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "runtime/sharedRuntime.hpp" +#include "vmreg_zero.inline.hpp" +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif VtableStub* VtableStubs::create_vtable_stub(int vtable_index) { ShouldNotCallThis(); diff --git a/hotspot/src/os/linux/launcher/java.c b/hotspot/src/os/linux/launcher/java.c index 9dd319a2b20..0f69d301122 100644 --- a/hotspot/src/os/linux/launcher/java.c +++ b/hotspot/src/os/linux/launcher/java.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/launcher/java.h b/hotspot/src/os/linux/launcher/java.h index 88b0ccb541d..b77855efee9 100644 --- a/hotspot/src/os/linux/launcher/java.h +++ b/hotspot/src/os/linux/launcher/java.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/launcher/java_md.c b/hotspot/src/os/linux/launcher/java_md.c index 3308ff62df3..7af7e52a56a 100644 --- a/hotspot/src/os/linux/launcher/java_md.c +++ b/hotspot/src/os/linux/launcher/java_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/launcher/java_md.h b/hotspot/src/os/linux/launcher/java_md.h index 237a6526839..8179a3c1c61 100644 --- a/hotspot/src/os/linux/launcher/java_md.h +++ b/hotspot/src/os/linux/launcher/java_md.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/attachListener_linux.cpp b/hotspot/src/os/linux/vm/attachListener_linux.cpp index a97f5869b61..5b9c7294995 100644 --- a/hotspot/src/os/linux/vm/attachListener_linux.cpp +++ b/hotspot/src/os/linux/vm/attachListener_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_attachListener_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/os.hpp" +#include "services/attachListener.hpp" +#include "services/dtraceAttacher.hpp" #include #include diff --git a/hotspot/src/os/linux/vm/c1_globals_linux.hpp b/hotspot/src/os/linux/vm/c1_globals_linux.hpp index 301d169c178..0507898060a 100644 --- a/hotspot/src/os/linux/vm/c1_globals_linux.hpp +++ b/hotspot/src/os/linux/vm/c1_globals_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_LINUX_VM_C1_GLOBALS_LINUX_HPP +#define OS_LINUX_VM_C1_GLOBALS_LINUX_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // client compiler. (see c1_globals.hpp) // + +#endif // OS_LINUX_VM_C1_GLOBALS_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/c2_globals_linux.hpp b/hotspot/src/os/linux/vm/c2_globals_linux.hpp index b14af55c55c..d81638946c4 100644 --- a/hotspot/src/os/linux/vm/c2_globals_linux.hpp +++ b/hotspot/src/os/linux/vm/c2_globals_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_LINUX_VM_C2_GLOBALS_LINUX_HPP +#define OS_LINUX_VM_C2_GLOBALS_LINUX_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // server compiler. (see c2_globals.hpp) // + +#endif // OS_LINUX_VM_C2_GLOBALS_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/chaitin_linux.cpp b/hotspot/src/os/linux/vm/chaitin_linux.cpp index 461ad342c53..e4925644dbc 100644 --- a/hotspot/src/os/linux/vm/chaitin_linux.cpp +++ b/hotspot/src/os/linux/vm/chaitin_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_chaitin_linux.cpp.incl" +#include "precompiled.hpp" +#include "opto/chaitin.hpp" +#include "opto/machnode.hpp" void PhaseRegAlloc::pd_preallocate_hook() { // no action diff --git a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp b/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp index a7be2486e13..0f340fb5730 100644 --- a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp +++ b/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dtraceJSDT_linux.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "runtime/dtraceJSDT.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/os.hpp" +#include "runtime/signature.hpp" +#include "utilities/globalDefinitions.hpp" int DTraceJSDT::pd_activate( void* baseAddress, jstring module, diff --git a/hotspot/src/os/linux/vm/globals_linux.hpp b/hotspot/src/os/linux/vm/globals_linux.hpp index 75b31373703..cd74589e40c 100644 --- a/hotspot/src/os/linux/vm/globals_linux.hpp +++ b/hotspot/src/os/linux/vm/globals_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_GLOBALS_LINUX_HPP +#define OS_LINUX_VM_GLOBALS_LINUX_HPP + // // Defines Linux specific flags. They are not available on other platforms. // @@ -42,3 +45,5 @@ define_pd_global(bool, UseLargePages, false); define_pd_global(bool, UseLargePagesIndividualAllocation, false); define_pd_global(bool, UseOSErrorReporting, false); define_pd_global(bool, UseThreadPriorities, true) ; + +#endif // OS_LINUX_VM_GLOBALS_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/hpi_linux.cpp b/hotspot/src/os/linux/vm/hpi_linux.cpp index 04bec5d2db0..063e8a7a154 100644 --- a/hotspot/src/os/linux/vm/hpi_linux.cpp +++ b/hotspot/src/os/linux/vm/hpi_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_hpi_linux.cpp.incl" +#include "precompiled.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/os.hpp" # include # include diff --git a/hotspot/src/os/linux/vm/hpi_linux.hpp b/hotspot/src/os/linux/vm/hpi_linux.hpp index 5e0daf8e722..5e698264f04 100644 --- a/hotspot/src/os/linux/vm/hpi_linux.hpp +++ b/hotspot/src/os/linux/vm/hpi_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_HPI_LINUX_HPP +#define OS_LINUX_VM_HPI_LINUX_HPP + // // Because the interruptible IO has been dropped for HotSpot/Linux, // the following HPI interface is very different from HotSparc. @@ -222,3 +225,5 @@ inline int hpi::set_sock_opt(int fd, int level, int optname, // Reconciliation History // hpi_solaris.hpp 1.9 99/08/30 16:31:23 // End + +#endif // OS_LINUX_VM_HPI_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp b/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp index acc096be80f..5ea58c3b945 100644 --- a/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp +++ b/hotspot/src/os/linux/vm/interfaceSupport_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP +#define OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP + // Contains inlined functions for class InterfaceSupport static inline void serialize_memory(JavaThread *thread) { os::write_memory_serialize_page(thread); } + +#endif // OS_LINUX_VM_INTERFACESUPPORT_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/jsig.c b/hotspot/src/os/linux/vm/jsig.c index 638b5e70ec5..13ddb668341 100644 --- a/hotspot/src/os/linux/vm/jsig.c +++ b/hotspot/src/os/linux/vm/jsig.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/jvm_linux.cpp b/hotspot/src/os/linux/vm/jvm_linux.cpp index 0d1615eb1f2..ea5bf2d36c7 100644 --- a/hotspot/src/os/linux/vm/jvm_linux.cpp +++ b/hotspot/src/os/linux/vm/jvm_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jvm_linux.cpp.incl" +#include "precompiled.hpp" +#include "prims/jvm.h" +#include "runtime/interfaceSupport.hpp" +#include "runtime/osThread.hpp" #include diff --git a/hotspot/src/os/linux/vm/jvm_linux.h b/hotspot/src/os/linux/vm/jvm_linux.h index 63ef30353c6..795fec11337 100644 --- a/hotspot/src/os/linux/vm/jvm_linux.h +++ b/hotspot/src/os/linux/vm/jvm_linux.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_JVM_LINUX_H +#define OS_LINUX_VM_JVM_LINUX_H + /* // HotSpot integration note: // @@ -95,3 +98,5 @@ // Reconciliation History // jvm_solaris.h 1.6 99/06/22 16:38:47 // End + +#endif // OS_LINUX_VM_JVM_LINUX_H diff --git a/hotspot/src/os/linux/vm/mutex_linux.cpp b/hotspot/src/os/linux/vm/mutex_linux.cpp index 3cc4bbd4239..864aca7e86a 100644 --- a/hotspot/src/os/linux/vm/mutex_linux.cpp +++ b/hotspot/src/os/linux/vm/mutex_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutex_linux.cpp.incl" +#include "precompiled.hpp" +#include "mutex_linux.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutex.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" // put OS-includes here # include diff --git a/hotspot/src/os/linux/vm/mutex_linux.inline.hpp b/hotspot/src/os/linux/vm/mutex_linux.inline.hpp index 87c6a3701ec..cde6dfe428b 100644 --- a/hotspot/src/os/linux/vm/mutex_linux.inline.hpp +++ b/hotspot/src/os/linux/vm/mutex_linux.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,16 @@ * */ +#ifndef OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP +#define OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP + +#include "os_linux.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "thread_linux.inline.hpp" + // Reconciliation History // mutex_solaris.inline.hpp 1.5 99/06/22 16:38:49 // End + +#endif // OS_LINUX_VM_MUTEX_LINUX_INLINE_HPP diff --git a/hotspot/src/os/linux/vm/osThread_linux.cpp b/hotspot/src/os/linux/vm/osThread_linux.cpp index 6a387225e29..f4ec9f78faa 100644 --- a/hotspot/src/os/linux/vm/osThread_linux.cpp +++ b/hotspot/src/os/linux/vm/osThread_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,23 @@ * */ -// do not include precompiled header file -# include "incls/_osThread_linux.cpp.incl" +// no precompiled headers +#include "runtime/atomic.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/osThread.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif void OSThread::pd_initialize() { diff --git a/hotspot/src/os/linux/vm/osThread_linux.hpp b/hotspot/src/os/linux/vm/osThread_linux.hpp index 389e4a8722c..22945135b78 100644 --- a/hotspot/src/os/linux/vm/osThread_linux.hpp +++ b/hotspot/src/os/linux/vm/osThread_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_OSTHREAD_LINUX_HPP +#define OS_LINUX_VM_OSTHREAD_LINUX_HPP + private: int _thread_type; @@ -139,3 +142,5 @@ private: // Reconciliation History // osThread_solaris.hpp 1.24 99/08/27 13:11:54 // End + +#endif // OS_LINUX_VM_OSTHREAD_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp index e42507f4aa7..f47bd62c721 100644 --- a/hotspot/src/os/linux/vm/os_linux.cpp +++ b/hotspot/src/os/linux/vm/os_linux.cpp @@ -24,8 +24,64 @@ # define __STDC_FORMAT_MACROS -// do not include precompiled header file -# include "incls/_os_linux.cpp.incl" +// no precompiled headers +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/compileBroker.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "memory/filemap.hpp" +#include "mutex_linux.inline.hpp" +#include "oops/oop.inline.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/globals.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/osThread.hpp" +#include "runtime/perfMemory.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/statSampler.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/attachListener.hpp" +#include "services/runtimeService.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/defaultStream.hpp" +#include "utilities/events.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/vmError.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +# include "nativeInst_zero.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp index 15b2c1efc69..18803ac3496 100644 --- a/hotspot/src/os/linux/vm/os_linux.hpp +++ b/hotspot/src/os/linux/vm/os_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_OS_LINUX_HPP +#define OS_LINUX_VM_OS_LINUX_HPP + // Linux_OS defines the interface to Linux operating systems /* pthread_getattr_np comes with LinuxThreads-0.9-7 on RedHat 7.1 */ @@ -328,3 +331,5 @@ class PlatformParker : public CHeapObj { assert_status(status == 0, status, "mutex_init"); } } ; + +#endif // OS_LINUX_VM_OS_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/os_linux.inline.hpp b/hotspot/src/os/linux/vm/os_linux.inline.hpp index 035465da8c7..002b23ea9d4 100644 --- a/hotspot/src/os/linux/vm/os_linux.inline.hpp +++ b/hotspot/src/os/linux/vm/os_linux.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,24 @@ * */ +#ifndef OS_LINUX_VM_OS_LINUX_INLINE_HPP +#define OS_LINUX_VM_OS_LINUX_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "atomic_linux_x86.inline.hpp" +# include "orderAccess_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_sparc +# include "atomic_linux_sparc.inline.hpp" +# include "orderAccess_linux_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_zero +# include "atomic_linux_zero.inline.hpp" +# include "orderAccess_linux_zero.inline.hpp" +#endif + inline void* os::thread_local_storage_at(int index) { return pthread_getspecific((pthread_key_t)index); } @@ -123,3 +141,5 @@ inline int os::closedir(DIR *dirp) inline bool os::numa_has_static_binding() { return true; } inline bool os::numa_has_group_homing() { return false; } + +#endif // OS_LINUX_VM_OS_LINUX_INLINE_HPP diff --git a/hotspot/src/os/linux/vm/os_share_linux.hpp b/hotspot/src/os/linux/vm/os_share_linux.hpp index 5b9d5321c02..7cc2635980a 100644 --- a/hotspot/src/os/linux/vm/os_share_linux.hpp +++ b/hotspot/src/os/linux/vm/os_share_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_LINUX_VM_OS_SHARE_LINUX_HPP +#define OS_LINUX_VM_OS_SHARE_LINUX_HPP + // misc void signalHandler(int, siginfo_t*, ucontext_t*); void handle_unexpected_exception(Thread* thread, int sig, siginfo_t* info, address pc, address adjusted_pc); @@ -30,3 +33,5 @@ void continue_with_dump(void); #endif #define PROCFILE_LENGTH 128 + +#endif // OS_LINUX_VM_OS_SHARE_LINUX_HPP diff --git a/hotspot/src/os/linux/vm/perfMemory_linux.cpp b/hotspot/src/os/linux/vm/perfMemory_linux.cpp index da5e0d643b7..db5340f9d7c 100644 --- a/hotspot/src/os/linux/vm/perfMemory_linux.cpp +++ b/hotspot/src/os/linux/vm/perfMemory_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_perfMemory_linux.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "os_linux.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/perfMemory.hpp" +#include "utilities/exceptions.hpp" // put OS-includes here # include diff --git a/hotspot/src/os/linux/vm/stubRoutines_linux.cpp b/hotspot/src/os/linux/vm/stubRoutines_linux.cpp index c705716dc56..3723a0f7dfa 100644 --- a/hotspot/src/os/linux/vm/stubRoutines_linux.cpp +++ b/hotspot/src/os/linux/vm/stubRoutines_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" + diff --git a/hotspot/src/os/linux/vm/threadCritical_linux.cpp b/hotspot/src/os/linux/vm/threadCritical_linux.cpp index 526352ce910..b1d9ab2aa44 100644 --- a/hotspot/src/os/linux/vm/threadCritical_linux.cpp +++ b/hotspot/src/os/linux/vm/threadCritical_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadCritical_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadCritical.hpp" +#include "thread_linux.inline.hpp" // put OS-includes here # include diff --git a/hotspot/src/os/linux/vm/thread_linux.inline.hpp b/hotspot/src/os/linux/vm/thread_linux.inline.hpp index 5367a569e0d..f09ed2877ef 100644 --- a/hotspot/src/os/linux/vm/thread_linux.inline.hpp +++ b/hotspot/src/os/linux/vm/thread_linux.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,31 @@ * */ +#ifndef OS_LINUX_VM_THREAD_LINUX_INLINE_HPP +#define OS_LINUX_VM_THREAD_LINUX_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/prefetch.hpp" +#include "runtime/thread.hpp" +#include "runtime/threadLocalStorage.hpp" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "atomic_linux_x86.inline.hpp" +# include "orderAccess_linux_x86.inline.hpp" +# include "prefetch_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_sparc +# include "atomic_linux_sparc.inline.hpp" +# include "orderAccess_linux_sparc.inline.hpp" +# include "prefetch_linux_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_zero +# include "atomic_linux_zero.inline.hpp" +# include "orderAccess_linux_zero.inline.hpp" +# include "prefetch_linux_zero.inline.hpp" +#endif + // Contains inlined functions for class Thread and ThreadLocalStorage inline void ThreadLocalStorage::pd_invalidate_all() {} // nothing to do + +#endif // OS_LINUX_VM_THREAD_LINUX_INLINE_HPP diff --git a/hotspot/src/os/linux/vm/vmError_linux.cpp b/hotspot/src/os/linux/vm/vmError_linux.cpp index 8e73d288634..578ef7c8692 100644 --- a/hotspot/src/os/linux/vm/vmError_linux.cpp +++ b/hotspot/src/os/linux/vm/vmError_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmError_linux.cpp.incl" +#include "precompiled.hpp" +#include "runtime/arguments.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" +#include "utilities/vmError.hpp" #include #include diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp index d60d0bb6469..632a2126394 100644 --- a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp +++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp @@ -38,9 +38,22 @@ #define protected public #include -#include "incls/_precompiled.incl" -#include "incls/_vmStructs.cpp.incl" - +#include "code/codeBlob.hpp" +#include "code/nmethod.hpp" +#include "code/pcDesc.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/heap.hpp" +#include "memory/memRegion.hpp" +#include "memory/universe.hpp" +#include "oops/constMethodOop.hpp" +#include "oops/klass.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/virtualspace.hpp" +#include "runtime/vmStructs.hpp" +#include "utilities/accessFlags.hpp" +#include "utilities/globalDefinitions.hpp" #ifdef COMPILER1 #if defined(DEBUG) || defined(FASTDEBUG) diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h index eb425828673..99146f12c3b 100644 --- a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h +++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H +#define OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H + #include #include @@ -36,3 +39,5 @@ extern "C" { void gen_prologue(GEN_variant gen_var); void gen_epilogue(GEN_variant gen_var); } + +#endif // OS_SOLARIS_DTRACE_GENERATEJVMOFFSETS_H diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c b/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c index d253c74a383..4cd8ebfb49e 100644 --- a/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c +++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsetsMain.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/dtrace/jvm_dtrace.c b/hotspot/src/os/solaris/dtrace/jvm_dtrace.c index 81884196397..fd0c4333cba 100644 --- a/hotspot/src/os/solaris/dtrace/jvm_dtrace.c +++ b/hotspot/src/os/solaris/dtrace/jvm_dtrace.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/dtrace/jvm_dtrace.h b/hotspot/src/os/solaris/dtrace/jvm_dtrace.h index ba1cebc7724..edc6dbdfc3b 100644 --- a/hotspot/src/os/solaris/dtrace/jvm_dtrace.h +++ b/hotspot/src/os/solaris/dtrace/jvm_dtrace.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/dtrace/libjvm_db.h b/hotspot/src/os/solaris/dtrace/libjvm_db.h index 2893646236a..d1c5a5ee074 100644 --- a/hotspot/src/os/solaris/dtrace/libjvm_db.h +++ b/hotspot/src/os/solaris/dtrace/libjvm_db.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_DTRACE_LIBJVM_DB_H +#define OS_SOLARIS_DTRACE_LIBJVM_DB_H + #include #ifdef __cplusplus @@ -61,3 +64,5 @@ void Jagent_destroy(jvm_agent_t *J); #ifdef __cplusplus } /* extern "C" */ #endif /* __cplusplus */ + +#endif // OS_SOLARIS_DTRACE_LIBJVM_DB_H diff --git a/hotspot/src/os/solaris/launcher/java.c b/hotspot/src/os/solaris/launcher/java.c index d62f8dd5d43..6e0f5507683 100644 --- a/hotspot/src/os/solaris/launcher/java.c +++ b/hotspot/src/os/solaris/launcher/java.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/launcher/java.h b/hotspot/src/os/solaris/launcher/java.h index 488e1376eab..b5f3a9993f5 100644 --- a/hotspot/src/os/solaris/launcher/java.h +++ b/hotspot/src/os/solaris/launcher/java.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/launcher/java_md.c b/hotspot/src/os/solaris/launcher/java_md.c index 5c62b6450aa..8675a7a9c10 100644 --- a/hotspot/src/os/solaris/launcher/java_md.c +++ b/hotspot/src/os/solaris/launcher/java_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/launcher/java_md.h b/hotspot/src/os/solaris/launcher/java_md.h index 9b025060341..f9cf3485747 100644 --- a/hotspot/src/os/solaris/launcher/java_md.h +++ b/hotspot/src/os/solaris/launcher/java_md.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/vm/attachListener_solaris.cpp b/hotspot/src/os/solaris/vm/attachListener_solaris.cpp index 9ae81cb53d5..b56a32a40af 100644 --- a/hotspot/src/os/solaris/vm/attachListener_solaris.cpp +++ b/hotspot/src/os/solaris/vm/attachListener_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_attachListener_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/os.hpp" +#include "services/attachListener.hpp" +#include "services/dtraceAttacher.hpp" #include #include diff --git a/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp b/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp index 301d169c178..ad2075dbc10 100644 --- a/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp +++ b/hotspot/src/os/solaris/vm/c1_globals_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP +#define OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // client compiler. (see c1_globals.hpp) // + +#endif // OS_SOLARIS_VM_C1_GLOBALS_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp b/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp index b14af55c55c..9909831d983 100644 --- a/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp +++ b/hotspot/src/os/solaris/vm/c2_globals_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP +#define OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // server compiler. (see c2_globals.hpp) // + +#endif // OS_SOLARIS_VM_C2_GLOBALS_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/chaitin_solaris.cpp b/hotspot/src/os/solaris/vm/chaitin_solaris.cpp index 9d61ae5dae6..92a437f9683 100644 --- a/hotspot/src/os/solaris/vm/chaitin_solaris.cpp +++ b/hotspot/src/os/solaris/vm/chaitin_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_chaitin_solaris.cpp.incl" +#include "precompiled.hpp" +#include "opto/chaitin.hpp" +#include "opto/machnode.hpp" void PhaseRegAlloc::pd_preallocate_hook() { // no action diff --git a/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp b/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp index 856c8fcfcfd..fb901a1ed2e 100644 --- a/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp +++ b/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dtraceJSDT_solaris.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "runtime/dtraceJSDT.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/os.hpp" +#include "runtime/signature.hpp" +#include "utilities/globalDefinitions.hpp" #ifdef HAVE_DTRACE_H diff --git a/hotspot/src/os/solaris/vm/globals_solaris.hpp b/hotspot/src/os/solaris/vm/globals_solaris.hpp index 4d0c9eddda2..a567a357e16 100644 --- a/hotspot/src/os/solaris/vm/globals_solaris.hpp +++ b/hotspot/src/os/solaris/vm/globals_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP +#define OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP + // // Defines Solaris specific flags. They are not available on other platforms. // @@ -47,3 +50,5 @@ define_pd_global(bool, UseLargePages, true); define_pd_global(bool, UseLargePagesIndividualAllocation, false); define_pd_global(bool, UseOSErrorReporting, false); define_pd_global(bool, UseThreadPriorities, false); + +#endif // OS_SOLARIS_VM_GLOBALS_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/hpi_solaris.cpp b/hotspot/src/os/solaris/vm/hpi_solaris.cpp index ad50b085728..a3a500e2de3 100644 --- a/hotspot/src/os/solaris/vm/hpi_solaris.cpp +++ b/hotspot/src/os/solaris/vm/hpi_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_hpi_solaris.cpp.incl" +#include "precompiled.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/os.hpp" # include # include diff --git a/hotspot/src/os/solaris/vm/hpi_solaris.hpp b/hotspot/src/os/solaris/vm/hpi_solaris.hpp index bd171a79a1e..27173fd5a8d 100644 --- a/hotspot/src/os/solaris/vm/hpi_solaris.hpp +++ b/hotspot/src/os/solaris/vm/hpi_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_HPI_SOLARIS_HPP +#define OS_SOLARIS_VM_HPI_SOLARIS_HPP + // // Parts of the HPI interface for which the HotSparc does not use the // HPI (because the interruptible IO mechanims used are different). @@ -247,3 +250,5 @@ inline int hpi::set_sock_opt(int fd, int level, int optname, // 1.3 98/10/21 18:17:14 hpi_win32.hpp // 1.6 99/06/28 11:01:36 hpi_win32.hpp //End + +#endif // OS_SOLARIS_VM_HPI_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp b/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp index acc096be80f..4332d428184 100644 --- a/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp +++ b/hotspot/src/os/solaris/vm/interfaceSupport_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP +#define OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP + // Contains inlined functions for class InterfaceSupport static inline void serialize_memory(JavaThread *thread) { os::write_memory_serialize_page(thread); } + +#endif // OS_SOLARIS_VM_INTERFACESUPPORT_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/jsig.c b/hotspot/src/os/solaris/vm/jsig.c index bf1a25ca184..3c509159a2d 100644 --- a/hotspot/src/os/solaris/vm/jsig.c +++ b/hotspot/src/os/solaris/vm/jsig.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/vm/jvm_solaris.cpp b/hotspot/src/os/solaris/vm/jvm_solaris.cpp index 00981bbbb23..2f5ccb3bb17 100644 --- a/hotspot/src/os/solaris/vm/jvm_solaris.cpp +++ b/hotspot/src/os/solaris/vm/jvm_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jvm_solaris.cpp.incl" +#include "precompiled.hpp" +#include "prims/jvm.h" +#include "runtime/interfaceSupport.hpp" +#include "runtime/osThread.hpp" #include diff --git a/hotspot/src/os/solaris/vm/jvm_solaris.h b/hotspot/src/os/solaris/vm/jvm_solaris.h index 50d6a95e073..1513c16e8f9 100644 --- a/hotspot/src/os/solaris/vm/jvm_solaris.h +++ b/hotspot/src/os/solaris/vm/jvm_solaris.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_JVM_SOLARIS_H +#define OS_SOLARIS_VM_JVM_SOLARIS_H + /* // HotSpot integration note: // @@ -98,3 +101,5 @@ #define JSIG_VERSION_1_4_1 0x30140100 #endif /* JVM_MD_H */ + +#endif // OS_SOLARIS_VM_JVM_SOLARIS_H diff --git a/hotspot/src/os/solaris/vm/mutex_solaris.cpp b/hotspot/src/os/solaris/vm/mutex_solaris.cpp index 97649c37b6f..30be73721c6 100644 --- a/hotspot/src/os/solaris/vm/mutex_solaris.cpp +++ b/hotspot/src/os/solaris/vm/mutex_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutex_solaris.cpp.incl" +#include "precompiled.hpp" +#include "mutex_solaris.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutex.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/events.hpp" // Solaris-specific include, therefore not in includeDB_* # include "os_share_solaris.hpp" diff --git a/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp b/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp index 44565f567be..00e91a79449 100644 --- a/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp +++ b/hotspot/src/os/solaris/vm/mutex_solaris.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,3 +21,12 @@ * questions. * */ + +#ifndef OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP +#define OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP + +#include "os_solaris.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "thread_solaris.inline.hpp" + +#endif // OS_SOLARIS_VM_MUTEX_SOLARIS_INLINE_HPP diff --git a/hotspot/src/os/solaris/vm/osThread_solaris.cpp b/hotspot/src/os/solaris/vm/osThread_solaris.cpp index e0209cfc4e6..937ae5cbbcf 100644 --- a/hotspot/src/os/solaris/vm/osThread_solaris.cpp +++ b/hotspot/src/os/solaris/vm/osThread_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -// do not include precompiled header file -# include "incls/_osThread_solaris.cpp.incl" +// no precompiled headers +#include "runtime/atomic.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/osThread.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif + # include // *************************************************************** diff --git a/hotspot/src/os/solaris/vm/osThread_solaris.hpp b/hotspot/src/os/solaris/vm/osThread_solaris.hpp index 2d358de1380..07742ac8e40 100644 --- a/hotspot/src/os/solaris/vm/osThread_solaris.hpp +++ b/hotspot/src/os/solaris/vm/osThread_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP +#define OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP + // This is embedded via include into the class OSThread private: @@ -149,3 +152,5 @@ private: void pd_initialize(); void pd_destroy(); + +#endif // OS_SOLARIS_VM_OSTHREAD_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/os_share_solaris.hpp b/hotspot/src/os/solaris/vm/os_share_solaris.hpp index 67416054f67..a7c1ce8c0ee 100644 --- a/hotspot/src/os/solaris/vm/os_share_solaris.hpp +++ b/hotspot/src/os/solaris/vm/os_share_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP +#define OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP + // Defines the interfaces to Solaris operating systems that vary across platforms @@ -65,3 +68,5 @@ extern "C" void _mark_fpu_nosave() ; #endif #define PROCFILE_LENGTH 128 + +#endif // OS_SOLARIS_VM_OS_SHARE_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp index 55f7ddcddb3..c88fb0d5803 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.cpp +++ b/hotspot/src/os/solaris/vm/os_solaris.cpp @@ -22,8 +22,60 @@ * */ -// do not include precompiled header file -# include "incls/_os_solaris.cpp.incl" +// no precompiled headers +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/compileBroker.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_solaris.h" +#include "memory/allocation.inline.hpp" +#include "memory/filemap.hpp" +#include "mutex_solaris.inline.hpp" +#include "oops/oop.inline.hpp" +#include "os_share_solaris.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/globals.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/osThread.hpp" +#include "runtime/perfMemory.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/statSampler.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/attachListener.hpp" +#include "services/runtimeService.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/defaultStream.hpp" +#include "utilities/events.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/vmError.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +# include "nativeInst_sparc.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include diff --git a/hotspot/src/os/solaris/vm/os_solaris.hpp b/hotspot/src/os/solaris/vm/os_solaris.hpp index 07f7c75159f..991cf021082 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.hpp +++ b/hotspot/src/os/solaris/vm/os_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_SOLARIS_VM_OS_SOLARIS_HPP +#define OS_SOLARIS_VM_OS_SOLARIS_HPP + // Solaris_OS defines the interface to Solaris operating systems class Solaris { @@ -394,3 +397,5 @@ class PlatformParker : public CHeapObj { assert_status(status == 0, status, "mutex_init"); } } ; + +#endif // OS_SOLARIS_VM_OS_SOLARIS_HPP diff --git a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp index 99f5e1aaa79..15ba113378a 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp +++ b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP +#define OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "atomic_solaris_x86.inline.hpp" +# include "orderAccess_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_sparc +# include "atomic_solaris_sparc.inline.hpp" +# include "orderAccess_solaris_sparc.inline.hpp" +#endif + inline const char* os::file_separator() { return "/"; } inline const char* os::line_separator() { return "\n"; } inline const char* os::path_separator() { return ":"; } @@ -207,3 +221,5 @@ do { \ inline bool os::numa_has_static_binding() { return false; } inline bool os::numa_has_group_homing() { return true; } + +#endif // OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP diff --git a/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp b/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp index dad0bf353c7..1d1ff260cd8 100644 --- a/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp +++ b/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_perfMemory_solaris.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "os_solaris.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/perfMemory.hpp" +#include "utilities/exceptions.hpp" // put OS-includes here # include diff --git a/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp b/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp index f827ec7115d..3723a0f7dfa 100644 --- a/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp +++ b/hotspot/src/os/solaris/vm/stubRoutines_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" + diff --git a/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp b/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp index d629f3da7f3..b658183c2f3 100644 --- a/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp +++ b/hotspot/src/os/solaris/vm/threadCritical_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadCritical_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadCritical.hpp" +#include "thread_solaris.inline.hpp" // OS-includes here #include diff --git a/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp b/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp index fb0ee5f0f7e..94c51676d7a 100644 --- a/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp +++ b/hotspot/src/os/solaris/vm/thread_solaris.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,24 @@ * */ +#ifndef OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP +#define OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/prefetch.hpp" +#include "runtime/thread.hpp" +#include "runtime/threadLocalStorage.hpp" +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "atomic_solaris_x86.inline.hpp" +# include "orderAccess_solaris_x86.inline.hpp" +# include "prefetch_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_sparc +# include "atomic_solaris_sparc.inline.hpp" +# include "orderAccess_solaris_sparc.inline.hpp" +# include "prefetch_solaris_sparc.inline.hpp" +#endif + // Thread::current is "hot" it's called > 128K times in the 1st 500 msecs of // startup. // ThreadLocalStorage::thread is warm -- it's called > 16K times in the same @@ -43,3 +61,5 @@ inline Thread* ThreadLocalStorage::thread() { return ThreadLocalStorage::get_thread_via_cache_slowly(raw, ix); } } + +#endif // OS_SOLARIS_VM_THREAD_SOLARIS_INLINE_HPP diff --git a/hotspot/src/os/solaris/vm/vmError_solaris.cpp b/hotspot/src/os/solaris/vm/vmError_solaris.cpp index 65026a85488..6f3f5b06fe6 100644 --- a/hotspot/src/os/solaris/vm/vmError_solaris.cpp +++ b/hotspot/src/os/solaris/vm/vmError_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmError_solaris.cpp.incl" +#include "precompiled.hpp" +#include "runtime/arguments.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" +#include "utilities/vmError.hpp" #include #include diff --git a/hotspot/src/os/windows/vm/attachListener_windows.cpp b/hotspot/src/os/windows/vm/attachListener_windows.cpp index 28295f9a74e..1d5857f1c2f 100644 --- a/hotspot/src/os/windows/vm/attachListener_windows.cpp +++ b/hotspot/src/os/windows/vm/attachListener_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_attachListener_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/os.hpp" +#include "services/attachListener.hpp" +#include "services/dtraceAttacher.hpp" #include #include // SIGBREAK diff --git a/hotspot/src/os/windows/vm/c1_globals_windows.hpp b/hotspot/src/os/windows/vm/c1_globals_windows.hpp index 301d169c178..41789768d3d 100644 --- a/hotspot/src/os/windows/vm/c1_globals_windows.hpp +++ b/hotspot/src/os/windows/vm/c1_globals_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP +#define OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // client compiler. (see c1_globals.hpp) // + +#endif // OS_WINDOWS_VM_C1_GLOBALS_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/c2_globals_windows.hpp b/hotspot/src/os/windows/vm/c2_globals_windows.hpp index b14af55c55c..a79fbdc7bda 100644 --- a/hotspot/src/os/windows/vm/c2_globals_windows.hpp +++ b/hotspot/src/os/windows/vm/c2_globals_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,15 @@ * */ +#ifndef OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP +#define OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP + +#include "utilities/globalDefinitions.hpp" +#include "utilities/macros.hpp" + // // Sets the default values for operating system dependent flags used by the // server compiler. (see c2_globals.hpp) // + +#endif // OS_WINDOWS_VM_C2_GLOBALS_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/chaitin_windows.cpp b/hotspot/src/os/windows/vm/chaitin_windows.cpp index a459b992e17..bae10b3b5c4 100644 --- a/hotspot/src/os/windows/vm/chaitin_windows.cpp +++ b/hotspot/src/os/windows/vm/chaitin_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_chaitin_windows.cpp.incl" +#include "precompiled.hpp" +#include "opto/chaitin.hpp" +#include "opto/machnode.hpp" // Disallow the use of the frame pointer (EBP) for implicit null exceptions // on win95/98. If we do not do this, the OS gets confused and gives a stack diff --git a/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp b/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp index aad6296c72d..0f340fb5730 100644 --- a/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp +++ b/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_dtraceJSDT_windows.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "runtime/dtraceJSDT.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/os.hpp" +#include "runtime/signature.hpp" +#include "utilities/globalDefinitions.hpp" int DTraceJSDT::pd_activate( void* baseAddress, jstring module, diff --git a/hotspot/src/os/windows/vm/globals_windows.hpp b/hotspot/src/os/windows/vm/globals_windows.hpp index 52f7d602b01..1860375c03e 100644 --- a/hotspot/src/os/windows/vm/globals_windows.hpp +++ b/hotspot/src/os/windows/vm/globals_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP +#define OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP + // // Defines Windows specific flags. They are not available on other platforms. // @@ -40,3 +43,5 @@ define_pd_global(bool, UseLargePages, false); define_pd_global(bool, UseLargePagesIndividualAllocation, true); define_pd_global(bool, UseOSErrorReporting, false); // for now. define_pd_global(bool, UseThreadPriorities, true) ; + +#endif // OS_WINDOWS_VM_GLOBALS_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/hpi_windows.cpp b/hotspot/src/os/windows/vm/hpi_windows.cpp index 2e78fc27148..b743849e2dc 100644 --- a/hotspot/src/os/windows/vm/hpi_windows.cpp +++ b/hotspot/src/os/windows/vm/hpi_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_hpi_windows.cpp.incl" +#include "precompiled.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/os.hpp" typedef jint (JNICALL *init_t)(GetInterfaceFunc *, void *); diff --git a/hotspot/src/os/windows/vm/hpi_windows.hpp b/hotspot/src/os/windows/vm/hpi_windows.hpp index 3d94b4e553f..b262c75a320 100644 --- a/hotspot/src/os/windows/vm/hpi_windows.hpp +++ b/hotspot/src/os/windows/vm/hpi_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_HPI_WINDOWS_HPP +#define OS_WINDOWS_VM_HPI_WINDOWS_HPP + // Win32 delegates these to the HPI. Solaris provides its own // implementation without using the HPI (for Interrupitble I/O). @@ -168,3 +171,5 @@ HPIDECL(get_proto_by_name, "get_proto_by_name", _socket, GetProtoByName, ("name = %p", name), (name)); + +#endif // OS_WINDOWS_VM_HPI_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp b/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp index 3e5a6bfc1d1..96236542972 100644 --- a/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp +++ b/hotspot/src/os/windows/vm/interfaceSupport_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP +#define OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP + // Contains inlined functions for class InterfaceSupport static inline void serialize_memory(JavaThread *thread) { @@ -39,3 +42,5 @@ static inline void serialize_memory(JavaThread *thread) { serialize_fault_filter((_EXCEPTION_POINTERS*)_exception_info())) {} } + +#endif // OS_WINDOWS_VM_INTERFACESUPPORT_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/jvm_windows.cpp b/hotspot/src/os/windows/vm/jvm_windows.cpp index d0d171b2327..d6a299a239c 100644 --- a/hotspot/src/os/windows/vm/jvm_windows.cpp +++ b/hotspot/src/os/windows/vm/jvm_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_jvm_windows.cpp.incl" +#include "precompiled.hpp" +#include "prims/jvm.h" +#include "runtime/interfaceSupport.hpp" +#include "runtime/osThread.hpp" #include diff --git a/hotspot/src/os/windows/vm/jvm_windows.h b/hotspot/src/os/windows/vm/jvm_windows.h index 47999961b84..6cb292ba974 100644 --- a/hotspot/src/os/windows/vm/jvm_windows.h +++ b/hotspot/src/os/windows/vm/jvm_windows.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/windows/vm/mutex_windows.cpp b/hotspot/src/os/windows/vm/mutex_windows.cpp index 7ba6b0aba7c..66f018dd4a9 100644 --- a/hotspot/src/os/windows/vm/mutex_windows.cpp +++ b/hotspot/src/os/windows/vm/mutex_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutex_windows.cpp.incl" +#include "precompiled.hpp" +#include "mutex_windows.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutex.hpp" +#include "thread_windows.inline.hpp" +#include "utilities/events.hpp" // put OS-includes here # include diff --git a/hotspot/src/os/windows/vm/mutex_windows.inline.hpp b/hotspot/src/os/windows/vm/mutex_windows.inline.hpp index b9c7bfabc31..ddc082279fb 100644 --- a/hotspot/src/os/windows/vm/mutex_windows.inline.hpp +++ b/hotspot/src/os/windows/vm/mutex_windows.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,3 +21,12 @@ * questions. * */ + +#ifndef OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP +#define OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP + +#include "os_windows.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "thread_windows.inline.hpp" + +#endif // OS_WINDOWS_VM_MUTEX_WINDOWS_INLINE_HPP diff --git a/hotspot/src/os/windows/vm/osThread_windows.cpp b/hotspot/src/os/windows/vm/osThread_windows.cpp index 7aaffc1b272..005643aa67a 100644 --- a/hotspot/src/os/windows/vm/osThread_windows.cpp +++ b/hotspot/src/os/windows/vm/osThread_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,17 @@ * */ -#include "incls/_osThread_windows.cpp.incl" +// no precompiled headers +#include "runtime/atomic.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/osThread.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif void OSThread::pd_initialize() { set_thread_handle(NULL); diff --git a/hotspot/src/os/windows/vm/osThread_windows.hpp b/hotspot/src/os/windows/vm/osThread_windows.hpp index 37cdfaba147..1df8925c7a7 100644 --- a/hotspot/src/os/windows/vm/osThread_windows.hpp +++ b/hotspot/src/os/windows/vm/osThread_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP +#define OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP + typedef void* HANDLE; private: @@ -64,3 +67,5 @@ typedef void* HANDLE; private: void pd_initialize(); void pd_destroy(); + +#endif // OS_WINDOWS_VM_OSTHREAD_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/os_share_windows.hpp b/hotspot/src/os/windows/vm/os_share_windows.hpp index e157ace8e6c..447fc9438c4 100644 --- a/hotspot/src/os/windows/vm/os_share_windows.hpp +++ b/hotspot/src/os/windows/vm/os_share_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,4 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP +#define OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP + // Defines the interfaces to Windows operating system that vary across platforms + +#endif // OS_WINDOWS_VM_OS_SHARE_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index d0837200194..d5d9a6ceef2 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -27,8 +27,56 @@ #define _WIN32_WINNT 0x500 #endif -// do not include precompiled header file -# include "incls/_os_windows.cpp.incl" +// no precompiled headers +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/compileBroker.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_windows.h" +#include "memory/allocation.inline.hpp" +#include "memory/filemap.hpp" +#include "mutex_windows.inline.hpp" +#include "oops/oop.inline.hpp" +#include "os_share_windows.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/globals.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/objectMonitor.hpp" +#include "runtime/osThread.hpp" +#include "runtime/perfMemory.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/statSampler.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/attachListener.hpp" +#include "services/runtimeService.hpp" +#include "thread_windows.inline.hpp" +#include "utilities/defaultStream.hpp" +#include "utilities/events.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/vmError.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif #ifdef _DEBUG #include diff --git a/hotspot/src/os/windows/vm/os_windows.hpp b/hotspot/src/os/windows/vm/os_windows.hpp index eacf1f8a1e8..ddc7e203657 100644 --- a/hotspot/src/os/windows/vm/os_windows.hpp +++ b/hotspot/src/os/windows/vm/os_windows.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_WINDOWS_VM_OS_WINDOWS_HPP +#define OS_WINDOWS_VM_OS_WINDOWS_HPP + // Win32_OS defines the interface to windows operating systems class win32 { @@ -124,3 +127,5 @@ class PlatformParker : public CHeapObj { } } ; + +#endif // OS_WINDOWS_VM_OS_WINDOWS_HPP diff --git a/hotspot/src/os/windows/vm/os_windows.inline.hpp b/hotspot/src/os/windows/vm/os_windows.inline.hpp index 8c709b29fa9..20224864ab0 100644 --- a/hotspot/src/os/windows/vm/os_windows.inline.hpp +++ b/hotspot/src/os/windows/vm/os_windows.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP +#define OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_OS_ARCH_windows_x86 +# include "atomic_windows_x86.inline.hpp" +# include "orderAccess_windows_x86.inline.hpp" +#endif + inline const char* os::file_separator() { return "\\"; } inline const char* os::line_separator() { return "\r\n"; } inline const char* os::path_separator() { return ";"; } @@ -72,3 +82,5 @@ inline void os::bang_stack_shadow_pages() { inline bool os::numa_has_static_binding() { return true; } inline bool os::numa_has_group_homing() { return false; } + +#endif // OS_WINDOWS_VM_OS_WINDOWS_INLINE_HPP diff --git a/hotspot/src/os/windows/vm/perfMemory_windows.cpp b/hotspot/src/os/windows/vm/perfMemory_windows.cpp index 2b5c186bf17..fbccc3c89fa 100644 --- a/hotspot/src/os/windows/vm/perfMemory_windows.cpp +++ b/hotspot/src/os/windows/vm/perfMemory_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_perfMemory_windows.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "os_windows.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/perfMemory.hpp" +#include "utilities/exceptions.hpp" #include #include diff --git a/hotspot/src/os/windows/vm/stubRoutines_windows.cpp b/hotspot/src/os/windows/vm/stubRoutines_windows.cpp index 4721d8275ce..3723a0f7dfa 100644 --- a/hotspot/src/os/windows/vm/stubRoutines_windows.cpp +++ b/hotspot/src/os/windows/vm/stubRoutines_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubRoutines_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "runtime/stubRoutines.hpp" + diff --git a/hotspot/src/os/windows/vm/threadCritical_windows.cpp b/hotspot/src/os/windows/vm/threadCritical_windows.cpp index e638ce8252e..4a498e07e29 100644 --- a/hotspot/src/os/windows/vm/threadCritical_windows.cpp +++ b/hotspot/src/os/windows/vm/threadCritical_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_threadCritical_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadCritical.hpp" +#include "thread_windows.inline.hpp" // OS-includes here # include diff --git a/hotspot/src/os/windows/vm/thread_windows.inline.hpp b/hotspot/src/os/windows/vm/thread_windows.inline.hpp index ade19efc009..9fe391574cc 100644 --- a/hotspot/src/os/windows/vm/thread_windows.inline.hpp +++ b/hotspot/src/os/windows/vm/thread_windows.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,21 @@ * */ +#ifndef OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP +#define OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP + +#include "runtime/atomic.hpp" +#include "runtime/prefetch.hpp" +#include "runtime/thread.hpp" +#include "runtime/threadLocalStorage.hpp" +#ifdef TARGET_OS_ARCH_windows_x86 +# include "atomic_windows_x86.inline.hpp" +# include "orderAccess_windows_x86.inline.hpp" +# include "prefetch_windows_x86.inline.hpp" +#endif + // Contains inlined functions for class Thread and ThreadLocalStorage inline void ThreadLocalStorage::pd_invalidate_all() { return; } + +#endif // OS_WINDOWS_VM_THREAD_WINDOWS_INLINE_HPP diff --git a/hotspot/src/os/windows/vm/vmError_windows.cpp b/hotspot/src/os/windows/vm/vmError_windows.cpp index 468c6935537..7a4b96b2a47 100644 --- a/hotspot/src/os/windows/vm/vmError_windows.cpp +++ b/hotspot/src/os/windows/vm/vmError_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmError_windows.cpp.incl" +#include "precompiled.hpp" +#include "runtime/arguments.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" +#include "utilities/vmError.hpp" void VMError::show_message_box(char *buf, int buflen) { diff --git a/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp index 342352bf8f1..20a5c5886dc 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" #include diff --git a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp index b084e07f8c0..648543eadb8 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP +#define OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP + +#include "orderAccess_linux_sparc.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class atomic inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } @@ -204,3 +212,5 @@ inline intptr_t Atomic::cmpxchg_ptr(intptr_t exchange_value, volatile intptr_t* inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* dest, void* compare_value) { return (void*)cmpxchg_ptr((intptr_t)exchange_value, (volatile intptr_t*)dest, (intptr_t)compare_value); } + +#endif // OS_CPU_LINUX_SPARC_VM_ATOMIC_LINUX_SPARC_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp index e67d0d42fde..b0b8c07fe8f 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP + // // Sets the default values for platform dependent flags used by the // runtime system. (see globals.hpp) @@ -34,3 +37,5 @@ define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(uintx, HeapBaseMinAddress, 4*G); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_LINUX_SPARC_VM_GLOBALS_LINUX_SPARC_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp index 2770baaabef..6833c1f4e61 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP +#define OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class OrderAccess. // Assume TSO. @@ -100,3 +106,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } + +#endif // OS_CPU_LINUX_SPARC_VM_ORDERACCESS_LINUX_SPARC_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp index ada91d9a293..3a9bb279de9 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @@ -22,9 +22,44 @@ * */ -// do not include precompiled header file +// no precompiled headers +#include "assembler_sparc.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "mutex_linux.inline.hpp" +#include "nativeInst_sparc.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif -#include "incls/_os_linux_sparc.cpp.incl" // Linux/Sparc has rather obscure naming of registers in sigcontext // different between 32 and 64 bits diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp index 7b3ef847e85..22d9cf0d88e 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP + // // NOTE: we are back in class os here, not Linux // @@ -42,3 +45,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_LINUX_SPARC_VM_OS_LINUX_SPARC_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp index 14af8a71528..edc472f7506 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP +#define OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP + +#include "runtime/prefetch.hpp" + #if defined(COMPILER2) || defined(_LP64) inline void Prefetch::read(void *loc, intx interval) { @@ -38,3 +43,5 @@ inline void Prefetch::read (void *loc, intx interval) {} inline void Prefetch::write(void *loc, intx interval) {} #endif + +#endif // OS_CPU_LINUX_SPARC_VM_PREFETCH_LINUX_SPARC_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp index 2031f5a4683..d2ae5ca9f24 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_linux.inline.hpp" void ThreadLocalStorage::generate_code_for_get_thread() { } diff --git a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp index cc4a46ffea4..0584108833a 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,12 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP + public: static Thread* thread() { return (Thread*) os::thread_local_storage_at(thread_index()); } + +#endif // OS_CPU_LINUX_SPARC_VM_THREADLS_LINUX_SPARC_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp index 7b44e39eee7..8f3eaa3e540 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_linux.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff --git a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp index ddf7ad83ab7..a3174b579ea 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP + private: void pd_initialize() { @@ -96,3 +99,5 @@ public: static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_LINUX_SPARC_VM_THREAD_LINUX_SPARC_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp index f2f1a83f636..4b0a3e63a29 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP +#define OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -67,3 +70,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_LINUX_SPARC_VM_VMSTRUCTS_LINUX_SPARC_HPP diff --git a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp index 519286881d0..c3d244d987d 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_linux_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" static bool detect_niagara() { char cpu[128]; diff --git a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp index fc42b00c3e3..5cd94107507 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" #ifndef _LP64 void MacroAssembler::int3() { diff --git a/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp index c58865aca4d..7a89e56e107 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/atomic_linux_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP + +#include "orderAccess_linux_x86.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + // Implementation of class atomic inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } @@ -193,3 +201,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* return (void*)cmpxchg((jint)exchange_value, (volatile jint*)dest, (jint)compare_value); } #endif // AMD64 + +#endif // OS_CPU_LINUX_X86_VM_ATOMIC_LINUX_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp index 33d26d07860..93cb9882263 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP + #include // Efficient swapping of data bytes from Java byte @@ -83,3 +86,5 @@ inline u8 Bytes::swap_u8(u8 x) { return swap_u8_base(*(u4*)&x, *(((u4*)&x)+1)); } #endif // !AMD64 + +#endif // OS_CPU_LINUX_X86_VM_BYTES_LINUX_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp index 5829e1a64a1..175019b8644 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/copy_linux_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP + static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { #ifdef AMD64 (void)memmove(to, from, count * HeapWordSize); @@ -302,3 +305,5 @@ static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) pd_conjoint_oops_atomic((oop*)from, (oop*)to, count); #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_COPY_LINUX_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp index 8a531a8a2fe..7ca61f27fac 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/globals_linux_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -45,3 +48,5 @@ define_pd_global(uintx,JVMInvokeMethodSlack, 8192); define_pd_global(uintx,HeapBaseMinAddress, 2*G); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_LINUX_X86_VM_GLOBALS_LINUX_X86_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp index d487ece69a3..9adf947ad37 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/orderAccess_linux_x86.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_x86.hpp" + // Implementation of class OrderAccess. inline void OrderAccess::loadload() { acquire(); } @@ -204,3 +210,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* release_store_fence((volatile jint*)p, (jint)v); #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_ORDERACCESS_LINUX_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp index 5cfa380c40a..22d0b21aaea 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp @@ -22,8 +22,43 @@ * */ -// do not include precompiled header file -# include "incls/_os_linux_x86.cpp.incl" +// no precompiled headers +#include "assembler_x86.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "mutex_linux.inline.hpp" +#include "nativeInst_x86.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp index fe5d35788a6..64954d480f8 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP + static void setup_fpu(); static bool supports_sse(); @@ -30,3 +33,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp index 0499df081b2..ba1cf32aacb 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/prefetch_linux_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP +#define OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP + +#include "runtime/prefetch.hpp" + inline void Prefetch::read (void *loc, intx interval) { #ifdef AMD64 @@ -38,3 +43,5 @@ inline void Prefetch::write(void *loc, intx interval) { #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_PREFETCH_LINUX_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp index 5b84568714e..66340de7d7b 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_linux.inline.hpp" // Map stack pointer (%esp) to thread pointer for faster TLS access // diff --git a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp index 2b1cb07dd62..55da9c0ca7b 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP + // Processor dependent parts of ThreadLocalStorage #ifndef AMD64 @@ -47,3 +50,5 @@ public: return _sp_map[sp >> PAGE_SHIFT]; #endif // AMD64 } + +#endif // OS_CPU_LINUX_X86_VM_THREADLS_LINUX_X86_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp index b3089810813..3f04c773003 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_linux.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff --git a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp index 31eb0d05187..7a7d222521f 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/thread_linux_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP + private: void pd_initialize() { _anchor.clear(); @@ -63,3 +66,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_LINUX_X86_VM_THREAD_LINUX_X86_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp b/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp index 1057ec8afe3..c54cb1d729d 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/vmStructs_linux_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP +#define OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -58,3 +61,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_LINUX_X86_VM_VMSTRUCTS_LINUX_X86_HPP diff --git a/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp index 4ca3fc8c12b..f1a3c3a0b88 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/vm_version_linux_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_linux_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + diff --git a/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp index 1e7f6703a71..ec56a35cd6b 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp +++ b/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,10 @@ * */ +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_zero.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" + // This file is intentionally empty diff --git a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp index f4b7d0c57be..fcada2aa417 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,14 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP + +#include "orderAccess_linux_zero.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_zero.hpp" + // Implementation of class atomic #ifdef M68K @@ -291,3 +299,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, (volatile intptr_t*) dest, (intptr_t) compare_value); } + +#endif // OS_CPU_LINUX_ZERO_VM_ATOMIC_LINUX_ZERO_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp index f427b9193d3..707cba2d057 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP + // Efficient swapping of data bytes from Java byte // ordering to native byte ordering and vice versa. @@ -38,3 +41,5 @@ inline u4 Bytes::swap_u4(u4 x) { inline u8 Bytes::swap_u8(u8 x) { return bswap_64(x); } + +#endif // OS_CPU_LINUX_ZERO_VM_BYTES_LINUX_ZERO_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp index 06ce1a20d58..f12bec98636 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/globals_linux_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP + // // Set the default values for platform dependent flags used by the // runtime system. See globals.hpp for details of what they do. @@ -42,3 +45,5 @@ define_pd_global(uintx, JVMInvokeMethodSlack, 8192); define_pd_global(bool, UseVectoredExceptions, false); // Only used on 64 bit platforms define_pd_global(uintx, HeapBaseMinAddress, 2*G); + +#endif // OS_CPU_LINUX_ZERO_VM_GLOBALS_LINUX_ZERO_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp index c54883b888c..773fd643ab7 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,12 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_zero.hpp" + #ifdef ARM /* @@ -165,3 +171,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { release_store_ptr(p, v); fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { release_store_ptr(p, v); fence(); } + +#endif // OS_CPU_LINUX_ZERO_VM_ORDERACCESS_LINUX_ZERO_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp index dfadb87e579..7a1d216ac70 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,43 @@ * */ -// do not include precompiled header file -#include "incls/_os_linux_zero.cpp.incl" +// no precompiled headers +#include "assembler_zero.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_linux.h" +#include "memory/allocation.inline.hpp" +#include "mutex_linux.inline.hpp" +#include "nativeInst_zero.hpp" +#include "os_share_linux.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_linux.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif address os::current_stack_pointer() { address dummy = (address) &dummy; diff --git a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp index 84c87f8073b..1d4576679d3 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP + static void setup_fpu() {} static bool is_allocatable(size_t bytes); @@ -49,3 +52,5 @@ *(jlong *) dst = *(jlong *) src; #endif } + +#endif // OS_CPU_LINUX_ZERO_VM_OS_LINUX_ZERO_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp b/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp index 346a6079808..e34fef0b85d 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,15 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP +#define OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP + +#include "runtime/prefetch.hpp" + inline void Prefetch::read(void* loc, intx interval) { } inline void Prefetch::write(void* loc, intx interval) { } + +#endif // OS_CPU_LINUX_ZERO_VM_PREFETCH_LINUX_ZERO_INLINE_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp index 6dc339d700a..0981ea5dd61 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp +++ b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_linux_zero.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_linux.inline.hpp" void ThreadLocalStorage::generate_code_for_get_thread() { // nothing to do diff --git a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp index 260602df149..3fd4ccf973f 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,14 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP + // Processor dependent parts of ThreadLocalStorage public: static Thread* thread() { return (Thread*) os::thread_local_storage_at(thread_index()); } + +#endif // OS_CPU_LINUX_ZERO_VM_THREADLS_LINUX_ZERO_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp index 8551eafce62..9c1b7336c63 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp +++ b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,8 +23,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_linux_zero.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_linux.inline.hpp" void JavaThread::cache_global_variables() { // nothing to do diff --git a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp index 086bceea99e..39f77f858d0 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP + private: ZeroStack _zero_stack; ZeroFrame* _top_zero_frame; @@ -114,3 +117,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_LINUX_ZERO_VM_THREAD_LINUX_ZERO_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp b/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp index 007ecfcaf85..46c7912c372 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp +++ b/hotspot/src/os_cpu/linux_zero/vm/vmStructs_linux_zero.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,6 +23,9 @@ * */ +#ifndef OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP +#define OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -43,3 +46,5 @@ #define VM_LONG_CONSTANTS_OS_CPU(declare_constant, declare_preprocessor_constant, declare_c1_constant, declare_c2_constant, declare_c2_preprocessor_constant, last_entry) \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_LINUX_ZERO_VM_VMSTRUCTS_LINUX_ZERO_HPP diff --git a/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp b/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp index 1e7f6703a71..f2ca79f388c 100644 --- a/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp +++ b/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2009 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -23,4 +23,8 @@ * */ +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_zero.hpp" + // This file is intentionally empty diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp index 92fb4a45263..5e9eaa12a31 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_solaris_sparc.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_sparc.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" #include // For trap numbers #include // For V8 compatibility diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp index 1931e6114c0..006962519ac 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/atomic_solaris_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP +#define OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP + +#include "orderAccess_solaris_sparc.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class atomic inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } @@ -342,3 +350,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* #endif // _LP64 || COMPILER2 #endif // _GNU_SOURCE + +#endif // OS_CPU_SOLARIS_SPARC_VM_ATOMIC_SOLARIS_SPARC_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp index f9e43a77b59..febba7cd211 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/globals_solaris_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP + // // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -36,3 +39,5 @@ define_pd_global(uintx, HeapBaseMinAddress, 4*G); define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_SOLARIS_SPARC_VM_GLOBALS_SOLARIS_SPARC_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp index 6075e010687..bb732bd6b16 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/orderAccess_solaris_sparc.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP +#define OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_sparc.hpp" + // Implementation of class OrderAccess. // Assume TSO. @@ -124,3 +130,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } + +#endif // OS_CPU_SOLARIS_SPARC_VM_ORDERACCESS_SOLARIS_SPARC_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp index 556defca3d1..661c8294ff4 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp @@ -22,11 +22,46 @@ * */ -// do not include precompiled header file +// no precompiled headers +#include "assembler_sparc.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_solaris.h" +#include "memory/allocation.inline.hpp" +#include "mutex_solaris.inline.hpp" +#include "nativeInst_sparc.hpp" +#include "os_share_solaris.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif -# include // needed first to avoid name collision for "std" with SC 5.0 -# include "incls/_os_solaris_sparc.cpp.incl" +# include // needed first to avoid name collision for "std" with SC 5.0 // put OS-includes here # include diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp index 9d9e6192f48..59bd417b470 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP + // // NOTE: we are back in class os here, not Solaris // @@ -42,3 +45,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_SOLARIS_SPARC_VM_OS_SOLARIS_SPARC_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp index cd8cddecbc6..70729176433 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/prefetch_solaris_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP +#define OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP + +#include "runtime/prefetch.hpp" + #if defined(COMPILER2) || defined(_LP64) // For Sun Studio inplementation is in solaris_sparc.il @@ -56,3 +61,5 @@ inline void Prefetch::read (void *loc, intx interval) {} inline void Prefetch::write(void *loc, intx interval) {} #endif // defined(COMPILER2) || defined(_LP64) + +#endif // OS_CPU_SOLARIS_SPARC_VM_PREFETCH_SOLARIS_SPARC_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp index 92cccf36ec6..178808ffb3f 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,13 +22,15 @@ * */ +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_solaris.inline.hpp" + // Provides an entry point we can link against and // a buffer we can emit code into. The buffer is // filled by ThreadLocalStorage::generate_code_for_get_thread // and called from ThreadLocalStorage::thread() -#include "incls/_precompiled.incl" -#include "incls/_threadLS_solaris_sparc.cpp.incl" #include // The portable TLS mechanism (get_thread_via_cache) is enough on SPARC. diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp index 9d78f743e51..98a8fc58c31 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/threadLS_solaris_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP + public: // Java Thread - force inlining static inline Thread* thread() ; @@ -64,3 +67,5 @@ public: uintptr_t ix = (int) (((raw_id >> 9) ^ (raw_id >> 20)) % _pd_cache_size); return ix; } + +#endif // OS_CPU_SOLARIS_SPARC_VM_THREADLS_SOLARIS_SPARC_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp index 84efd5e76d1..f622943fedb 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_solaris_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_solaris.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp index 4f8ab325bd9..1cd0709b6e3 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,6 +21,9 @@ * questions. * */ + +#ifndef OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP private: void pd_initialize() { @@ -95,3 +98,5 @@ public: static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_SOLARIS_SPARC_VM_THREAD_SOLARIS_SPARC_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp b/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp index 182a7184831..710e3369042 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/vmStructs_solaris_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP +#define OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -65,3 +68,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_SOLARIS_SPARC_VM_VMSTRUCTS_SOLARIS_SPARC_HPP diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp index 6e086f25c46..982f987c3d7 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/vm_version_solaris_sparc.cpp @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_solaris_sparc.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_sparc.hpp" # include # include diff --git a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp index bb782860f64..d1cd12f2803 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" void MacroAssembler::int3() { diff --git a/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp index 240a8de5c1d..a4b04606b9a 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/atomic_solaris_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP + +#include "orderAccess_solaris_x86.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + inline void Atomic::store (jbyte store_value, jbyte* dest) { *dest = store_value; } inline void Atomic::store (jshort store_value, jshort* dest) { *dest = store_value; } inline void Atomic::store (jint store_value, jint* dest) { *dest = store_value; } @@ -245,3 +253,5 @@ extern "C" { #undef LOCK_IF_MP #endif // _GNU_SOURCE + +#endif // OS_CPU_SOLARIS_X86_VM_ATOMIC_SOLARIS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp index 075986d2159..58620e59fd7 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/bytes_solaris_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP + // For Sun Studio - implementation is in solaris_i486.il. // For gcc - implementation is just below. extern "C" u2 _raw_swap_u2(u2 x); @@ -109,3 +112,5 @@ extern "C" { #endif // AMD64 } #endif //_GNU_SOURCE + +#endif // OS_CPU_SOLARIS_X86_VM_BYTES_SOLARIS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp index a78ef6fe311..4d3790d504f 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/copy_solaris_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP + static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { (void)memmove(to, from, count * HeapWordSize); } @@ -136,3 +139,5 @@ static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) _Copy_arrayof_conjoint_jints(from, to, count); #endif // AMD64 } + +#endif // OS_CPU_SOLARIS_X86_VM_COPY_SOLARIS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp b/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp index 36fd38fcc4d..0bbe0acba0c 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -44,3 +47,5 @@ define_pd_global(intx, CompilerThreadStackSize, 0); define_pd_global(uintx,HeapBaseMinAddress, 256*M); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_SOLARIS_X86_VM_GLOBALS_SOLARIS_X86_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp index 84c1ce9238d..a4894c8f89a 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/orderAccess_solaris_x86.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_x86.hpp" + // Implementation of class OrderAccess. // For Sun Studio - implementation is in solaris_i486.il. @@ -127,3 +133,5 @@ inline void OrderAccess::release_store_fence(volatile jdouble* p, jdouble v) inline void OrderAccess::release_store_ptr_fence(volatile intptr_t* p, intptr_t v) { *p = v; fence(); } inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* v) { *(void* volatile *)p = v; fence(); } + +#endif // OS_CPU_SOLARIS_X86_VM_ORDERACCESS_SOLARIS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp index 01e0380aeca..36eb03cd182 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @@ -22,8 +22,43 @@ * */ -// do not include precompiled header file -# include "incls/_os_solaris_x86.cpp.incl" +// no precompiled headers +#include "assembler_x86.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_solaris.h" +#include "memory/allocation.inline.hpp" +#include "mutex_solaris.inline.hpp" +#include "nativeInst_x86.hpp" +#include "os_share_solaris.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_solaris.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // put OS-includes here # include diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp index fb714bb9680..5841fb3eb59 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP + // // NOTE: we are back in class os here, not Solaris // @@ -48,3 +51,5 @@ // Used to register dynamic code cache area with the OS // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } + +#endif // OS_CPU_SOLARIS_X86_VM_OS_SOLARIS_X86_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp b/hotspot/src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp index f481c0be39e..a83b6f6d659 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/prefetch_solaris_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP +#define OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP + +#include "runtime/prefetch.hpp" + extern "C" { void _Prefetch_read (void *loc, intx interval); void _Prefetch_write(void *loc, intx interval); @@ -39,3 +44,5 @@ inline void Prefetch::write(void *loc, intx interval) { _Prefetch_write(loc, interval); #endif // AMD64 } + +#endif // OS_CPU_SOLARIS_X86_VM_PREFETCH_SOLARIS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp index 978d22d4fa6..439a09c9583 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_threadLS_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_solaris.inline.hpp" #ifdef AMD64 extern "C" Thread* fs_load(ptrdiff_t tlsOffset); diff --git a/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp b/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp index 6150f9f52ae..05a9e7c25dd 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/threadLS_solaris_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_THREADLS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_THREADLS_SOLARIS_X86_HPP + // Processor dependent parts of ThreadLocalStorage private: @@ -78,3 +81,5 @@ public: // Java Thread static inline Thread* thread(); + +#endif // OS_CPU_SOLARIS_X86_VM_THREADLS_SOLARIS_X86_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp index fa308d54630..b1f785ada9e 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_solaris.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff --git a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp index e44a83df685..d9665d3925c 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP + private: void pd_initialize() { _anchor.clear(); } @@ -57,3 +60,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_SOLARIS_X86_VM_THREAD_SOLARIS_X86_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp b/hotspot/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp index 83575234d05..76338956021 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/vmStructs_solaris_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP +#define OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -57,3 +60,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_SOLARIS_X86_VM_VMSTRUCTS_SOLARIS_X86_HPP diff --git a/hotspot/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp index ee79c6c6189..f1a3c3a0b88 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/vm_version_solaris_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_solaris_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + diff --git a/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp b/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp index 3573d495e76..55e5053387d 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler_windows_x86.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "assembler_x86.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/threadLocalStorage.hpp" void MacroAssembler::int3() { diff --git a/hotspot/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp b/hotspot/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp index 462c498f3d4..7c26cb61051 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/atomic_windows_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP + +#include "orderAccess_windows_x86.inline.hpp" +#include "runtime/atomic.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + // The following alternative implementations are needed because // Windows 95 doesn't support (some of) the corresponding Windows NT // calls. Furthermore, these versions allow inlining in the caller. @@ -249,3 +257,5 @@ inline void* Atomic::cmpxchg_ptr(void* exchange_value, volatile void* #endif // AMD64 #pragma warning(default: 4035) // Enables warnings reporting missing return statement + +#endif // OS_CPU_WINDOWS_X86_VM_ATOMIC_WINDOWS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp b/hotspot/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp index b1ea58b3892..49a79e40974 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/bytes_windows_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP + #pragma warning(disable: 4035) // Disable warning 4035: no return value // Efficient swapping of data bytes from Java byte @@ -80,3 +83,5 @@ inline u8 Bytes::swap_u8(u8 x) { #endif // AMD64 #pragma warning(default: 4035) // Enable warning 4035: no return value + +#endif // OS_CPU_WINDOWS_X86_VM_BYTES_WINDOWS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp b/hotspot/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp index 68a3359d405..f39b7a0a520 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/copy_windows_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP + static void pd_conjoint_words(HeapWord* from, HeapWord* to, size_t count) { (void)memmove(to, from, count * HeapWordSize); } @@ -164,3 +167,5 @@ static void pd_arrayof_conjoint_jlongs(HeapWord* from, HeapWord* to, size_t coun static void pd_arrayof_conjoint_oops(HeapWord* from, HeapWord* to, size_t count) { pd_conjoint_oops_atomic((oop*)from, (oop*)to, count); } + +#endif // OS_CPU_WINDOWS_X86_VM_COPY_WINDOWS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp b/hotspot/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp index 146c1c3e92f..9363190eb25 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/globals_windows_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP + // Sets the default values for platform dependent flags used by the runtime system. // (see globals.hpp) @@ -46,3 +49,5 @@ define_pd_global(uintx, JVMInvokeMethodSlack, 8192); define_pd_global(uintx, HeapBaseMinAddress, 2*G); // Only used on 64 bit Windows platforms define_pd_global(bool, UseVectoredExceptions, false); + +#endif // OS_CPU_WINDOWS_X86_VM_GLOBALS_WINDOWS_X86_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp b/hotspot/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp index 1ccddc4d397..b47753bf656 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/orderAccess_windows_x86.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_INLINE_HPP + +#include "runtime/orderAccess.hpp" +#include "vm_version_x86.hpp" + #pragma warning(disable: 4035) // Disables warnings reporting missing return statement // Implementation of class OrderAccess. @@ -208,3 +214,5 @@ inline void OrderAccess::release_store_ptr_fence(volatile void* p, void* } #pragma warning(default: 4035) // Enables warnings reporting missing return statement + +#endif // OS_CPU_WINDOWS_X86_VM_ORDERACCESS_WINDOWS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.cpp b/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.cpp index 549a3b47499..f0d23d9b844 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.cpp @@ -22,8 +22,44 @@ * */ -// do not include precompiled header file -# include "incls/_os_windows_x86.cpp.incl" +// no precompiled headers +#include "assembler_x86.inline.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/icBuffer.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "jvm_windows.h" +#include "memory/allocation.inline.hpp" +#include "mutex_windows.inline.hpp" +#include "nativeInst_x86.hpp" +#include "os_share_windows.hpp" +#include "prims/jniFastGetField.hpp" +#include "prims/jvm.h" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/extendedPC.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/osThread.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "runtime/timer.hpp" +#include "thread_windows.inline.hpp" +#include "utilities/events.hpp" +#include "utilities/vmError.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif + # include "unwind_windows_x86.hpp" #undef REG_SP #undef REG_FP diff --git a/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.hpp b/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.hpp index e5dcc78bdfc..e7c3303c0f7 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/os_windows_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP + // // NOTE: we are back in class os here, not win32 // @@ -56,3 +59,5 @@ static bool supports_sse() { return true; } static bool register_code_area(char *low, char *high); + +#endif // OS_CPU_WINDOWS_X86_VM_OS_WINDOWS_X86_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp b/hotspot/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp index 5294ec7d9bf..a09c1947755 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/prefetch_windows_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,12 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP +#define OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP + +#include "runtime/prefetch.hpp" + inline void Prefetch::read (void *loc, intx interval) {} inline void Prefetch::write(void *loc, intx interval) {} + +#endif // OS_CPU_WINDOWS_X86_VM_PREFETCH_WINDOWS_X86_INLINE_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp b/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp index 103730575a7..9bb8b4ad7ab 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,14 +22,15 @@ * */ +#include "precompiled.hpp" +#include "runtime/threadLocalStorage.hpp" +#include "thread_windows.inline.hpp" + // Provides an entry point we can link against and // a buffer we can emit code into. The buffer is // filled by ThreadLocalStorage::generate_code_for_get_thread // and called from ThreadLocalStorage::thread() -#include "incls/_precompiled.incl" -#include "incls/_threadLS_windows_x86.cpp.incl" - int ThreadLocalStorage::_thread_ptr_offset = 0; static void call_wrapper_dummy() {} diff --git a/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp b/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp index edb7fa18a3f..a764d7376f5 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/threadLS_windows_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_THREADLS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_THREADLS_WINDOWS_X86_HPP + // Processor dependent parts of ThreadLocalStorage protected: @@ -42,3 +45,5 @@ public: static inline void set_thread_ptr_offset( int offset ) { _thread_ptr_offset = offset; } static inline int get_thread_ptr_offset() { return _thread_ptr_offset; } + +#endif // OS_CPU_WINDOWS_X86_VM_THREADLS_WINDOWS_X86_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp b/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp index 7334845c3d9..6f8c4b84ac5 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_thread_windows_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/frame.inline.hpp" +#include "thread_windows.inline.hpp" // For Forte Analyzer AsyncGetCallTrace profiling support - thread is // currently interrupted by SIGPROF diff --git a/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp b/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp index 11e018068a0..1199a3c5b45 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/thread_windows_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP + private: void pd_initialize() { _anchor.clear(); @@ -60,3 +63,5 @@ static bool register_stack_overflow() { return false; } static void enable_register_stack_guard() {} static void disable_register_stack_guard() {} + +#endif // OS_CPU_WINDOWS_X86_VM_THREAD_WINDOWS_X86_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp b/hotspot/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp index 9ad977224f4..6762bf2308a 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/unwind_windows_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP + #ifdef AMD64 typedef unsigned char UBYTE; @@ -81,3 +84,5 @@ typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) ( #endif #endif // AMD64 + +#endif // OS_CPU_WINDOWS_X86_VM_UNWIND_WINDOWS_X86_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp b/hotspot/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp index 765b2423949..6df1f7226fa 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp +++ b/hotspot/src/os_cpu/windows_x86/vm/vmStructs_windows_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP +#define OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP + // These are the OS and CPU-specific fields, types and integer // constants required by the Serviceability Agent. This file is // referenced by vmStructs.cpp. @@ -52,3 +55,5 @@ \ /* This must be the last entry, and must be present */ \ last_entry() + +#endif // OS_CPU_WINDOWS_X86_VM_VMSTRUCTS_WINDOWS_X86_HPP diff --git a/hotspot/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp b/hotspot/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp index d88236783ac..f1a3c3a0b88 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/vm_version_windows_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vm_version_windows_x86.cpp.incl" +#include "precompiled.hpp" +#include "runtime/os.hpp" +#include "vm_version_x86.hpp" + diff --git a/hotspot/src/share/tools/MakeDeps/Database.java b/hotspot/src/share/tools/MakeDeps/Database.java deleted file mode 100644 index 2a19c29f082..00000000000 --- a/hotspot/src/share/tools/MakeDeps/Database.java +++ /dev/null @@ -1,552 +0,0 @@ -/* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -import java.io.*; -import java.util.*; - -public class Database { - private MacroDefinitions macros; - // allFiles is kept in lexicographically sorted order. See get(). - private FileList allFiles; - // files that have implicit dependency on platform files - // e.g. os.hpp: os_.hpp os_.hpp but only - // recorded if the platform file was seen. - private FileList platformFiles; - private FileList outerFiles; - private FileList indivIncludes; - private FileList grandInclude; // the results for the grand include file - private HashMap platformDepFiles; - private long threshold; - private int nOuterFiles; - private boolean missingOk; - private Platform plat; - /** These allow you to specify files not in the include database - which are prepended and appended to the file list, allowing - you to have well-known functions at the start and end of the - text segment (allows us to find out in a portable fashion - whether the current PC is in VM code or not upon a crash) */ - private String firstFile; - private String lastFile; - - public Database(Platform plat, long t) { - this.plat = plat; - macros = new MacroDefinitions(); - allFiles = new FileList("allFiles", plat); - platformFiles = new FileList("platformFiles", plat); - outerFiles = new FileList("outerFiles", plat); - indivIncludes = new FileList("IndivIncludes", plat); - grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat); - platformDepFiles = new HashMap(); - - threshold = t; - nOuterFiles = 0; - missingOk = false; - firstFile = null; - lastFile = null; - }; - - public FileList getAllFiles() { - return allFiles; - } - - public Iterator getMacros() { - return macros.getMacros(); - } - - public void canBeMissing() { - missingOk = true; - } - - public boolean hfileIsInGrandInclude(FileList hfile, FileList cfile) { - return ((hfile.getCount() >= threshold) && (cfile.getUseGrandInclude())); - } - - /** These allow you to specify files not in the include database - which are prepended and appended to the file list, allowing - you to have well-known functions at the start and end of the - text segment (allows us to find out in a portable fashion - whether the current PC is in VM code or not upon a crash) */ - public void setFirstFile(String fileName) { - firstFile = fileName; - } - - public void setLastFile(String fileName) { - lastFile = fileName; - } - - public void get(String platFileName, String dbFileName) - throws FileFormatException, IOException, FileNotFoundException { - macros.readFrom(platFileName, missingOk); - - BufferedReader reader = null; - try { - reader = new BufferedReader(new FileReader(dbFileName)); - } catch (FileNotFoundException e) { - if (missingOk) { - return; - } else { - throw(e); - } - } - System.out.println("\treading database: " + dbFileName); - String line; - int lineNo = 0; - do { - line = reader.readLine(); - lineNo++; - if (line != null) { - StreamTokenizer tokenizer = - new StreamTokenizer(new StringReader(line)); - tokenizer.slashSlashComments(true); - tokenizer.wordChars('_', '_'); - tokenizer.wordChars('<', '>'); - // NOTE: if we didn't have to do this line by line, - // we could trivially recognize C-style comments as - // well. - // tokenizer.slashStarComments(true); - int numTok = 0; - int res; - String unexpandedIncluder = null; - String unexpandedIncludee = null; - do { - res = tokenizer.nextToken(); - if (res != StreamTokenizer.TT_EOF) { - if (numTok == 0) { - unexpandedIncluder = tokenizer.sval; - } else if (numTok == 1) { - unexpandedIncludee = tokenizer.sval; - } else { - throw new FileFormatException( - "invalid line: \"" + line + - "\". Error position: line " + lineNo - ); - } - numTok++; - } - } while (res != StreamTokenizer.TT_EOF); - - if ((numTok != 0) && (numTok != 2)) { - throw new FileFormatException( - "invalid line: \"" + line + - "\". Error position: line " + lineNo - ); - } - - if (numTok == 2) { - // Non-empty line - String includer = macros.expand(unexpandedIncluder); - String includee = macros.expand(unexpandedIncludee); - - if (includee.equals(plat.generatePlatformDependentInclude())) { - MacroDefinitions localExpander = macros.copy(); - MacroDefinitions localExpander2 = macros.copy(); - localExpander.setAllMacroBodiesTo("pd"); - localExpander2.setAllMacroBodiesTo(""); - - // unexpanded_includer e.g. thread_.hpp - // thread_solaris_i486.hpp -> _thread_pd.hpp.incl - - FileName pdName = - plat.getInclFileTemplate().copyStem( - localExpander.expand(unexpandedIncluder) - ); - - // derive generic name from platform specific name - // e.g. os_.hpp => os.hpp. We enforce the - // restriction (imperfectly) noted in includeDB_core - // that platform specific files will have an underscore - // preceding the macro invocation. - - // First expand macro as null string. - - String newIncluder_temp = - localExpander2.expand(unexpandedIncluder); - - // Now find "_." and remove the underscore. - - String newIncluder = ""; - - int len = newIncluder_temp.length(); - int count = 0; - - for ( int i = 0; i < len - 1 ; i++ ) { - if (newIncluder_temp.charAt(i) == '_' && newIncluder_temp.charAt(i+1) == '.') { - count++; - } else { - newIncluder += newIncluder_temp.charAt(i); - } - } - newIncluder += newIncluder_temp.charAt(len-1); - - if (count != 1) { - throw new FileFormatException( - "Unexpected filename format for platform dependent file.\nline: \"" + line + - "\".\nError position: line " + lineNo - ); - } - - FileList p = allFiles.listForFile(includer); - p.setPlatformDependentInclude(pdName.dirPreStemSuff()); - - // Record the implicit include of this file so that the - // dependencies for precompiled headers can mention it. - platformDepFiles.put(newIncluder, includer); - - // Add an implicit dependency on platform - // specific file for the generic file - - p = platformFiles.listForFile(newIncluder); - - // if this list is empty then this is 1st - // occurance of a platform dependent file and - // we need a new version of the include file. - // Otherwise we just append to the current - // file. - - PrintWriter pdFile = - new PrintWriter( - new FileWriter(pdName.dirPreStemSuff(), - !p.isEmpty()) - ); - pdFile.println("# include \"" + includer + "\""); - pdFile.close(); - - // Add the platform specific file to the list - // for this generic file. - - FileList q = allFiles.listForFile(includer); - p.addIfAbsent(q); - } else { - FileList p = allFiles.listForFile(includer); - if (isOuterFile(includer)) - outerFiles.addIfAbsent(p); - - if (includee.equals(plat.noGrandInclude())) { - p.setUseGrandInclude(false); - } else { - FileList q = allFiles.listForFile(includee); - p.addIfAbsent(q); - } - } - } - } - } while (line != null); - reader.close(); - - // Keep allFiles in well-known order so we can easily determine - // whether the known files are the same - allFiles.sortByName(); - - // Add first and last files differently to prevent a mistake - // in ordering in the include databases from breaking the - // error reporting in the VM. - if (firstFile != null) { - FileList p = allFiles.listForFile(firstFile); - allFiles.setFirstFile(p); - outerFiles.setFirstFile(p); - } - - if (lastFile != null) { - FileList p = allFiles.listForFile(lastFile); - allFiles.setLastFile(p); - outerFiles.setLastFile(p); - } - } - - public void compute() { - System.out.println("\tcomputing closures\n"); - // build both indiv and grand results - for (Iterator iter = outerFiles.iterator(); iter.hasNext(); ) { - indivIncludes.add(((FileList) iter.next()).doCFile()); - ++nOuterFiles; - } - - if (!plat.haveGrandInclude()) - return; // nothing in grand include - - // count how many times each include is included & add em to grand - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - FileList indivInclude = (FileList) iter.next(); - if (!indivInclude.getUseGrandInclude()) { - continue; // do not bump count if my files cannot be - // in grand include - } - indivInclude.doFiles(grandInclude); // put em on - // grand_include list - for (Iterator incListIter = indivInclude.iterator(); - incListIter.hasNext(); ) { - ((FileList) incListIter.next()).incrementCount(); - } - } - } - - // Not sure this is necessary in Java - public void verify() { - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - if (iter.next() == null) { - plat.abort(); - } - } - } - - public void put() throws IOException { - writeIndividualIncludes(); - - if (plat.haveGrandInclude()) - writeGrandInclude(); - - writeGrandUnixMakefile(); - } - - private void writeIndividualIncludes() throws IOException { - System.out.println("\twriting individual include files\n"); - - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - FileList list = (FileList) iter.next(); - System.out.println("\tcreating " + list.getName()); - list.putInclFile(this); - } - } - - private void writeGrandInclude() throws IOException { - System.out.println("\twriting grand include file\n"); - PrintWriter inclFile = - new PrintWriter(new FileWriter(plat.getGIFileTemplate().dirPreStemSuff())); - plat.writeGIPragma(inclFile); - for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) { - FileList list = (FileList) iter.next(); - if (list.getCount() >= threshold) { - inclFile.println("# include \"" + - plat.getGIFileTemplate().getInvDir() + - list.getName() + - "\""); - } - } - inclFile.println(); - inclFile.close(); - } - - private void writeGrandUnixMakefile() throws IOException { - if (!plat.writeDeps()) - return; - - System.out.println("\twriting dependencies file\n"); - PrintWriter gd = - new PrintWriter(new FileWriter( - plat.getGDFileTemplate().dirPreStemSuff()) - ); - gd.println("# generated by makeDeps"); - gd.println(); - - - // HACK ALERT. The compilation of ad_ files is very slow. - // We want to start compiling them as early as possible. The compilation - // order on unix is dependent on the order we emit files here. - // By sorting the output before emitting it, we expect - // that ad_ will be compiled early. - boolean shouldSortObjFiles = true; - - if (shouldSortObjFiles) { - ArrayList sortList = new ArrayList(); - - // We need to preserve the ordering of the first and last items - // in outerFiles. - int size = outerFiles.size() - 1; - String firstName = removeSuffixFrom(((FileList)outerFiles.get(0)).getName()); - String lastName = removeSuffixFrom(((FileList)outerFiles.get(size)).getName()); - - for (int i=1; i= threshold) { - gd.println(list.getName() + " \\"); - String platformDep = platformDepFiles.get(list.getName()); - if (platformDep != null) { - // make sure changes to the platform dependent file will - // cause regeneration of the pch file. - gd.println(platformDep + " \\"); - } - } - } - gd.println(); - gd.println(); - - gd.println("DTraced_Files = \\"); - for (Iterator iter = outerFiles.iterator(); iter.hasNext(); ) { - FileList anOuterFile = (FileList) iter.next(); - - if (anOuterFile.hasListForFile("dtrace.hpp")) { - String stemName = removeSuffixFrom(anOuterFile.getName()); - gd.println(stemName + plat.objFileSuffix() + " \\"); - } - } - gd.println(); - gd.println(); - - { - // write each dependency - - for (Iterator iter = indivIncludes.iterator(); iter.hasNext(); ) { - - FileList anII = (FileList) iter.next(); - - String stemName = removeSuffixFrom(anII.getName()); - String inclFileName = - plat.getInclFileTemplate().copyStem(anII.getName()). - preStemSuff(); - - gd.println(stemName + plat.objFileSuffix() + " " + - stemName + plat.asmFileSuffix() + ": \\"); - - printDependentOn(gd, anII.getName()); - // this gets the include file that includes all that - // this file needs (first level) since nested includes - // are skipped to avoid cycles. - printDependentOn(gd, inclFileName); - - if ( plat.haveGrandInclude() ) { - printDependentOn(gd, - plat.getGIFileTemplate().preStemSuff()); - } - - for (Iterator iiIter = anII.iterator(); iiIter.hasNext(); ) { - FileList hfile = (FileList) iiIter.next(); - if (!hfileIsInGrandInclude(hfile, anII) || - plat.writeDependenciesOnHFilesFromGI()) { - printDependentOn(gd, hfile.getName()); - } - if (platformFiles.hasListForFile(hfile.getName())) { - FileList p = - platformFiles.listForFile(hfile.getName());; - for (Iterator hiIter = p.iterator(); - hiIter.hasNext(); ) { - FileList hi2 = (FileList) hiIter.next(); - if (!hfileIsInGrandInclude(hi2, p)) { - printDependentOn(gd, hi2.getName()); - } - } - } - } - - if (plat.includeGIDependencies() - && anII.getUseGrandInclude()) { - gd.println(" $(Precompiled_Files) \\"); - } - gd.println(); - gd.println(); - } - } - - gd.close(); - } - - public void putDiffs(Database previous) throws IOException { - System.out.println("\tupdating output files\n"); - - if (!indivIncludes.compareLists(previous.indivIncludes) - || !grandInclude.compareLists(previous.grandInclude)) { - System.out.println("The order of .c or .s has changed, or " + - "the grand include file has changed."); - put(); - return; - } - - Iterator curIter = indivIncludes.iterator(); - Iterator prevIter = previous.indivIncludes.iterator(); - - try { - while (curIter.hasNext()) { - FileList newCFileList = (FileList) curIter.next(); - FileList prevCFileList = (FileList) prevIter.next(); - if (!newCFileList.compareLists(prevCFileList)) { - System.out.println("\tupdating " + newCFileList.getName()); - newCFileList.putInclFile(this); - } - } - } - catch (Exception e) { - throw new InternalError("assertion failure: cur and prev " + - "database lists changed unexpectedly."); - } - - writeGrandUnixMakefile(); - } - - private void printDependentOn(PrintWriter gd, String name) { - gd.print(" "); - gd.print(plat.dependentPrefix() + name); - } - - private boolean isOuterFile(String s) { - int len = s.length(); - String[] suffixes = plat.outerSuffixes(); - for (int i = 0; i < suffixes.length; i++) { - String suffix = suffixes[i]; - int suffLen = suffix.length(); - if ((len >= suffLen) && - (plat.fileNameStringEquality(s.substring(len - suffLen), - suffix))) { - return true; - } - } - return false; - } - - private String removeSuffixFrom(String s) { - int idx = s.lastIndexOf('.'); - if (idx <= 0) - plat.abort(); - return s.substring(0, idx); - } -} diff --git a/hotspot/src/share/tools/MakeDeps/FileList.java b/hotspot/src/share/tools/MakeDeps/FileList.java deleted file mode 100644 index 633d9bf1804..00000000000 --- a/hotspot/src/share/tools/MakeDeps/FileList.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -import java.io.*; -import java.util.*; - -/** This class implements the java.util.List interface as well as - providing functionality specific to keeping track of lists of - files. See the documentation for the Database class to see how - these are used. Each FileList must only contain other FileLists - (although that is not currently enforced in the mutators). */ - -public class FileList extends Vector { - private String name; // (also the file name) - private boolean beenHere; - private boolean mayBeCycle; - private boolean isCycle; - /** Put in list because a file can refuse to */ - private boolean useGrandInclude; - private String platformDependentInclude; - private int count; - private Platform plat; - - public FileList(String n, Platform plat) { - super(); - this.plat = plat; - beenHere = mayBeCycle = isCycle = false; - platformDependentInclude = null; - name = n; - count = 0; - useGrandInclude = plat.haveGrandInclude(); - } - - // Change definition of equality from AbstractList so remove() works properly - public boolean equals(Object o) { - return ((Object) this) == o; - } - - // Necessary accessors - public String getName() { - return name; - } - - public void setPlatformDependentInclude(String arg) { - platformDependentInclude = arg; - } - - public String getPlatformDependentInclude() { - return platformDependentInclude; - } - - public boolean getUseGrandInclude() { - return useGrandInclude; - } - - public void setUseGrandInclude(boolean arg) { - useGrandInclude = arg; - } - - public void incrementCount() { - count++; - } - - public int getCount() { - return count; - } - - public FileList listForFile(String fileName) { - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList fl = (FileList) iter.next(); - if (plat.fileNameStringEquality(fl.name, fileName)) { - plat.fileNamePortabilityCheck(fl.name, fileName); - return fl; - } - } - plat.fileNamePortabilityCheck(fileName); - FileList newList = new FileList(fileName, plat); - add(newList); - return newList; - } - - public boolean hasListForFile(String fileName) { - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList fl = (FileList) iter.next(); - if (plat.fileNameStringEquality(fl.name, fileName)) { - plat.fileNamePortabilityCheck(fl.name, fileName); - return true; - } - } - return false; - } - - public boolean compareLists(FileList s) { - Iterator myIter = iterator(); - Iterator hisIter = s.iterator(); - - while (myIter.hasNext() && - hisIter.hasNext()) { - // crude: order dependent - FileList myElement = (FileList) myIter.next(); - FileList hisElement = (FileList) hisIter.next(); - if (!plat.fileNameStringEquality(myElement.name, - hisElement.name)) { - return false; - } - } - - if (myIter.hasNext() != hisIter.hasNext()) { - // One ended earlier - return false; - } - - return true; - } - - public void addIfAbsent(FileList s) { - for (Iterator iter = iterator(); iter.hasNext(); ) { - if (iter.next() == s) { - return; - } - } - add(s); - } - - public void sortByName() { - Collections.sort(this, new Comparator() { - public int compare(Object o1, Object o2) { - FileList fl1 = (FileList) o1; - FileList fl2 = (FileList) o2; - return fl1.getName().compareTo(fl2.getName()); - } - }); - } - - public void setFirstFile(FileList s) { - // Remove the file list if it's already here - remove(s); - add(0, s); - } - - public void setLastFile(FileList s) { - // Remove the file list if it's already here - remove(s); - add(s); - } - - public boolean doFiles(FileList s) { - boolean result = true; - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList h = (FileList) iter.next(); - if (h.platformDependentInclude != null) { - System.err.println("Error: the source for " + - h.platformDependentInclude + - " is " + h.name + "."); - System.err.println("\tIt shouldn't be included directly by " + - name + "."); - h.platformDependentInclude = null; // report once per file - result = false; - } - h.doHFile(s); - } - return result; - } - - public void traceCycle(FileList s) { - if (isCycle) // already traced - return; - isCycle = true; - System.err.println("\ttracing cycle for " + name); - // FIXME: must return status in caller routine - // exitCode = 1; - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList q = (FileList) iter.next(); - if (q.mayBeCycle) { - if (s == q) { - plat.fatalError("\tend of cycle for " + s.getName()); - } else { - q.traceCycle(s); - } - } - } - } - - public void doHFile(FileList s) { - if (beenHere) { - if (mayBeCycle) { - traceCycle(this); - } - return; - } - beenHere = true; - mayBeCycle = true; - doFiles(s); - mayBeCycle = false; - s.add(this); - } - - public FileList doCFile() { - FileList s = new FileList(name, plat); - s.useGrandInclude = useGrandInclude; // propagate this - doFiles(s); - for (Iterator iter = s.iterator(); iter.hasNext(); ) { - FileList l = (FileList) iter.next(); - l.beenHere = false; - } - return s; - } - - /** if .h file is included thresh times, put it in the grand - include file */ - public void putInclFile(Database db) - throws IOException { - boolean needline = true; - FileName inclName = plat.getInclFileTemplate().copyStem(name); - PrintWriter inclFile = - new PrintWriter(new FileWriter(inclName.dirPreStemSuff())); - if (plat.haveGrandInclude() && plat.includeGIInEachIncl()) { - inclFile.println("# include \"" + - plat.getGIFileTemplate().dirPreStemAltSuff() + - "\""); - needline = false; - } - for (Iterator iter = iterator(); iter.hasNext(); ) { - FileList hfile = (FileList) iter.next(); - if (!db.hfileIsInGrandInclude(hfile, this)) { - inclFile.println("# include \"" + - plat.getInclFileTemplate().getInvDir() + - hfile.name + - "\""); - needline = false; - } - } - - // Solaris C++ in strict mode warns about empty files - - if(needline) { - inclFile.println(); - } - - inclFile.close(); - } -} diff --git a/hotspot/src/share/tools/MakeDeps/FileName.java b/hotspot/src/share/tools/MakeDeps/FileName.java deleted file mode 100644 index eebda0e058e..00000000000 --- a/hotspot/src/share/tools/MakeDeps/FileName.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -public class FileName { - private String dir; - private String prefix; - private String stem; - private String suffix; - private String inverseDir; - private String altSuffix; - - private String dpss; - private String psa; - private String dpsa; - private String pss; - - private Platform plat; - - /** None of the passed strings may be null. */ - - public FileName(Platform plat, String dir, String prefix, - String stem, String suffix, - String inverseDir, String altSuffix) { - if ((dir == null) || - (prefix == null) || - (stem == null) || - (suffix == null) || - (inverseDir == null) || - (altSuffix == null)) { - throw new NullPointerException("All arguments must be non-null"); - } - - this.plat = plat; - - this.dir = dir; - this.prefix = prefix; - this.stem = stem; - this.suffix = suffix; - this.inverseDir = inverseDir; - this.altSuffix = altSuffix; - - pss = prefix + stem + suffix; - dpss = dir + prefix + stem + suffix; - psa = prefix + stem + altSuffix; - dpsa = dir + prefix + stem + altSuffix; - - checkLength(plat); - } - - public void checkLength(Platform p) { - int len; - String s; - int suffLen = suffix.length(); - int altSuffLen = altSuffix.length(); - if (suffLen >= altSuffLen) { - len = suffLen; - s = suffix; - } else { - len = altSuffLen; - s = altSuffix; - } - len += prefix.length() + stem.length(); - int lim = p.fileNameLengthLimit(); - if (len > lim) { - p.fatalError(prefix + stem + s + " is too long: " + - len + " >= " + lim); - } - } - - public String dirPreStemSuff() { - return dpss; - } - - public String preStemSuff() { - return pss; - } - - public String dirPreStemAltSuff() { - return dpsa; - } - - public String preStemAltSuff() { - return psa; - } - - public FileName copyStem(String newStem) { - return new FileName(plat, dir, prefix, newStem, - suffix, inverseDir, altSuffix); - } - - String nameOfList() { - return stem; - } - - String getInvDir() { - return inverseDir; - } -} diff --git a/hotspot/src/share/tools/MakeDeps/MakeDeps.java b/hotspot/src/share/tools/MakeDeps/MakeDeps.java deleted file mode 100644 index c18edcf1469..00000000000 --- a/hotspot/src/share/tools/MakeDeps/MakeDeps.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -// This program reads an include file database. -// The database should cover each self .c and .h file, -// but not files in /usr/include -// The database consists of pairs of nonblank words, where the first word is -// the filename that needs to include the file named by the second word. -// For each .c file, this program generates a fooIncludes.h file that -// the .c file may include to include all the needed files in the right order. -// It also generates a foo.dep file to include in the makefile. -// Finally it detects cycles, and can work with two files, an old and a new one. -// To incrementally write out only needed files after a small change. -// -// Based on a suggestion by Roland Conybeare, algorithm suggested by Craig -// Chambers, written by David Ungar, 3/1/89. -// Added PREFIX, {DEP/INC}_DIR, smaller dep output 10/92 -Urs - -// Add something for precompiled headers - -// To handle different platforms, I am introducing a platform file. -// The platform file contains lines like: -// os = svr4 -// -// Then, when processing the includeDB file, a token such as -// gets replaced by svr4. -- dmu 3/25/97 - -// Modified to centralize Dependencies to speed up make -- dmu 5/97 - -public class MakeDeps { - - public static void usage() { - System.out.println("usage:"); - System.out.println("\tmakeDeps platform-name platform-file database-file [MakeDeps args] [platform args]"); - System.out.println("\tmakeDeps diffs platform-name old-platform-file old-database-file new-platform-file new-database-file [MakeDeps args] [platform args]"); - System.out.println("where platform-name is the name of a platform MakeDeps supports"); - System.out.println("(currently \"WinGammaPlatform\" or \"UnixPlatform\")"); - System.out.println("MakeDeps options:"); - System.out.println(" -firstFile [filename]: Specify the first file in link order (i.e.,"); - System.out.println(" to have a well-known function at the start of the output file)"); - System.out.println(" -lastFile [filename]: Specify the last file in link order (i.e.,"); - System.out.println(" to have a well-known function at the end of the output file)"); - System.err.println("WinGammaPlatform platform-specific options:"); - System.err.println(" -sourceBase "); - System.err.println(" -dspFileName "); - System.err.println(" -envVar "); - System.err.println(" -dllLoc "); - System.err.println(" If any of the above are specified, "+ - "they must all be."); - System.err.println(" Additional, optional arguments, which can be " + - "specified multiple times:"); - System.err.println(" -absoluteInclude "); - System.err.println(" -relativeInclude "); - System.err.println(" -define "); - System.err.println(" -perFileLine "); - System.err.println(" -conditionalPerFileLine "); - System.err.println(" (NOTE: To work around a bug in nmake, where " + - "you can't have a '#' character in a quoted " + - "string, all of the lines outputted have \"#\"" + - "prepended)"); - System.err.println(" -startAt "); - System.err.println(" -ignoreFile "); - System.err.println(" -additionalFile "); - System.err.println(" -additionalGeneratedFile " + - ""); - System.err.println(" -prelink :"); - System.err.println(" Generate a set of prelink commands for the given BUILD"); - System.err.println(" (\"Debug\" or \"Release\"). The prelink description and commands"); - System.err.println(" are both quoted strings."); - System.err.println(" Default includes: \".\""); - System.err.println(" Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\""); - } - - public static void main(String[] args) { - try { - if (args.length < 3) { - usage(); - System.exit(1); - } - - int argc = 0; - boolean diffMode = false; - if (args[argc].equals("diffs")) { - diffMode = true; - ++argc; - } - - String platformName = args[argc++]; - Class platformClass = Class.forName(platformName); - - String plat1 = null; - String db1 = null; - String plat2 = null; - String db2 = null; - - String firstFile = null; - String lastFile = null; - - int numOptionalArgs = - (diffMode ? (args.length - 6) : (args.length - 3)); - if (numOptionalArgs < 0) { - usage(); - System.exit(1); - } - - plat1 = args[argc++]; - db1 = args[argc++]; - - if (diffMode) { - plat2 = args[argc++]; - db2 = args[argc++]; - } - - // argc now points at start of optional arguments, if any - - try { - boolean gotOne = true; - while (gotOne && (argc < args.length - 1)) { - gotOne = false; - String arg = args[argc]; - if (arg.equals("-firstFile")) { - firstFile = args[argc + 1]; - argc += 2; - gotOne = true; - } else if (arg.equals("-lastFile")) { - lastFile = args[argc + 1]; - argc += 2; - gotOne = true; - } - } - } - catch (Exception e) { - e.printStackTrace(); - usage(); - System.exit(1); - } - - Platform platform = (Platform) platformClass.newInstance(); - platform.setupFileTemplates(); - long t = platform.defaultGrandIncludeThreshold(); - - String[] platformArgs = null; - int numPlatformArgs = args.length - argc; - if (numPlatformArgs > 0) { - platformArgs = new String[numPlatformArgs]; - int offset = argc; - while (argc < args.length) { - platformArgs[argc - offset] = args[argc]; - ++argc; - } - } - - // If you want to change the threshold, change the default - // "grand include" threshold in Platform.java, or override - // it in the platform-specific file like UnixPlatform.java - - Database previous = new Database(platform, t); - Database current = new Database(platform, t); - - previous.canBeMissing(); - - if (firstFile != null) { - previous.setFirstFile(firstFile); - current.setFirstFile(firstFile); - } - if (lastFile != null) { - previous.setLastFile(lastFile); - current.setLastFile(lastFile); - } - - if (diffMode) { - System.out.println("Old database:"); - previous.get(plat1, db1); - previous.compute(); - System.out.println("New database:"); - current.get(plat2, db2); - current.compute(); - System.out.println("Deltas:"); - current.putDiffs(previous); - } else { - System.out.println("New database:"); - current.get(plat1, db1); - current.compute(); - current.put(); - } - - if (platformArgs != null) { - // Allow the platform to write platform-specific files - platform.writePlatformSpecificFiles(previous, current, - platformArgs); - } - } - catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - } -} diff --git a/hotspot/src/share/tools/MakeDeps/MetroWerksMacPlatform.java b/hotspot/src/share/tools/MakeDeps/MetroWerksMacPlatform.java deleted file mode 100644 index 72e1dd0de71..00000000000 --- a/hotspot/src/share/tools/MakeDeps/MetroWerksMacPlatform.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -import java.io.*; - -public class MetroWerksMacPlatform extends Platform { - public void setupFileTemplates() { - inclFileTemplate = new FileName(this, - ":incls:", "_", "", ".incl", "", "" - ); - giFileTemplate = new FileName(this, - "", "", "precompiledHeader", ".pch", "", "" - ); - gdFileTemplate = dummyFileTemplate; - } - - private static String[] suffixes = { ".cpp", ".c", ".s" }; - - public String[] outerSuffixes() { - return suffixes; - } - - public boolean includeGIInEachIncl() { - return true; - } - - public int defaultGrandIncludeThreshold() { - return 150; - } - - public void writeGIPragma(PrintWriter out) { - out.println("#pragma precompile_target \"" + - giFileTemplate.preStemAltSuff() + - "\""); - out.println(); - } - - public String objFileSuffix() { - throw new RuntimeException("Unimplemented in original makeDeps"); - } - - public String asmFileSuffix() { - throw new RuntimeException("Unimplemented in original makeDeps"); - } - - public String dependentPrefix() { - throw new RuntimeException("Unimplemented in original makeDeps"); - } -} diff --git a/hotspot/src/share/tools/MakeDeps/Platform.java b/hotspot/src/share/tools/MakeDeps/Platform.java deleted file mode 100644 index dce85a7667e..00000000000 --- a/hotspot/src/share/tools/MakeDeps/Platform.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -/** Defines what must be specified for each platform. This class must - have a no-arg constructor. */ - -import java.io.*; - -public abstract class Platform { - /** file name templates capture naming conventions */ - protected FileName dummyFileTemplate = - new FileName(this, "", "", "", "", "", ""); - - // The next three must be instantiated in subclasses' constructors - - /** An incl file is produced per .c file and contains all the - includes it needs */ - protected FileName inclFileTemplate; - - /** A GI (grand-include) file has any file used more than N times - for precompiled headers */ - protected FileName giFileTemplate; - - /** A GD (grand-dependencies) file that tells Unix make all the - .o's needed for linking and the include dependencies */ - protected FileName gdFileTemplate; - - // Accessors - public FileName getInclFileTemplate() { - return inclFileTemplate; - } - - public FileName getGIFileTemplate() { - return giFileTemplate; - } - - public FileName getGDFileTemplate() { - return gdFileTemplate; - } - - // an incl file is the file included by each.c file that includes - // all needed header files - - public abstract void setupFileTemplates(); - public abstract String[] outerSuffixes(); - - /** empty file name -> no grand include file */ - public boolean haveGrandInclude() { - return (giFileTemplate.nameOfList().length() > 0); - } - - public boolean writeDeps() { - return (gdFileTemplate.nameOfList().length() > 0); - } - - /**

    A gi file is the grand-include file. It includes in one - file any file that is included more than a certain number of - times.

    - -

    It is used for precompiled header files.

    - -

    It has a source name, that is the file that this program - generates, and a compiled name; that is the file that is - included by other files.

    - -

    Some platforms have this program actually explictly - include the preprocessed gi file-- see includeGIInEachIncl(). -

    - -

    Also, some platforms need a pragma in the GI file.

    */ - public boolean includeGIInEachIncl() { - return false; - } - - /** For some platforms, e.g. Solaris, include the grand-include - dependencies in the makefile. For others, e.g. Windows, do - not. */ - public boolean includeGIDependencies() { - return false; - } - - /** Should C/C++ source file be dependent on a file included - into the grand-include file. */ - public boolean writeDependenciesOnHFilesFromGI() { - return false; - } - - /** Default implementation does nothing */ - public void writeGIPragma(PrintWriter out) { - } - - /** A line with a filename and the noGrandInclude string means - that this file cannot use the precompiled header. */ - public String noGrandInclude() { - return "no_precompiled_headers"; - } - - /** A line with a filename and the - generatePlatformDependentInclude means that an include file - for the header file must be generated. This file generated include - file is directly included by the non-platform dependent include file - (e.g os.hpp includes _os_pd.hpp.incl. So while we notice files that - are directly dependent on non-platform dependent files from the database - we must infer the dependence on platform specific files to generate correct - dependences on the platform specific files. */ - public String generatePlatformDependentInclude() { - return "generate_platform_dependent_include"; - } - - /** Prefix and suffix strings for emitting Makefile rules */ - public abstract String objFileSuffix(); - public abstract String asmFileSuffix(); - public abstract String dependentPrefix(); - - // Exit routines: - - /** Abort means an internal error */ - public void abort() { - throw new RuntimeException("Internal error"); - } - - /** fatalError is used by clients to stop the system */ - public void fatalError(String msg) { - System.err.println(msg); - System.exit(1); - } - - /** Default implementation performs case-sensitive comparison */ - public boolean fileNameStringEquality(String s1, String s2) { - return s1.equals(s2); - } - - public void fileNamePortabilityCheck(String name) { - if (Character.isUpperCase(name.charAt(0))) { - fatalError("Error: for the sake of portability we have chosen\n" + - "to avoid files starting with an uppercase letter.\n" + - "Please rename " + name + "."); - } - } - - public void fileNamePortabilityCheck(String name, String matchingName) { - if (!name.equals(matchingName)) { - fatalError("Error: file " + name + " also appears as " + - matchingName + ". Case must be consistent for " + - "portability."); - } - } - - /** max is 31 on mac, so warn */ - public int fileNameLengthLimit() { - return 45; - } - - public int defaultGrandIncludeThreshold() { - return 30; - } - - /** Not very general, but this is a way to get platform-specific - files to be written. Default implementation does nothing. */ - public void writePlatformSpecificFiles(Database previousDB, - Database currentDB, String[] args) - throws IllegalArgumentException, IOException { - } -} diff --git a/hotspot/src/share/tools/MakeDeps/UnixPlatform.java b/hotspot/src/share/tools/MakeDeps/UnixPlatform.java deleted file mode 100644 index 3b449cc0b4f..00000000000 --- a/hotspot/src/share/tools/MakeDeps/UnixPlatform.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - * - */ - -public class UnixPlatform extends Platform { - public void setupFileTemplates() { - inclFileTemplate = new FileName(this, - "incls/", "_", "", ".incl", "", "" - ); - giFileTemplate = new FileName(this, - "incls/", "", "_precompiled", ".incl", "", "" - ); - gdFileTemplate = new FileName(this, - "", "", "Dependencies", "", "", "" - ); - } - - private static String[] suffixes = { ".cpp", ".c", ".s" }; - - public String[] outerSuffixes() { - return suffixes; - } - - public String objFileSuffix() { - return ".o"; - } - - public String asmFileSuffix() { - return ".i"; - } - - public String dependentPrefix() { - return ""; - } - - /** Do not change this; unless you fix things so precompiled - header files get translated into make dependencies. - Ungar */ - public int defaultGrandIncludeThreshold() { - if (System.getProperty("USE_PRECOMPILED_HEADER") != null) - return 30; - else - return 1 << 30; - } - - /** For Unix make, include the dependencies for precompiled header - files. */ - public boolean includeGIDependencies() { - return false; - } - - /** Should C/C++ source file be dependent on a file included - into the grand-include file. - On Unix with precompiled headers we don't want each file to be - dependent on grand-include file. Instead each C/C++ source file - is depended on each own set of files, and recompiled only when - files from this set are changed. */ - public boolean writeDependenciesOnHFilesFromGI() { - return System.getProperty("USE_PRECOMPILED_HEADER") != null; - } -} diff --git a/hotspot/src/share/tools/MakeDeps/ArgsParser.java b/hotspot/src/share/tools/ProjectCreator/ArgsParser.java similarity index 96% rename from hotspot/src/share/tools/MakeDeps/ArgsParser.java rename to hotspot/src/share/tools/ProjectCreator/ArgsParser.java index 167a6cacc37..ca5d0a337f1 100644 --- a/hotspot/src/share/tools/MakeDeps/ArgsParser.java +++ b/hotspot/src/share/tools/ProjectCreator/ArgsParser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/tools/MakeDeps/BuildConfig.java b/hotspot/src/share/tools/ProjectCreator/BuildConfig.java similarity index 89% rename from hotspot/src/share/tools/MakeDeps/BuildConfig.java rename to hotspot/src/share/tools/ProjectCreator/BuildConfig.java index b68d4103082..7a2a03c7842 100644 --- a/hotspot/src/share/tools/MakeDeps/BuildConfig.java +++ b/hotspot/src/share/tools/ProjectCreator/BuildConfig.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,6 +48,9 @@ class BuildConfig { if (vars == null) vars = new Hashtable(); String flavourBuild = flavour + "_" + build; + System.out.println(); + System.out.println(flavourBuild); + put("Name", getCI().makeCfgName(flavourBuild)); put("Flavour", flavour); put("Build", build); @@ -71,7 +74,7 @@ class BuildConfig { initDefaultDefines(defines); initDefaultCompilerFlags(includes); initDefaultLinkerFlags(); - handleDB((String)getFieldInContext("IncludeDB")); + handleDB(); } @@ -110,12 +113,12 @@ class BuildConfig { } - Vector getPreferredPaths(Database currentDB) { + Vector getPreferredPaths(MacroDefinitions macros) { Vector preferredPaths = new Vector(); // In the case of multiple files with the same name in // different subdirectories, prefer the versions specified in // the platform file as the "os_family" and "arch" macros. - for (Iterator iter = currentDB.getMacros(); iter.hasNext(); ) { + for (Iterator iter = macros.getMacros(); iter.hasNext(); ) { Macro macro = (Macro) iter.next(); if (macro.name.equals("os_family") || macro.name.equals("arch")) { @@ -129,39 +132,36 @@ class BuildConfig { } - void handleDB(String dbFile) { + void handleDB() { WinGammaPlatform platform = (WinGammaPlatform)getField(null, "PlatformObject"); - Database db = new Database(platform, platform.defaultGrandIncludeThreshold()); - - try { - File incls = new File(get("OutputDir")+Util.sep+"incls"); - FileName oldInclTempl = platform.getInclFileTemplate(); - FileName oldGITempl = platform.getGIFileTemplate(); - FileName oldGDTempl = platform.getGDFileTemplate(); - platform.setInclFileTemplate(new FileName(platform, incls.getPath()+Util.sep, - "_", "", ".incl", "", "")); - platform.setGIFileTemplate(new FileName(platform, incls.getPath()+Util.sep, - "", "_precompiled", ".incl", "", "")); + File incls = new File(get("OutputDir")+Util.sep+"incls"); - incls.mkdirs(); + incls.mkdirs(); - db.get(getFieldString(null, "Platform"), dbFile); - db.compute(); - - db.put(); - - //platform.setInclFileTemplate(oldInclTempl); - //platform.setGIFileTemplate(oldInclTempl); + MacroDefinitions macros = new MacroDefinitions(); + try { + macros.readFrom(getFieldString(null, "Platform"), false); } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException("cannot do db: "+e); + throw new RuntimeException(e); } - putSpecificField("AllFilesHash", computeAllFiles(platform, db)); + putSpecificField("AllFilesHash", computeAllFiles(platform, macros)); } + private boolean matchesIgnoredPath(String prefixedName) { + Vector rv = new Vector(); + collectRelevantVectors(rv, "IgnorePath"); + for (Iterator i = rv.iterator(); i.hasNext(); ) { + String pathPart = (String) i.next(); + if (prefixedName.contains(Util.normalize(pathPart))) { + return true; + } + } + return false; + } + void addAll(Iterator i, Hashtable hash, WinGammaPlatform platform, DirectoryTree tree, Vector preferredPaths, Vector filesNotFound, Vector filesDuplicate) { @@ -175,7 +175,10 @@ class BuildConfig { filesNotFound, filesDuplicate); if (prefixedName != null) { - addTo(hash, Util.normalize(prefixedName), fileName); + prefixedName = Util.normalize(prefixedName); + if (!matchesIgnoredPath(prefixedName)) { + addTo(hash, prefixedName, fileName); + } } } } @@ -185,23 +188,28 @@ class BuildConfig { ht.put(expandFormat(key), expandFormat(value)); } - Hashtable computeAllFiles(WinGammaPlatform platform, Database db) { + Hashtable computeAllFiles(WinGammaPlatform platform, MacroDefinitions macros) { Hashtable rv = new Hashtable(); DirectoryTree tree = getSourceTree(get("SourceBase"), getFieldString(null, "StartAt")); - Vector preferredPaths = getPreferredPaths(db); + Vector preferredPaths = getPreferredPaths(macros); // Hold errors until end Vector filesNotFound = new Vector(); Vector filesDuplicate = new Vector(); + Vector includedFiles = new Vector(); // find all files - Vector dbFiles = new Vector(); - for (Iterator i=db.getAllFiles().iterator(); i.hasNext(); ) { - FileList fl = (FileList) i.next(); - dbFiles.add(fl.getName()); + Vector dirs = getSourceIncludes(); + for (Iterator i = dirs.iterator(); i.hasNext(); ) { + String dir = (String)i.next(); + DirectoryTree subtree = getSourceTree(dir, null); + for (Iterator fi = subtree.getFileIterator(); fi.hasNext(); ) { + String name = ((File)fi.next()).getName(); + includedFiles.add(name); + } } - addAll(dbFiles.iterator(), rv, + addAll(includedFiles.iterator(), rv, platform, tree, preferredPaths, filesNotFound, filesDuplicate); @@ -356,11 +364,15 @@ class BuildConfig { Vector getIncludes() { Vector rv = new Vector(); - // for generated includes - rv.add(get("OutputDir")); - collectRelevantVectors(rv, "AbsoluteInclude"); + rv.addAll(getSourceIncludes()); + + return rv; + } + + private Vector getSourceIncludes() { + Vector rv = new Vector(); Vector ri = new Vector(); String sourceBase = getFieldString(null, "SourceBase"); collectRelevantVectors(ri, "RelativeInclude"); @@ -368,7 +380,6 @@ class BuildConfig { String f = (String)i.next(); rv.add(sourceBase + Util.sep + f); } - return rv; } @@ -381,12 +392,10 @@ class BuildConfig { cfg.startsWith("compiler2"))); } - // Filters out the IncludeDB statement, which is the only command- - // line argument we explicitly specialize for the tiered build + // Filters out the IgnoreFile and IgnorePaths since they are + // handled specially for tiered builds. static boolean appliesToTieredBuild(String cfg, String key) { - return (appliesToTieredBuild(cfg) && - (key != null && - !key.equals("IncludeDB"))); + return (appliesToTieredBuild(cfg))&& (key != null && !key.startsWith("Ignore")); } static String getTieredBuildCfg(String cfg) { @@ -441,7 +450,7 @@ class BuildConfig { static void putFieldHash(String cfg, String field, String name, Object val) { putFieldHashImpl(cfg, field, name, val); - if (appliesToTieredBuild(cfg)) { + if (appliesToTieredBuild(cfg, field)) { putFieldHashImpl(getTieredBuildCfg(cfg), field, name, val); } } @@ -459,7 +468,7 @@ class BuildConfig { static void addFieldVector(String cfg, String field, String element) { addFieldVectorImpl(cfg, field, element); - if (appliesToTieredBuild(cfg)) { + if (appliesToTieredBuild(cfg, field)) { addFieldVectorImpl(getTieredBuildCfg(cfg), field, element); } } diff --git a/hotspot/src/share/tools/MakeDeps/DirectoryTree.java b/hotspot/src/share/tools/ProjectCreator/DirectoryTree.java similarity index 87% rename from hotspot/src/share/tools/MakeDeps/DirectoryTree.java rename to hotspot/src/share/tools/ProjectCreator/DirectoryTree.java index acdc08da738..7bfbc6a8ed8 100644 --- a/hotspot/src/share/tools/MakeDeps/DirectoryTree.java +++ b/hotspot/src/share/tools/ProjectCreator/DirectoryTree.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,17 +47,47 @@ public class DirectoryTree { verbose = false; } - /** Takes an absolute path to the root directory of this - DirectoryTree. Throws IllegalArgumentException if the given - string represents a plain file or nonexistent directory. */ + public void addSubdirToIgnore(String subdir) { + subdirsToIgnore.add(subdir); + } + + private class FileIterator implements Iterator { + private Vector nodes = new Vector(); - public DirectoryTree(String baseDirectory) { - this(); - readDirectory(baseDirectory); + public FileIterator(Node rootNode) { + nodes.add(rootNode); + prune(); + } + public boolean hasNext() { + return nodes.size() > 0; + } + public Object next() { + Node last = (Node)nodes.remove(nodes.size() - 1); + prune(); + return new File(last.getName()); + } + + public void remove() { + throw new RuntimeException(); + } + + private void prune() { + while (nodes.size() > 0) { + Node last = (Node)nodes.get(nodes.size() - 1); + + if (last.isDirectory()) { + nodes.remove(nodes.size() - 1); + nodes.addAll(last.children); + } else { + // Is at file + return; + } + } + } } - public void addSubdirToIgnore(String subdir) { - subdirsToIgnore.add(subdir); + public Iterator getFileIterator() { + return new FileIterator(rootNode); } /** Output "."'s to System.out as directories are read. Defaults @@ -80,7 +110,7 @@ public class DirectoryTree { public void readDirectory(String baseDirectory) throws IllegalArgumentException { - File root = new File(baseDirectory); + File root = new File(Util.normalize(baseDirectory)); if (!root.isDirectory()) { throw new IllegalArgumentException("baseDirectory \"" + baseDirectory + diff --git a/hotspot/src/share/tools/MakeDeps/DirectoryTreeNode.java b/hotspot/src/share/tools/ProjectCreator/DirectoryTreeNode.java similarity index 94% rename from hotspot/src/share/tools/MakeDeps/DirectoryTreeNode.java rename to hotspot/src/share/tools/ProjectCreator/DirectoryTreeNode.java index f540e128775..f198dc24b52 100644 --- a/hotspot/src/share/tools/MakeDeps/DirectoryTreeNode.java +++ b/hotspot/src/share/tools/ProjectCreator/DirectoryTreeNode.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/tools/MakeDeps/FileFormatException.java b/hotspot/src/share/tools/ProjectCreator/FileFormatException.java similarity index 93% rename from hotspot/src/share/tools/MakeDeps/FileFormatException.java rename to hotspot/src/share/tools/ProjectCreator/FileFormatException.java index 1ce8b9e6dc6..f16f0b2adca 100644 --- a/hotspot/src/share/tools/MakeDeps/FileFormatException.java +++ b/hotspot/src/share/tools/ProjectCreator/FileFormatException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/tools/MakeDeps/Macro.java b/hotspot/src/share/tools/ProjectCreator/Macro.java similarity index 92% rename from hotspot/src/share/tools/MakeDeps/Macro.java rename to hotspot/src/share/tools/ProjectCreator/Macro.java index 2b9ed67c7ad..43309ab24da 100644 --- a/hotspot/src/share/tools/MakeDeps/Macro.java +++ b/hotspot/src/share/tools/ProjectCreator/Macro.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/tools/MakeDeps/MacroDefinitions.java b/hotspot/src/share/tools/ProjectCreator/MacroDefinitions.java similarity index 61% rename from hotspot/src/share/tools/MakeDeps/MacroDefinitions.java rename to hotspot/src/share/tools/ProjectCreator/MacroDefinitions.java index 727a0c4a9c5..9ed801ac95d 100644 --- a/hotspot/src/share/tools/MakeDeps/MacroDefinitions.java +++ b/hotspot/src/share/tools/ProjectCreator/MacroDefinitions.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,16 +32,6 @@ public class MacroDefinitions { macros = new Vector(); } - private String lookup(String name) throws NoSuchElementException { - for (Iterator iter = macros.iterator(); iter.hasNext(); ) { - Macro macro = (Macro) iter.next(); - if (macro.name.equals(name)) { - return macro.contents; - } - } - throw new NoSuchElementException(name); - } - public void addMacro(String name, String contents) { Macro macro = new Macro(); macro.name = name; @@ -155,102 +145,10 @@ public class MacroDefinitions { reader.close(); } - /** Throws IllegalArgumentException if passed token is illegally - formatted */ - public String expand(String token) - throws IllegalArgumentException { - // the token may contain one or more 's - - String out = ""; - - // emacs lingo - int mark = 0; - int point = 0; - - int len = token.length(); - - if (len == 0) - return out; - - do { - // Scan "point" forward until hitting either the end of - // the string or the beginning of a macro - if (token.charAt(point) == '<') { - // Append (point - mark) to out - if ((point - mark) != 0) { - out += token.substring(mark, point); - } - mark = point + 1; - // Scan forward from point for right bracket - point++; - while ((point < len) && - (token.charAt(point) != '>')) { - point++; - } - if (point == len) { - throw new IllegalArgumentException( - "Could not find right angle-bracket in token " + token - ); - } - String name = token.substring(mark, point); - if (name == null) { - throw new IllegalArgumentException( - "Empty macro in token " + token - ); - } - try { - String contents = lookup(name); - out += contents; - point++; - mark = point; - } catch (NoSuchElementException e) { - throw new IllegalArgumentException( - "Unknown macro " + name + " in token " + token - ); - } - } else { - point++; - } - } while (point != len); - - if (mark != point) { - out += token.substring(mark, point); - } - - return out; - } - - public MacroDefinitions copy() { - MacroDefinitions ret = new MacroDefinitions(); - for (Iterator iter = macros.iterator(); - iter.hasNext(); ) { - Macro orig = (Macro) iter.next(); - Macro macro = new Macro(); - macro.name = orig.name; - macro.contents = orig.contents; - ret.macros.add(macro); - } - return ret; - } - - public void setAllMacroBodiesTo(String s) { - for (Iterator iter = macros.iterator(); - iter.hasNext(); ) { - Macro macro = (Macro) iter.next(); - macro.contents = s; - } - } - /** This returns an Iterator of Macros. You should not mutate the returned Macro objects or use the Iterator to remove macros. */ public Iterator getMacros() { return macros.iterator(); } - - private void error(String text) throws FileFormatException { - throw new FileFormatException( - "Expected \"macroname = value\", but found: " + text - ); - } } diff --git a/hotspot/src/share/tools/ProjectCreator/ProjectCreator.java b/hotspot/src/share/tools/ProjectCreator/ProjectCreator.java new file mode 100644 index 00000000000..5203c5a36ed --- /dev/null +++ b/hotspot/src/share/tools/ProjectCreator/ProjectCreator.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +public class ProjectCreator { + + public static void usage() { + System.out.println("ProjectCreator options:"); + System.err.println("WinGammaPlatform platform-specific options:"); + System.err.println(" -sourceBase "); + System.err.println(" -dspFileName "); + System.err.println(" -envVar "); + System.err.println(" -dllLoc "); + System.err.println(" If any of the above are specified, "+ + "they must all be."); + System.err.println(" Additional, optional arguments, which can be " + + "specified multiple times:"); + System.err.println(" -absoluteInclude "); + System.err.println(" -relativeInclude "); + System.err.println(" -define "); + System.err.println(" -perFileLine "); + System.err.println(" -conditionalPerFileLine "); + System.err.println(" (NOTE: To work around a bug in nmake, where " + + "you can't have a '#' character in a quoted " + + "string, all of the lines outputted have \"#\"" + + "prepended)"); + System.err.println(" -startAt "); + System.err.println(" -ignoreFile "); + System.err.println(" -additionalFile "); + System.err.println(" -additionalGeneratedFile " + + ""); + System.err.println(" -prelink :"); + System.err.println(" Generate a set of prelink commands for the given BUILD"); + System.err.println(" (\"Debug\" or \"Release\"). The prelink description and commands"); + System.err.println(" are both quoted strings."); + System.err.println(" Default includes: \".\""); + System.err.println(" Default defines: WIN32, _WINDOWS, \"HOTSPOT_BUILD_USER=$(USERNAME)\""); + } + + public static void main(String[] args) { + try { + if (args.length < 3) { + usage(); + System.exit(1); + } + + String platformName = args[0]; + Class platformClass = Class.forName(platformName); + WinGammaPlatform platform = (WinGammaPlatform) platformClass.newInstance(); + + String[] platformArgs = new String[args.length - 1]; + System.arraycopy(args, 1, platformArgs, 0, platformArgs.length); + + // Allow the platform to write platform-specific files + platform.createVcproj(platformArgs); + } + catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + } +} diff --git a/hotspot/src/share/tools/MakeDeps/Util.java b/hotspot/src/share/tools/ProjectCreator/Util.java similarity index 96% rename from hotspot/src/share/tools/MakeDeps/Util.java rename to hotspot/src/share/tools/ProjectCreator/Util.java index e9a44d8d34d..e44b4f09c34 100644 --- a/hotspot/src/share/tools/MakeDeps/Util.java +++ b/hotspot/src/share/tools/ProjectCreator/Util.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/tools/MakeDeps/WinGammaPlatform.java b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatform.java similarity index 90% rename from hotspot/src/share/tools/MakeDeps/WinGammaPlatform.java rename to hotspot/src/share/tools/ProjectCreator/WinGammaPlatform.java index 1c136bdbf39..ece6b1252c1 100644 --- a/hotspot/src/share/tools/MakeDeps/WinGammaPlatform.java +++ b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatform.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -117,40 +117,7 @@ class HsArgRule extends ArgRuleSpecific { } -public abstract class WinGammaPlatform extends Platform { - public void setupFileTemplates() { - inclFileTemplate = new FileName(this, - "incls\\", "_", "", ".incl", "", "" - ); - giFileTemplate = new FileName(this, - "incls\\", "", "_precompiled", ".incl", "", "" - ); - gdFileTemplate = new FileName(this, - "", "", "Dependencies", "", "", "" - ); - } - - private static String[] suffixes = { ".cpp", ".c" }; - - public String[] outerSuffixes() { - return suffixes; - } - - public String objFileSuffix() { - return ".obj"; - } - - public String asmFileSuffix() { - return ".i"; - } - - public String dependentPrefix() { - return "$(VM_PATH)"; - } - - public boolean includeGIInEachIncl() { - return false; - } +public abstract class WinGammaPlatform { public boolean fileNameStringEquality(String s1, String s2) { return s1.equalsIgnoreCase(s2); @@ -176,8 +143,7 @@ public abstract class WinGammaPlatform extends Platform { "#define (flag) (value))>"); System.err.println(" -startAt "); System.err.println(" -additionalFile "); + "which should show up in project file>"); System.err.println(" -additionalGeneratedFile " + ""); @@ -301,27 +267,6 @@ public abstract class WinGammaPlatform extends Platform { return name; } - protected boolean databaseAllFilesEqual(Database previousDB, - Database currentDB) { - Iterator i1 = previousDB.getAllFiles().iterator(); - Iterator i2 = currentDB.getAllFiles().iterator(); - - while (i1.hasNext() && i2.hasNext()) { - FileList fl1 = (FileList) i1.next(); - FileList fl2 = (FileList) i2.next(); - if (!fl1.getName().equals(fl2.getName())) { - return false; - } - } - - if (i1.hasNext() != i2.hasNext()) { - // Different lengths - return false; - } - - return true; - } - protected String envVarPrefixedFileName(String fileName, int sourceBaseLen, DirectoryTree tree, @@ -374,8 +319,7 @@ public abstract class WinGammaPlatform extends Platform { protected abstract String getProjectExt(); - public void writePlatformSpecificFiles(Database previousDB, - Database currentDB, String[] args) + public void createVcproj(String[] args) throws IllegalArgumentException, IOException { parseArguments(args); @@ -383,16 +327,6 @@ public abstract class WinGammaPlatform extends Platform { String projectFileName = BuildConfig.getFieldString(null, "ProjectFileName"); String ext = getProjectExt(); - // Compare contents of allFiles of previousDB and includeDB. - // If these haven't changed, then skip writing the .vcproj file. - if (false && databaseAllFilesEqual(previousDB, currentDB) && - new File(projectFileName).exists()) { - System.out.println( - " Databases unchanged; skipping overwrite of "+ext+" file." - ); - return; - } - String projectName = getProjectName(projectFileName, ext); writeProjectFile(projectFileName, projectName, createAllConfigs()); @@ -407,15 +341,6 @@ public abstract class WinGammaPlatform extends Platform { } - void setInclFileTemplate(FileName val) { - this.inclFileTemplate = val; - } - - void setGIFileTemplate(FileName val) { - this.giFileTemplate = val; - } - - void parseArguments(String[] args) { new ArgsParser(args, new ArgRule[] @@ -551,6 +476,12 @@ public abstract class WinGammaPlatform extends Platform { HsArgHandler.HASH ), + new HsArgRule("-ignorePath", + "IgnorePath", + null, + HsArgHandler.VECTOR + ), + new HsArgRule("-additionalFile", "AdditionalFile", null, @@ -565,9 +496,6 @@ public abstract class WinGammaPlatform extends Platform { String dir = it.get(); if (nextNotKey(it)) { String fileName = it.get(); - // we ignore files that we know are generated, so we coudn't - // find them in sources - BuildConfig.putFieldHash(cfg, "IgnoreFile", fileName, "1"); BuildConfig.putFieldHash(cfg, "AdditionalGeneratedFile", Util.normalize(dir + Util.sep + fileName), fileName); @@ -580,12 +508,6 @@ public abstract class WinGammaPlatform extends Platform { } ), - new HsArgRule("-includeDB", - "IncludeDB", - null, - HsArgHandler.STRING - ), - new ArgRule("-prelink", new HsArgHandler() { public void handle(ArgIterator it) { diff --git a/hotspot/src/share/tools/MakeDeps/WinGammaPlatformVC6.java b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC6.java similarity index 99% rename from hotspot/src/share/tools/MakeDeps/WinGammaPlatformVC6.java rename to hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC6.java index f394b3c5062..fb64f7b9275 100644 --- a/hotspot/src/share/tools/MakeDeps/WinGammaPlatformVC6.java +++ b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC6.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/tools/MakeDeps/WinGammaPlatformVC7.java b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java similarity index 86% rename from hotspot/src/share/tools/MakeDeps/WinGammaPlatformVC7.java rename to hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java index fffff8bd907..e0545228f6c 100644 --- a/hotspot/src/share/tools/MakeDeps/WinGammaPlatformVC7.java +++ b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC7.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -160,6 +160,25 @@ public class WinGammaPlatformVC7 extends WinGammaPlatform { } + class SpecificPathFilter extends NameFilter { + String pats[]; + + SpecificPathFilter(String fname, String[] pats) { + this.fname = fname; + this.pats = pats; + } + + boolean match(FileInfo fi) { + for (int i=0; i(b)) ? (a) : (b)) -// VM components -#include "opcodes.hpp" - // ADLC components #include "arena.hpp" -#include "adlcVMDeps.hpp" +#include "opto/adlcVMDeps.hpp" #include "filebuff.hpp" #include "dict2.hpp" #include "forms.hpp" @@ -101,3 +105,5 @@ typedef unsigned int uintptr_t; // could have a backpointer to the AD but it's too complicated to pass // it everywhere it needs to be available. extern ArchDesc* globalAD; + +#endif // SHARE_VM_ADLC_ADLC_HPP diff --git a/hotspot/src/share/vm/adlc/adlparse.cpp b/hotspot/src/share/vm/adlc/adlparse.cpp index 4294471564b..bd37af19afe 100644 --- a/hotspot/src/share/vm/adlc/adlparse.cpp +++ b/hotspot/src/share/vm/adlc/adlparse.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/adlparse.hpp b/hotspot/src/share/vm/adlc/adlparse.hpp index ffeb336d074..1ebb3e3250e 100644 --- a/hotspot/src/share/vm/adlc/adlparse.hpp +++ b/hotspot/src/share/vm/adlc/adlparse.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_ADLPARSE_HPP +#define SHARE_VM_ADLC_ADLPARSE_HPP + // ADLPARSE.HPP - Definitions for Architecture Description Language Parser // Authors: Chris Vick and Mike Paleczny @@ -277,3 +280,5 @@ public: static bool equivalent_expressions(const char* str1, const char* str2); static void trim(char* &token); // trim leading & trailing spaces }; + +#endif // SHARE_VM_ADLC_ADLPARSE_HPP diff --git a/hotspot/src/share/vm/adlc/archDesc.cpp b/hotspot/src/share/vm/adlc/archDesc.cpp index 263f9e6e342..e751b54db0a 100644 --- a/hotspot/src/share/vm/adlc/archDesc.cpp +++ b/hotspot/src/share/vm/adlc/archDesc.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -1038,22 +1038,38 @@ void ArchDesc::addSunCopyright(char* legal, int size, FILE *fp) { fprintf(fp,"\n"); } -//---------------------------machineDependentIncludes-------------------------- -// output #include declarations for machine specific files -void ArchDesc::machineDependentIncludes(ADLFILE &adlfile) { - const char *basename = adlfile._name; - const char *cp; - for (cp = basename; *cp; cp++) - if (*cp == '/') basename = cp+1; +//---------------------------addIncludeGuardStart-------------------------- +// output the start of an include guard. +void ArchDesc::addIncludeGuardStart(ADLFILE &adlfile, const char* guardString) { // Build #include lines fprintf(adlfile._fp, "\n"); - fprintf(adlfile._fp, "#include \"incls/_precompiled.incl\"\n"); - fprintf(adlfile._fp, "#include \"incls/_%s.incl\"\n",basename); + fprintf(adlfile._fp, "#ifndef %s\n", guardString); + fprintf(adlfile._fp, "#define %s\n", guardString); fprintf(adlfile._fp, "\n"); } +//---------------------------addIncludeGuardEnd-------------------------- +// output the end of an include guard. +void ArchDesc::addIncludeGuardEnd(ADLFILE &adlfile, const char* guardString) { + // Build #include lines + fprintf(adlfile._fp, "\n"); + fprintf(adlfile._fp, "#endif // %s\n", guardString); + +} + +//---------------------------addInclude-------------------------- +// output the #include line for this file. +void ArchDesc::addInclude(ADLFILE &adlfile, const char* fileName) { + fprintf(adlfile._fp, "#include \"%s\"\n", fileName); + +} + +void ArchDesc::addInclude(ADLFILE &adlfile, const char* includeDir, const char* fileName) { + fprintf(adlfile._fp, "#include \"%s/%s\"\n", includeDir, fileName); + +} //---------------------------addPreprocessorChecks----------------------------- // Output C preprocessor code to verify the backend compilation environment. diff --git a/hotspot/src/share/vm/adlc/archDesc.hpp b/hotspot/src/share/vm/adlc/archDesc.hpp index 1904d1d368e..7a2ff93afeb 100644 --- a/hotspot/src/share/vm/adlc/archDesc.hpp +++ b/hotspot/src/share/vm/adlc/archDesc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_ARCHDESC_HPP +#define SHARE_VM_ADLC_ARCHDESC_HPP + // Definitions for Error Flags #define WARN 0 #define SYNERR 1 @@ -274,8 +277,13 @@ public: // output SUN copyright info void addSunCopyright(char* legal, int size, FILE *fp); - // output #include declarations for machine specific files - void machineDependentIncludes(ADLFILE &adlfile); + // output the start of an include guard. + void addIncludeGuardStart(ADLFILE &adlfile, const char* guardString); + // output the end of an include guard. + void addIncludeGuardEnd(ADLFILE &adlfile, const char* guardString); + // output the #include line for this file. + void addInclude(ADLFILE &adlfile, const char* fileName); + void addInclude(ADLFILE &adlfile, const char* includeDir, const char* fileName); // Output C preprocessor code to verify the backend compilation environment. void addPreprocessorChecks(FILE *fp); // Output C source and header (source_hpp) blocks. @@ -387,3 +395,5 @@ public: // Allow derived class to output name and position specific info virtual void record_position(OutputMap::position place, int index) {} }; + +#endif // SHARE_VM_ADLC_ARCHDESC_HPP diff --git a/hotspot/src/share/vm/adlc/arena.cpp b/hotspot/src/share/vm/adlc/arena.cpp index d8330fe8c8a..b8bb1a0bd8f 100644 --- a/hotspot/src/share/vm/adlc/arena.cpp +++ b/hotspot/src/share/vm/adlc/arena.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/arena.hpp b/hotspot/src/share/vm/adlc/arena.hpp index 2975165dc6c..a92857e1311 100644 --- a/hotspot/src/share/vm/adlc/arena.hpp +++ b/hotspot/src/share/vm/adlc/arena.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_ARENA_HPP +#define SHARE_VM_ADLC_ARENA_HPP + // All classes in the virtual machine must be subclassed // by one of the following allocation classes: // @@ -155,3 +158,5 @@ public: size_t size_in_bytes() const { return _size_in_bytes; } void set_size_in_bytes(size_t size) { _size_in_bytes = size; } }; + +#endif // SHARE_VM_ADLC_ARENA_HPP diff --git a/hotspot/src/share/vm/adlc/dfa.cpp b/hotspot/src/share/vm/adlc/dfa.cpp index 4f65a8fe0e7..5333c152cea 100644 --- a/hotspot/src/share/vm/adlc/dfa.cpp +++ b/hotspot/src/share/vm/adlc/dfa.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/dict2.cpp b/hotspot/src/share/vm/adlc/dict2.cpp index 3d0b783db5b..c9423df2e3c 100644 --- a/hotspot/src/share/vm/adlc/dict2.cpp +++ b/hotspot/src/share/vm/adlc/dict2.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/dict2.hpp b/hotspot/src/share/vm/adlc/dict2.hpp index 08b1695d1d7..1d0d22aa0f6 100644 --- a/hotspot/src/share/vm/adlc/dict2.hpp +++ b/hotspot/src/share/vm/adlc/dict2.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#ifndef _DICT_ -#define _DICT_ +#ifndef SHARE_VM_ADLC_DICT2_HPP +#define SHARE_VM_ADLC_DICT2_HPP + // Dictionaries - An Abstract Data Type @@ -117,4 +118,4 @@ class DictI { int test(void) { return _i<_d->_size;} // Test for end of iteration }; -#endif // _DICT_ +#endif // SHARE_VM_ADLC_DICT2_HPP diff --git a/hotspot/src/share/vm/adlc/filebuff.cpp b/hotspot/src/share/vm/adlc/filebuff.cpp index 6c86c5634a0..5f54d724638 100644 --- a/hotspot/src/share/vm/adlc/filebuff.cpp +++ b/hotspot/src/share/vm/adlc/filebuff.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/filebuff.hpp b/hotspot/src/share/vm/adlc/filebuff.hpp index e5b1747f37a..3d8bdad8fe0 100644 --- a/hotspot/src/share/vm/adlc/filebuff.hpp +++ b/hotspot/src/share/vm/adlc/filebuff.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FILEBUFF_HPP +#define SHARE_VM_ADLC_FILEBUFF_HPP + // FILEBUFF.HPP - Definitions for parser file buffering routines #include @@ -99,3 +102,5 @@ class FileBuffRegion { void print(ostream&); friend ostream& operator<< (ostream&, FileBuffRegion&); }; + +#endif // SHARE_VM_ADLC_FILEBUFF_HPP diff --git a/hotspot/src/share/vm/adlc/forms.cpp b/hotspot/src/share/vm/adlc/forms.cpp index bdd35fd2adf..5e05a841ed9 100644 --- a/hotspot/src/share/vm/adlc/forms.cpp +++ b/hotspot/src/share/vm/adlc/forms.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/forms.hpp b/hotspot/src/share/vm/adlc/forms.hpp index 03e4eb172ae..3132c6a3f92 100644 --- a/hotspot/src/share/vm/adlc/forms.hpp +++ b/hotspot/src/share/vm/adlc/forms.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FORMS_HPP +#define SHARE_VM_ADLC_FORMS_HPP + // FORMS.HPP - ADL Parser Generic and Utility Forms Classes #define TRUE 1 @@ -588,3 +591,5 @@ public: void print_asserts(FILE *fp); void dump(); }; + +#endif // SHARE_VM_ADLC_FORMS_HPP diff --git a/hotspot/src/share/vm/adlc/formsopt.cpp b/hotspot/src/share/vm/adlc/formsopt.cpp index 7aa4052192a..e9287538511 100644 --- a/hotspot/src/share/vm/adlc/formsopt.cpp +++ b/hotspot/src/share/vm/adlc/formsopt.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/formsopt.hpp b/hotspot/src/share/vm/adlc/formsopt.hpp index 9bf2af65054..2c0cad506e3 100644 --- a/hotspot/src/share/vm/adlc/formsopt.hpp +++ b/hotspot/src/share/vm/adlc/formsopt.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FORMSOPT_HPP +#define SHARE_VM_ADLC_FORMSOPT_HPP + // FORMSOPT.HPP - ADL Parser Target Specific Optimization Forms Classes // Class List @@ -546,3 +549,5 @@ public: void dump(); void output(FILE *fp); }; + +#endif // SHARE_VM_ADLC_FORMSOPT_HPP diff --git a/hotspot/src/share/vm/adlc/formssel.hpp b/hotspot/src/share/vm/adlc/formssel.hpp index 4c05285a8c8..285eacd0afa 100644 --- a/hotspot/src/share/vm/adlc/formssel.hpp +++ b/hotspot/src/share/vm/adlc/formssel.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_ADLC_FORMSSEL_HPP +#define SHARE_VM_ADLC_FORMSSEL_HPP + // FORMSSEL.HPP - ADL Parser Instruction Selection Forms Classes // Class List @@ -1062,3 +1065,5 @@ public: void dump(); void output(FILE *fp); }; + +#endif // SHARE_VM_ADLC_FORMSSEL_HPP diff --git a/hotspot/src/share/vm/adlc/main.cpp b/hotspot/src/share/vm/adlc/main.cpp index 4aaa5e393e5..3d74a4f02f9 100644 --- a/hotspot/src/share/vm/adlc/main.cpp +++ b/hotspot/src/share/vm/adlc/main.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,6 +34,17 @@ static int get_legal_text(FileBuff &fbuf, char **legal_text); // Get pointer to ArchDesc* globalAD = NULL; // global reference to Architecture Description object +const char* get_basename(const char* filename) { + const char *basename = filename; + const char *cp; + for (cp = basename; *cp; cp++) { + if (*cp == '/') { + basename = cp+1; + } + } + return basename; +} + //------------------------------main------------------------------------------- int main(int argc, char *argv[]) { @@ -193,16 +204,69 @@ int main(int argc, char *argv[]) AD.addSunCopyright(legal_text, legal_sz, AD._CPP_PIPELINE_file._fp); // .cpp AD.addSunCopyright(legal_text, legal_sz, AD._VM_file._fp); // .hpp AD.addSunCopyright(legal_text, legal_sz, AD._DFA_file._fp); // .cpp + // Add include guards for all .hpp files + AD.addIncludeGuardStart(AD._HPP_file, "GENERATED_ADFILES_AD_HPP"); // .hpp + AD.addIncludeGuardStart(AD._VM_file, "GENERATED_ADFILES_ADGLOBALS_HPP"); // .hpp + // Add includes + AD.addInclude(AD._CPP_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_file, "adfiles", get_basename(AD._VM_file._name)); + AD.addInclude(AD._CPP_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_file, "memory/allocation.inline.hpp"); + AD.addInclude(AD._CPP_file, "asm/assembler.hpp"); + AD.addInclude(AD._CPP_file, "code/vmreg.hpp"); + AD.addInclude(AD._CPP_file, "gc_interface/collectedHeap.inline.hpp"); + AD.addInclude(AD._CPP_file, "oops/compiledICHolderOop.hpp"); + AD.addInclude(AD._CPP_file, "oops/markOop.hpp"); + AD.addInclude(AD._CPP_file, "oops/methodOop.hpp"); + AD.addInclude(AD._CPP_file, "oops/oop.inline.hpp"); + AD.addInclude(AD._CPP_file, "oops/oop.inline2.hpp"); + AD.addInclude(AD._CPP_file, "opto/cfgnode.hpp"); + AD.addInclude(AD._CPP_file, "opto/locknode.hpp"); + AD.addInclude(AD._CPP_file, "opto/opcodes.hpp"); + AD.addInclude(AD._CPP_file, "opto/regalloc.hpp"); + AD.addInclude(AD._CPP_file, "opto/regmask.hpp"); + AD.addInclude(AD._CPP_file, "opto/runtime.hpp"); + AD.addInclude(AD._CPP_file, "runtime/biasedLocking.hpp"); + AD.addInclude(AD._CPP_file, "runtime/sharedRuntime.hpp"); + AD.addInclude(AD._CPP_file, "runtime/stubRoutines.hpp"); + AD.addInclude(AD._CPP_file, "utilities/growableArray.hpp"); +#ifdef TARGET_ARCH_x86 + AD.addInclude(AD._CPP_file, "assembler_x86.inline.hpp"); + AD.addInclude(AD._CPP_file, "nativeInst_x86.hpp"); + AD.addInclude(AD._CPP_file, "vmreg_x86.inline.hpp"); +#endif +#ifdef TARGET_ARCH_sparc + AD.addInclude(AD._CPP_file, "assembler_sparc.inline.hpp"); + AD.addInclude(AD._CPP_file, "nativeInst_sparc.hpp"); + AD.addInclude(AD._CPP_file, "vmreg_sparc.inline.hpp"); +#endif + AD.addInclude(AD._HPP_file, "memory/allocation.hpp"); + AD.addInclude(AD._HPP_file, "opto/machnode.hpp"); + AD.addInclude(AD._HPP_file, "opto/node.hpp"); + AD.addInclude(AD._HPP_file, "opto/regalloc.hpp"); + AD.addInclude(AD._HPP_file, "opto/subnode.hpp"); + AD.addInclude(AD._CPP_CLONE_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_CLONE_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_EXPAND_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_EXPAND_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_FORMAT_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_FORMAT_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_GEN_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_GEN_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_GEN_file, "opto/cfgnode.hpp"); + AD.addInclude(AD._CPP_GEN_file, "opto/locknode.hpp"); + AD.addInclude(AD._CPP_MISC_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_MISC_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_PEEPHOLE_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_PEEPHOLE_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._CPP_PIPELINE_file, "precompiled.hpp"); + AD.addInclude(AD._CPP_PIPELINE_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._DFA_file, "precompiled.hpp"); + AD.addInclude(AD._DFA_file, "adfiles", get_basename(AD._HPP_file._name)); + AD.addInclude(AD._DFA_file, "opto/matcher.hpp"); + AD.addInclude(AD._DFA_file, "opto/opcodes.hpp"); // Make sure each .cpp file starts with include lines: // files declaring and defining generators for Mach* Objects (hpp,cpp) - AD.machineDependentIncludes(AD._CPP_file); // .cpp - AD.machineDependentIncludes(AD._CPP_CLONE_file); // .cpp - AD.machineDependentIncludes(AD._CPP_EXPAND_file); // .cpp - AD.machineDependentIncludes(AD._CPP_FORMAT_file); // .cpp - AD.machineDependentIncludes(AD._CPP_GEN_file); // .cpp - AD.machineDependentIncludes(AD._CPP_MISC_file); // .cpp - AD.machineDependentIncludes(AD._CPP_PEEPHOLE_file); // .cpp - AD.machineDependentIncludes(AD._CPP_PIPELINE_file); // .cpp // Generate the result files: // enumerations, class definitions, object generators, and the DFA // file containing enumeration of machine operands & instructions (hpp) @@ -244,8 +308,10 @@ int main(int argc, char *argv[]) AD.addPreprocessorChecks(AD._CPP_PIPELINE_file._fp); // .cpp // define the finite automata that selects lowest cost production - AD.machineDependentIncludes(AD._DFA_file); // .cpp AD.buildDFA(AD._DFA_file._fp); + // Add include guards for all .hpp files + AD.addIncludeGuardEnd(AD._HPP_file, "GENERATED_ADFILES_AD_HPP"); // .hpp + AD.addIncludeGuardEnd(AD._VM_file, "GENERATED_ADFILES_ADGLOBALS_HPP"); // .hpp AD.close_files(0); // Close all input/output files diff --git a/hotspot/src/share/vm/asm/assembler.cpp b/hotspot/src/share/vm/asm/assembler.cpp index 4eaa7fc36a1..e4e890931f5 100644 --- a/hotspot/src/share/vm/asm/assembler.cpp +++ b/hotspot/src/share/vm/asm/assembler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_assembler.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "asm/assembler.inline.hpp" +#include "asm/codeBuffer.hpp" +#include "runtime/icache.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif // Implementation of AbstractAssembler diff --git a/hotspot/src/share/vm/asm/assembler.hpp b/hotspot/src/share/vm/asm/assembler.hpp index d6a31e2e5aa..04d84c43797 100644 --- a/hotspot/src/share/vm/asm/assembler.hpp +++ b/hotspot/src/share/vm/asm/assembler.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,28 @@ * */ +#ifndef SHARE_VM_ASM_ASSEMBLER_HPP +#define SHARE_VM_ASM_ASSEMBLER_HPP + +#include "code/oopRecorder.hpp" +#include "code/relocInfo.hpp" +#include "memory/allocation.hpp" +#include "utilities/debug.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_ARCH_x86 +# include "register_x86.hpp" +# include "vm_version_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "register_sparc.hpp" +# include "vm_version_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "register_zero.hpp" +# include "vm_version_zero.hpp" +#endif + // This file contains platform-independent assembler declarations. class CodeBuffer; @@ -348,4 +370,15 @@ class AbstractAssembler : public ResourceObj { #endif // PRODUCT }; -#include "incls/_assembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.hpp" +#endif + + +#endif // SHARE_VM_ASM_ASSEMBLER_HPP diff --git a/hotspot/src/share/vm/asm/assembler.inline.hpp b/hotspot/src/share/vm/asm/assembler.inline.hpp index 043e49ad780..a42b6d3ab8a 100644 --- a/hotspot/src/share/vm/asm/assembler.inline.hpp +++ b/hotspot/src/share/vm/asm/assembler.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_ASM_ASSEMBLER_INLINE_HPP +#define SHARE_VM_ASM_ASSEMBLER_INLINE_HPP + +#include "asm/assembler.hpp" +#include "asm/codeBuffer.hpp" +#include "compiler/disassembler.hpp" +#include "runtime/threadLocalStorage.hpp" + inline void AbstractAssembler::sync() { CodeSection* cs = code_section(); guarantee(cs->start() == _code_begin, "must not shift code buffer"); @@ -133,3 +141,5 @@ address AbstractAssembler::address_table_constant(GrowableArray labels) } return ptr; } + +#endif // SHARE_VM_ASM_ASSEMBLER_INLINE_HPP diff --git a/hotspot/src/share/vm/asm/codeBuffer.cpp b/hotspot/src/share/vm/asm/codeBuffer.cpp index d7e4bb54d3b..e0978a78e62 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.cpp +++ b/hotspot/src/share/vm/asm/codeBuffer.cpp @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_codeBuffer.cpp.incl" +#include "precompiled.hpp" +#include "asm/codeBuffer.hpp" +#include "compiler/disassembler.hpp" +#include "utilities/copy.hpp" // The structure of a CodeSection: // diff --git a/hotspot/src/share/vm/asm/codeBuffer.hpp b/hotspot/src/share/vm/asm/codeBuffer.hpp index da38c19e4a8..8ab664d4963 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.hpp +++ b/hotspot/src/share/vm/asm/codeBuffer.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_ASM_CODEBUFFER_HPP +#define SHARE_VM_ASM_CODEBUFFER_HPP + +#include "asm/assembler.hpp" +#include "code/oopRecorder.hpp" +#include "code/relocInfo.hpp" + class CodeComments; class AbstractAssembler; class MacroAssembler; @@ -550,7 +557,16 @@ class CodeBuffer: public StackObj { // The following header contains architecture-specific implementations - #include "incls/_codeBuffer_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "codeBuffer_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "codeBuffer_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "codeBuffer_zero.hpp" +#endif + }; @@ -562,3 +578,5 @@ inline bool CodeSection::maybe_expand_to_ensure_remaining(csize_t amount) { if (remaining() < amount) { _outer->expand(this, amount); return true; } return false; } + +#endif // SHARE_VM_ASM_CODEBUFFER_HPP diff --git a/hotspot/src/share/vm/asm/register.cpp b/hotspot/src/share/vm/asm/register.cpp index f491150e7e2..85da369ca20 100644 --- a/hotspot/src/share/vm/asm/register.cpp +++ b/hotspot/src/share/vm/asm/register.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_register.cpp.incl" +#include "precompiled.hpp" +#include "asm/register.hpp" // Intentionally left blank diff --git a/hotspot/src/share/vm/asm/register.hpp b/hotspot/src/share/vm/asm/register.hpp index a142d057592..48179211f3f 100644 --- a/hotspot/src/share/vm/asm/register.hpp +++ b/hotspot/src/share/vm/asm/register.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_ASM_REGISTER_HPP +#define SHARE_VM_ASM_REGISTER_HPP + +#include "utilities/top.hpp" + // Use AbstractRegister as shortcut class AbstractRegisterImpl; typedef AbstractRegisterImpl* AbstractRegister; @@ -209,3 +214,5 @@ inline void assert_different_registers( "registers must be different" ); } + +#endif // SHARE_VM_ASM_REGISTER_HPP diff --git a/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp b/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp index fa1e08ff0f4..4964ebd683e 100644 --- a/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp +++ b/hotspot/src/share/vm/c1/c1_CFGPrinter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_CFGPrinter.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_ValueStack.hpp" #ifndef PRODUCT diff --git a/hotspot/src/share/vm/c1/c1_CFGPrinter.hpp b/hotspot/src/share/vm/c1/c1_CFGPrinter.hpp index a8bf09420ea..1cdde1186b2 100644 --- a/hotspot/src/share/vm/c1/c1_CFGPrinter.hpp +++ b/hotspot/src/share/vm/c1/c1_CFGPrinter.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_C1_C1_CFGPRINTER_HPP +#define SHARE_VM_C1_C1_CFGPRINTER_HPP + +#include "c1/c1_Compilation.hpp" +#include "c1/c1_Instruction.hpp" + #ifndef PRODUCT // This is a utility class used for recording the results of a @@ -44,3 +50,5 @@ public: }; #endif + +#endif // SHARE_VM_C1_C1_CFGPRINTER_HPP diff --git a/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp b/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp index 024e1ed369a..56a254c7748 100644 --- a/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp +++ b/hotspot/src/share/vm/c1/c1_Canonicalizer.cpp @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Canonicalizer.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "runtime/sharedRuntime.hpp" class PrintValueVisitor: public ValueVisitor { diff --git a/hotspot/src/share/vm/c1/c1_Canonicalizer.hpp b/hotspot/src/share/vm/c1/c1_Canonicalizer.hpp index a25a4bd238c..e784fc953a2 100644 --- a/hotspot/src/share/vm/c1/c1_Canonicalizer.hpp +++ b/hotspot/src/share/vm/c1/c1_Canonicalizer.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_CANONICALIZER_HPP +#define SHARE_VM_C1_C1_CANONICALIZER_HPP + +#include "c1/c1_Instruction.hpp" + class Canonicalizer: InstructionVisitor { private: Compilation *_compilation; @@ -98,3 +103,5 @@ class Canonicalizer: InstructionVisitor { virtual void do_ProfileCall (ProfileCall* x); virtual void do_ProfileInvoke (ProfileInvoke* x); }; + +#endif // SHARE_VM_C1_C1_CANONICALIZER_HPP diff --git a/hotspot/src/share/vm/c1/c1_CodeStubs.hpp b/hotspot/src/share/vm/c1/c1_CodeStubs.hpp index d8a8ed6bcb7..7579b0cfebc 100644 --- a/hotspot/src/share/vm/c1/c1_CodeStubs.hpp +++ b/hotspot/src/share/vm/c1/c1_CodeStubs.hpp @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_C1_C1_CODESTUBS_HPP +#define SHARE_VM_C1_C1_CODESTUBS_HPP + +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_Runtime1.hpp" +#include "utilities/array.hpp" + class CodeEmitInfo; class LIR_Assembler; class LIR_OpVisitState; @@ -586,3 +596,5 @@ class G1PostBarrierStub: public CodeStub { #endif // SERIALGC ////////////////////////////////////////////////////////////////////////////////////////// + +#endif // SHARE_VM_C1_C1_CODESTUBS_HPP diff --git a/hotspot/src/share/vm/c1/c1_Compilation.cpp b/hotspot/src/share/vm/c1/c1_Compilation.cpp index 57e1623d959..f4c353f4592 100644 --- a/hotspot/src/share/vm/c1/c1_Compilation.cpp +++ b/hotspot/src/share/vm/c1/c1_Compilation.cpp @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Compilation.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_ValueMap.hpp" +#include "c1/c1_ValueStack.hpp" +#include "code/debugInfoRec.hpp" typedef enum { diff --git a/hotspot/src/share/vm/c1/c1_Compilation.hpp b/hotspot/src/share/vm/c1/c1_Compilation.hpp index 0e217614fc3..1ded2b84a5d 100644 --- a/hotspot/src/share/vm/c1/c1_Compilation.hpp +++ b/hotspot/src/share/vm/c1/c1_Compilation.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_COMPILATION_HPP +#define SHARE_VM_C1_C1_COMPILATION_HPP + +#include "ci/ciEnv.hpp" +#include "code/exceptionHandlerTable.hpp" +#include "memory/resourceArea.hpp" + class CompilationResourceObj; class XHandlers; class ExceptionInfo; @@ -285,3 +292,5 @@ class ExceptionInfo: public CompilationResourceObj { int pco() { return _pco; } XHandlers* exception_handlers() { return _exception_handlers; } }; + +#endif // SHARE_VM_C1_C1_COMPILATION_HPP diff --git a/hotspot/src/share/vm/c1/c1_Compiler.cpp b/hotspot/src/share/vm/c1/c1_Compiler.cpp index 958a080c80a..41b5eb572e6 100644 --- a/hotspot/src/share/vm/c1/c1_Compiler.cpp +++ b/hotspot/src/share/vm/c1/c1_Compiler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Compiler.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_Compiler.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_GraphBuilder.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "c1/c1_ValueType.hpp" +#include "compiler/compileBroker.hpp" +#include "compiler/compilerOracle.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "prims/nativeLookup.hpp" +#include "runtime/arguments.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" volatile int Compiler::_runtimes = uninitialized; diff --git a/hotspot/src/share/vm/c1/c1_Compiler.hpp b/hotspot/src/share/vm/c1/c1_Compiler.hpp index 43eb204f755..9702a15ee4b 100644 --- a/hotspot/src/share/vm/c1/c1_Compiler.hpp +++ b/hotspot/src/share/vm/c1/c1_Compiler.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_COMPILER_HPP +#define SHARE_VM_C1_C1_COMPILER_HPP + +#include "compiler/abstractCompiler.hpp" + // There is one instance of the Compiler per CompilerThread. class Compiler: public AbstractCompiler { @@ -61,3 +66,5 @@ class Compiler: public AbstractCompiler { // Print compilation timers and statistics virtual void print_timers(); }; + +#endif // SHARE_VM_C1_C1_COMPILER_HPP diff --git a/hotspot/src/share/vm/c1/c1_Defs.cpp b/hotspot/src/share/vm/c1/c1_Defs.cpp index 6b3277e7e3a..db581c9a908 100644 --- a/hotspot/src/share/vm/c1/c1_Defs.cpp +++ b/hotspot/src/share/vm/c1/c1_Defs.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,6 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Defs.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Defs.hpp" + diff --git a/hotspot/src/share/vm/c1/c1_Defs.hpp b/hotspot/src/share/vm/c1/c1_Defs.hpp index a2295a6da25..7f964c09ac6 100644 --- a/hotspot/src/share/vm/c1/c1_Defs.hpp +++ b/hotspot/src/share/vm/c1/c1_Defs.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_C1_C1_DEFS_HPP +#define SHARE_VM_C1_C1_DEFS_HPP + +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "register_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "register_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "register_zero.hpp" +#endif + // set frame size and return address offset to these values in blobs // (if the compiled frame uses ebp as link pointer on IA; otherwise, // the frame size must be fixed) @@ -30,7 +44,13 @@ enum { }; -# include "incls/_c1_Defs_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_Defs_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_Defs_sparc.hpp" +#endif + // native word offsets from memory address enum { @@ -49,3 +69,5 @@ enum { enum { float_saved_as_double = pd_float_saved_as_double }; + +#endif // SHARE_VM_C1_C1_DEFS_HPP diff --git a/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp b/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp index 223c747eefe..a84d8a15269 100644 --- a/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp +++ b/hotspot/src/share/vm/c1/c1_FpuStackSim.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,22 @@ * */ +#ifndef SHARE_VM_C1_C1_FPUSTACKSIM_HPP +#define SHARE_VM_C1_C1_FPUSTACKSIM_HPP + +#include "c1/c1_FrameMap.hpp" +#include "memory/allocation.hpp" + // Provides location for forward declaration of this class, which is // only implemented on Intel class FpuStackSim; -# include "incls/_c1_FpuStackSim_pd.hpp.incl" // platform dependent declarations +#ifdef TARGET_ARCH_x86 +# include "c1_FpuStackSim_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_FpuStackSim_sparc.hpp" +#endif + + +#endif // SHARE_VM_C1_C1_FPUSTACKSIM_HPP diff --git a/hotspot/src/share/vm/c1/c1_FrameMap.cpp b/hotspot/src/share/vm/c1/c1_FrameMap.cpp index 139572dd138..75975bb2bc3 100644 --- a/hotspot/src/share/vm/c1/c1_FrameMap.cpp +++ b/hotspot/src/share/vm/c1/c1_FrameMap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_FrameMap.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIR.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef TARGET_ARCH_x86 +# include "vmreg_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "vmreg_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "vmreg_zero.inline.hpp" +#endif diff --git a/hotspot/src/share/vm/c1/c1_FrameMap.hpp b/hotspot/src/share/vm/c1/c1_FrameMap.hpp index 4a229d6bf7e..91ee545e739 100644 --- a/hotspot/src/share/vm/c1/c1_FrameMap.hpp +++ b/hotspot/src/share/vm/c1/c1_FrameMap.hpp @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_C1_C1_FRAMEMAP_HPP +#define SHARE_VM_C1_C1_FRAMEMAP_HPP + +#include "asm/assembler.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_LIR.hpp" +#include "code/vmreg.hpp" +#include "memory/allocation.hpp" +#include "runtime/frame.hpp" +#include "runtime/synchronizer.hpp" +#include "utilities/globalDefinitions.hpp" + class ciMethod; class CallingConvention; class BasicTypeArray; @@ -70,7 +82,13 @@ class FrameMap : public CompilationResourceObj { spill_slot_size_in_bytes = 4 }; -# include "incls/_c1_FrameMap_pd.hpp.incl" // platform dependent declarations +#ifdef TARGET_ARCH_x86 +# include "c1_FrameMap_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_FrameMap_sparc.hpp" +#endif + friend class LIR_OprDesc; @@ -266,3 +284,5 @@ class CallingConvention: public ResourceObj { } #endif // PRODUCT }; + +#endif // SHARE_VM_C1_C1_FRAMEMAP_HPP diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index d41930644a0..81239201cb9 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_GraphBuilder.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_GraphBuilder.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "ci/ciField.hpp" +#include "ci/ciKlass.hpp" +#include "interpreter/bytecode.hpp" +#include "runtime/sharedRuntime.hpp" +#include "utilities/bitMap.inline.hpp" class BlockListBuilder VALUE_OBJ_CLASS_SPEC { private: diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp index 26c1b96a0f7..b41d94721ac 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_C1_C1_GRAPHBUILDER_HPP +#define SHARE_VM_C1_C1_GRAPHBUILDER_HPP + +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_ValueMap.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciStreams.hpp" + class MemoryBuffer; class GraphBuilder VALUE_OBJ_CLASS_SPEC { @@ -378,3 +388,5 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC { BlockBegin* start() const { return _start; } }; + +#endif // SHARE_VM_C1_C1_GRAPHBUILDER_HPP diff --git a/hotspot/src/share/vm/c1/c1_IR.cpp b/hotspot/src/share/vm/c1/c1_IR.cpp index 8bdc076af53..662b9ed0601 100644 --- a/hotspot/src/share/vm/c1/c1_IR.cpp +++ b/hotspot/src/share/vm/c1/c1_IR.cpp @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_IR.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_GraphBuilder.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_Optimizer.hpp" +#include "utilities/bitMap.inline.hpp" // Implementation of XHandlers diff --git a/hotspot/src/share/vm/c1/c1_IR.hpp b/hotspot/src/share/vm/c1/c1_IR.hpp index 35204c21f8e..217774f575f 100644 --- a/hotspot/src/share/vm/c1/c1_IR.hpp +++ b/hotspot/src/share/vm/c1/c1_IR.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_C1_C1_IR_HPP +#define SHARE_VM_C1_C1_IR_HPP + +#include "c1/c1_Instruction.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciStreams.hpp" +#include "memory/allocation.hpp" + // An XHandler is a C1 internal description for an exception handler class XHandler: public CompilationResourceObj { @@ -337,3 +346,5 @@ class SubstitutionResolver: public BlockClosure, ValueVisitor { virtual void block_do(BlockBegin* block); }; + +#endif // SHARE_VM_C1_C1_IR_HPP diff --git a/hotspot/src/share/vm/c1/c1_Instruction.cpp b/hotspot/src/share/vm/c1/c1_Instruction.cpp index 50553ec1fbb..7f578cb054f 100644 --- a/hotspot/src/share/vm/c1/c1_Instruction.cpp +++ b/hotspot/src/share/vm/c1/c1_Instruction.cpp @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Instruction.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" // Implementation of Instruction diff --git a/hotspot/src/share/vm/c1/c1_Instruction.hpp b/hotspot/src/share/vm/c1/c1_Instruction.hpp index 5c42ee883b9..43e8f87e71f 100644 --- a/hotspot/src/share/vm/c1/c1_Instruction.hpp +++ b/hotspot/src/share/vm/c1/c1_Instruction.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_C1_C1_INSTRUCTION_HPP +#define SHARE_VM_C1_C1_INSTRUCTION_HPP + +#include "c1/c1_Compilation.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_ValueType.hpp" +#include "ci/ciField.hpp" + // Predefined classes class ciField; class ValueStack; @@ -2303,3 +2311,5 @@ inline BlockBegin* BlockBegin::sux_at(int i) const { assert(_end == inline void BlockBegin::add_successor(BlockBegin* sux) { assert(_end == NULL, "Would create mismatch with successors of BlockEnd"); _successors.append(sux); } #undef ASSERT_VALUES + +#endif // SHARE_VM_C1_C1_INSTRUCTION_HPP diff --git a/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp b/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp index c88a9a60a8c..1b9930cb215 100644 --- a/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp +++ b/hotspot/src/share/vm/c1/c1_InstructionPrinter.cpp @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_InstructionPrinter.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciObject.hpp" #ifndef PRODUCT diff --git a/hotspot/src/share/vm/c1/c1_InstructionPrinter.hpp b/hotspot/src/share/vm/c1/c1_InstructionPrinter.hpp index 340c16237b5..3f3921e31ae 100644 --- a/hotspot/src/share/vm/c1/c1_InstructionPrinter.hpp +++ b/hotspot/src/share/vm/c1/c1_InstructionPrinter.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP +#define SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP + +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_Runtime1.hpp" + #ifndef PRODUCT class InstructionPrinter: public InstructionVisitor { private: @@ -126,3 +133,5 @@ class InstructionPrinter: public InstructionVisitor { virtual void do_ProfileInvoke (ProfileInvoke* x); }; #endif // PRODUCT + +#endif // SHARE_VM_C1_C1_INSTRUCTIONPRINTER_HPP diff --git a/hotspot/src/share/vm/c1/c1_LIR.cpp b/hotspot/src/share/vm/c1/c1_LIR.cpp index 62a3a81c94d..e26a176d859 100644 --- a/hotspot/src/share/vm/c1/c1_LIR.cpp +++ b/hotspot/src/share/vm/c1/c1_LIR.cpp @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIR.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciInstance.hpp" +#include "runtime/sharedRuntime.hpp" Register LIR_OprDesc::as_register() const { return FrameMap::cpu_rnr2reg(cpu_regnr()); diff --git a/hotspot/src/share/vm/c1/c1_LIR.hpp b/hotspot/src/share/vm/c1/c1_LIR.hpp index b6076e8421b..2b8fb7110c5 100644 --- a/hotspot/src/share/vm/c1/c1_LIR.hpp +++ b/hotspot/src/share/vm/c1/c1_LIR.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_LIR_HPP +#define SHARE_VM_C1_C1_LIR_HPP + +#include "c1/c1_ValueType.hpp" + class BlockBegin; class BlockList; class LIR_Assembler; @@ -2282,3 +2287,5 @@ class LIR_OpVisitState: public StackObj { inline LIR_Opr LIR_OprDesc::illegalOpr() { return LIR_OprFact::illegalOpr; }; + +#endif // SHARE_VM_C1_C1_LIR_HPP diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp index 95127d8abae..153ff3f86b0 100644 --- a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp @@ -22,8 +22,26 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRAssembler.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciInstance.hpp" +#ifdef TARGET_ARCH_x86 +# include "nativeInst_x86.hpp" +# include "vmreg_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "nativeInst_sparc.hpp" +# include "vmreg_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "nativeInst_zero.hpp" +# include "vmreg_zero.inline.hpp" +#endif void LIR_Assembler::patching_epilog(PatchingStub* patch, LIR_PatchCode patch_code, Register obj, CodeEmitInfo* info) { diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp index a195cd135bf..5ddc52c522e 100644 --- a/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_C1_C1_LIRASSEMBLER_HPP +#define SHARE_VM_C1_C1_LIRASSEMBLER_HPP + +#include "c1/c1_CodeStubs.hpp" +#include "ci/ciMethodData.hpp" +#include "oops/methodDataOop.hpp" +#include "utilities/top.hpp" + class Compilation; class ScopeValue; class BarrierSet; @@ -236,5 +244,13 @@ class LIR_Assembler: public CompilationResourceObj { void verify_oop_map(CodeEmitInfo* info); - #include "incls/_c1_LIRAssembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_LIRAssembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_LIRAssembler_sparc.hpp" +#endif + }; + +#endif // SHARE_VM_C1_C1_LIRASSEMBLER_HPP diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index 332f193e28e..41bd2c5dd9f 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -22,8 +22,22 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_LIRGenerator.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_ValueStack.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciInstance.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/bitMap.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/heapRegion.hpp" +#endif #ifdef ASSERT #define __ gen()->lir(__FILE__, __LINE__)-> diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp index f1c53941aaf..96b6b1c1995 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_C1_C1_LIRGENERATOR_HPP +#define SHARE_VM_C1_C1_LIRGENERATOR_HPP + +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIR.hpp" +#include "ci/ciMethodData.hpp" +#include "utilities/sizes.hpp" + // The classes responsible for code emission and register allocation @@ -596,3 +604,5 @@ class LIRItem: public CompilationResourceObj { jdouble get_jdouble_constant() const; jint get_address_constant() const; }; + +#endif // SHARE_VM_C1_C1_LIRGENERATOR_HPP diff --git a/hotspot/src/share/vm/c1/c1_LinearScan.cpp b/hotspot/src/share/vm/c1/c1_LinearScan.cpp index 166c9fd844b..c77b3d19cc5 100644 --- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp +++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp @@ -22,8 +22,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_LinearScan.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_CFGPrinter.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_Compilation.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_LIRGenerator.hpp" +#include "c1/c1_LinearScan.hpp" +#include "c1/c1_ValueStack.hpp" +#include "utilities/bitMap.inline.hpp" +#ifdef TARGET_ARCH_x86 +# include "vmreg_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "vmreg_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "vmreg_zero.inline.hpp" +#endif #ifndef PRODUCT diff --git a/hotspot/src/share/vm/c1/c1_LinearScan.hpp b/hotspot/src/share/vm/c1/c1_LinearScan.hpp index a161c679991..97f4043c18a 100644 --- a/hotspot/src/share/vm/c1/c1_LinearScan.hpp +++ b/hotspot/src/share/vm/c1/c1_LinearScan.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_C1_C1_LINEARSCAN_HPP +#define SHARE_VM_C1_C1_LINEARSCAN_HPP + +#include "c1/c1_FpuStackSim.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "c1/c1_LIR.hpp" +#include "c1/c1_LIRGenerator.hpp" + class DebugInfoCache; class FpuStackAllocator; class IRScopeDebugInfo; @@ -955,4 +965,12 @@ class LinearScanTimers : public StackObj { // Pick up platform-dependent implementation details -# include "incls/_c1_LinearScan_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_LinearScan_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_LinearScan_sparc.hpp" +#endif + + +#endif // SHARE_VM_C1_C1_LINEARSCAN_HPP diff --git a/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp b/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp index d0a93795c92..41ee336343e 100644 --- a/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp +++ b/hotspot/src/share/vm/c1/c1_MacroAssembler.hpp @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_C1_C1_MACROASSEMBLER_HPP +#define SHARE_VM_C1_C1_MACROASSEMBLER_HPP + +#include "asm/assembler.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif + class CodeEmitInfo; class C1_MacroAssembler: public MacroAssembler { @@ -41,7 +55,13 @@ class C1_MacroAssembler: public MacroAssembler { void verify_stack_oop(int offset) PRODUCT_RETURN; void verify_not_null_oop(Register r) PRODUCT_RETURN; -#include "incls/_c1_MacroAssembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "c1_MacroAssembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_MacroAssembler_sparc.hpp" +#endif + }; @@ -80,3 +100,5 @@ class StubAssembler: public C1_MacroAssembler { int call_RT(Register oop_result1, Register oop_result2, address entry, Register arg1, Register arg2); int call_RT(Register oop_result1, Register oop_result2, address entry, Register arg1, Register arg2, Register arg3); }; + +#endif // SHARE_VM_C1_C1_MACROASSEMBLER_HPP diff --git a/hotspot/src/share/vm/c1/c1_Optimizer.cpp b/hotspot/src/share/vm/c1/c1_Optimizer.cpp index 12b8a4748fc..b4da85cc4ff 100644 --- a/hotspot/src/share/vm/c1/c1_Optimizer.cpp +++ b/hotspot/src/share/vm/c1/c1_Optimizer.cpp @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Optimizer.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_Optimizer.hpp" +#include "c1/c1_ValueMap.hpp" +#include "c1/c1_ValueSet.hpp" +#include "c1/c1_ValueStack.hpp" +#include "utilities/bitMap.inline.hpp" define_array(ValueSetArray, ValueSet*); define_stack(ValueSetList, ValueSetArray); diff --git a/hotspot/src/share/vm/c1/c1_Optimizer.hpp b/hotspot/src/share/vm/c1/c1_Optimizer.hpp index 49e7aa598cd..f984158102e 100644 --- a/hotspot/src/share/vm/c1/c1_Optimizer.hpp +++ b/hotspot/src/share/vm/c1/c1_Optimizer.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_OPTIMIZER_HPP +#define SHARE_VM_C1_C1_OPTIMIZER_HPP + +#include "c1/c1_IR.hpp" +#include "c1/c1_Instruction.hpp" +#include "memory/allocation.hpp" + class Optimizer VALUE_OBJ_CLASS_SPEC { private: IR* _ir; @@ -35,3 +42,5 @@ class Optimizer VALUE_OBJ_CLASS_SPEC { void eliminate_blocks(); void eliminate_null_checks(); }; + +#endif // SHARE_VM_C1_C1_OPTIMIZER_HPP diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp index c8b3a7d83a6..fe754ab78fc 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp @@ -22,8 +22,41 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_Runtime1.cpp.incl" +#include "precompiled.hpp" +#include "asm/codeBuffer.hpp" +#include "c1/c1_CodeStubs.hpp" +#include "c1/c1_Defs.hpp" +#include "c1/c1_FrameMap.hpp" +#include "c1/c1_LIRAssembler.hpp" +#include "c1/c1_MacroAssembler.hpp" +#include "c1/c1_Runtime1.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeBlob.hpp" +#include "code/compiledIC.hpp" +#include "code/pcDesc.hpp" +#include "code/scopeDesc.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/disassembler.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/barrierSet.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/compilationPolicy.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/vframe.hpp" +#include "runtime/vframeArray.hpp" +#include "utilities/copy.hpp" +#include "utilities/events.hpp" // Implementation of StubAssembler diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.hpp b/hotspot/src/share/vm/c1/c1_Runtime1.hpp index 38571439c9b..c6ef0d516b8 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.hpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_C1_C1_RUNTIME1_HPP +#define SHARE_VM_C1_C1_RUNTIME1_HPP + +#include "c1/c1_FrameMap.hpp" +#include "code/stubs.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/allocation.hpp" +#include "runtime/deoptimization.hpp" + class StubAssembler; // The Runtime1 holds all assembly stubs and VM @@ -174,3 +183,5 @@ class Runtime1: public AllStatic { static void print_statistics() PRODUCT_RETURN; }; + +#endif // SHARE_VM_C1_C1_RUNTIME1_HPP diff --git a/hotspot/src/share/vm/c1/c1_ValueMap.cpp b/hotspot/src/share/vm/c1/c1_ValueMap.cpp index 90530bcd1de..aa2bf5af549 100644 --- a/hotspot/src/share/vm/c1/c1_ValueMap.cpp +++ b/hotspot/src/share/vm/c1/c1_ValueMap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_ValueMap.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_Canonicalizer.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_ValueMap.hpp" +#include "utilities/bitMap.inline.hpp" #ifndef PRODUCT diff --git a/hotspot/src/share/vm/c1/c1_ValueMap.hpp b/hotspot/src/share/vm/c1/c1_ValueMap.hpp index 0bf25f031bb..9359abda10a 100644 --- a/hotspot/src/share/vm/c1/c1_ValueMap.hpp +++ b/hotspot/src/share/vm/c1/c1_ValueMap.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUEMAP_HPP +#define SHARE_VM_C1_C1_VALUEMAP_HPP + +#include "c1/c1_Instruction.hpp" +#include "c1/c1_ValueSet.hpp" +#include "memory/allocation.hpp" + class ValueMapEntry: public CompilationResourceObj { private: intx _hash; @@ -226,3 +233,5 @@ class GlobalValueNumbering: public ValueNumberingVisitor { // main entry point that performs global value numbering GlobalValueNumbering(IR* ir); }; + +#endif // SHARE_VM_C1_C1_VALUEMAP_HPP diff --git a/hotspot/src/share/vm/c1/c1_ValueSet.cpp b/hotspot/src/share/vm/c1/c1_ValueSet.cpp index 7309601645e..6cb1c31d0a7 100644 --- a/hotspot/src/share/vm/c1/c1_ValueSet.cpp +++ b/hotspot/src/share/vm/c1/c1_ValueSet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,6 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_ValueSet.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_ValueSet.hpp" + diff --git a/hotspot/src/share/vm/c1/c1_ValueSet.hpp b/hotspot/src/share/vm/c1/c1_ValueSet.hpp index 48f27fa655c..2e8dd095d11 100644 --- a/hotspot/src/share/vm/c1/c1_ValueSet.hpp +++ b/hotspot/src/share/vm/c1/c1_ValueSet.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUESET_HPP +#define SHARE_VM_C1_C1_VALUESET_HPP + +#include "c1/c1_Instruction.hpp" +#include "memory/allocation.hpp" +#include "utilities/bitMap.inline.hpp" + // A ValueSet is a simple abstraction on top of a BitMap representing // a set of Instructions. Currently it assumes that the number of // instructions is fixed during its lifetime; should make it @@ -93,3 +100,5 @@ inline void ValueSet::set_from(ValueSet* other) { inline bool ValueSet::equals(ValueSet* other) { return _map.is_same(other->_map); } + +#endif // SHARE_VM_C1_C1_VALUESET_HPP diff --git a/hotspot/src/share/vm/c1/c1_ValueStack.cpp b/hotspot/src/share/vm/c1/c1_ValueStack.cpp index 40dfadbff61..1ffad1de836 100644 --- a/hotspot/src/share/vm/c1/c1_ValueStack.cpp +++ b/hotspot/src/share/vm/c1/c1_ValueStack.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_c1_ValueStack.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_IR.hpp" +#include "c1/c1_InstructionPrinter.hpp" +#include "c1/c1_ValueStack.hpp" // Implementation of ValueStack diff --git a/hotspot/src/share/vm/c1/c1_ValueStack.hpp b/hotspot/src/share/vm/c1/c1_ValueStack.hpp index 0108131fd13..a775eba7e20 100644 --- a/hotspot/src/share/vm/c1/c1_ValueStack.hpp +++ b/hotspot/src/share/vm/c1/c1_ValueStack.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUESTACK_HPP +#define SHARE_VM_C1_C1_VALUESTACK_HPP + +#include "c1/c1_Instruction.hpp" + class ValueStack: public CompilationResourceObj { public: enum Kind { @@ -322,3 +327,5 @@ class ValueStack: public CompilationResourceObj { } \ } \ } + +#endif // SHARE_VM_C1_C1_VALUESTACK_HPP diff --git a/hotspot/src/share/vm/c1/c1_ValueType.cpp b/hotspot/src/share/vm/c1/c1_ValueType.cpp index 24a2083d07c..c0c2ca6631d 100644 --- a/hotspot/src/share/vm/c1/c1_ValueType.cpp +++ b/hotspot/src/share/vm/c1/c1_ValueType.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_ValueType.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_ValueType.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciNullObject.hpp" // predefined types diff --git a/hotspot/src/share/vm/c1/c1_ValueType.hpp b/hotspot/src/share/vm/c1/c1_ValueType.hpp index 3098114cf95..d82eae607d3 100644 --- a/hotspot/src/share/vm/c1/c1_ValueType.hpp +++ b/hotspot/src/share/vm/c1/c1_ValueType.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_C1_C1_VALUETYPE_HPP +#define SHARE_VM_C1_C1_VALUETYPE_HPP + +#include "c1/c1_Compilation.hpp" +#include "ci/ciConstant.hpp" + // type hierarchy class ValueType; class VoidType; @@ -419,3 +425,5 @@ ValueType* as_ValueType(ciConstant value); BasicType as_BasicType(ValueType* type); inline ValueType* as_ValueType(ciType* type) { return as_ValueType(type->basic_type()); } + +#endif // SHARE_VM_C1_C1_VALUETYPE_HPP diff --git a/hotspot/src/share/vm/c1/c1_globals.cpp b/hotspot/src/share/vm/c1/c1_globals.cpp index 20b5746984e..a611f033ee6 100644 --- a/hotspot/src/share/vm/c1/c1_globals.cpp +++ b/hotspot/src/share/vm/c1/c1_globals.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,7 +22,7 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_c1_globals.cpp.incl" +#include "precompiled.hpp" +#include "c1/c1_globals.hpp" C1_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, MATERIALIZE_NOTPRODUCT_FLAG) diff --git a/hotspot/src/share/vm/c1/c1_globals.hpp b/hotspot/src/share/vm/c1/c1_globals.hpp index 52ff1593317..9b4db1c0f9f 100644 --- a/hotspot/src/share/vm/c1/c1_globals.hpp +++ b/hotspot/src/share/vm/c1/c1_globals.hpp @@ -22,6 +22,26 @@ * */ +#ifndef SHARE_VM_C1_C1_GLOBALS_HPP +#define SHARE_VM_C1_C1_GLOBALS_HPP + +#include "runtime/globals.hpp" +#ifdef TARGET_ARCH_x86 +# include "c1_globals_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "c1_globals_sparc.hpp" +#endif +#ifdef TARGET_OS_FAMILY_linux +# include "c1_globals_linux.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "c1_globals_solaris.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "c1_globals_windows.hpp" +#endif + // // Defines all global flags used by the client compiler. // @@ -303,6 +323,7 @@ // Read default values for c1 globals -// #include "incls/_c1_globals_pd.hpp.incl" C1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_NOTPRODUCT_FLAG) + +#endif // SHARE_VM_C1_C1_GLOBALS_HPP diff --git a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp index 143101dae68..acf3bfaad4c 100644 --- a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp +++ b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,9 +22,15 @@ * */ +#include "precompiled.hpp" +#include "ci/bcEscapeAnalyzer.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciStreams.hpp" +#include "interpreter/bytecode.hpp" +#include "utilities/bitMap.inline.hpp" -#include "incls/_precompiled.incl" -#include "incls/_bcEscapeAnalyzer.cpp.incl" #ifndef PRODUCT diff --git a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp index 5e61112c7ab..a16213d4260 100644 --- a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp +++ b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_CI_BCESCAPEANALYZER_HPP +#define SHARE_VM_CI_BCESCAPEANALYZER_HPP + +#ifdef COMPILER2 +#include "ci/ciMethod.hpp" +#include "ci/ciMethodData.hpp" +#include "code/dependencies.hpp" +#include "libadt/vectset.hpp" +#include "memory/allocation.hpp" +#include "utilities/growableArray.hpp" +#endif + // This class implements a fast, conservative analysis of effect of methods // on the escape state of their arguments. The analysis is at the bytecode // level. @@ -147,3 +159,5 @@ class BCEscapeAnalyzer : public ResourceObj { void dump(); #endif }; + +#endif // SHARE_VM_CI_BCESCAPEANALYZER_HPP diff --git a/hotspot/src/share/vm/ci/ciArray.cpp b/hotspot/src/share/vm/ci/ciArray.cpp index 76ada073c42..584b1aeb50f 100644 --- a/hotspot/src/share/vm/ci/ciArray.cpp +++ b/hotspot/src/share/vm/ci/ciArray.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciArray.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciArray.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciUtilities.hpp" // ciArray // diff --git a/hotspot/src/share/vm/ci/ciArray.hpp b/hotspot/src/share/vm/ci/ciArray.hpp index afa582817b0..440e407a510 100644 --- a/hotspot/src/share/vm/ci/ciArray.hpp +++ b/hotspot/src/share/vm/ci/ciArray.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIARRAY_HPP +#define SHARE_VM_CI_CIARRAY_HPP + +#include "ci/ciObject.hpp" +#include "oops/arrayOop.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/typeArrayOop.hpp" + // ciArray // // This class represents an arrayOop in the HotSpot virtual @@ -50,3 +58,5 @@ public: bool is_array() { return true; } bool is_java_object() { return true; } }; + +#endif // SHARE_VM_CI_CIARRAY_HPP diff --git a/hotspot/src/share/vm/ci/ciArrayKlass.cpp b/hotspot/src/share/vm/ci/ciArrayKlass.cpp index 15a2a290259..ef2c7a47354 100644 --- a/hotspot/src/share/vm/ci/ciArrayKlass.cpp +++ b/hotspot/src/share/vm/ci/ciArrayKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciArrayKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciUtilities.hpp" // ciArrayKlass // diff --git a/hotspot/src/share/vm/ci/ciArrayKlass.hpp b/hotspot/src/share/vm/ci/ciArrayKlass.hpp index 5f9478517a4..98b005156a5 100644 --- a/hotspot/src/share/vm/ci/ciArrayKlass.hpp +++ b/hotspot/src/share/vm/ci/ciArrayKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIARRAYKLASS_HPP +#define SHARE_VM_CI_CIARRAYKLASS_HPP + +#include "ci/ciKlass.hpp" + // ciArrayKlass // // This class, and its subclasses represent klassOops in the @@ -57,3 +62,5 @@ public: static ciArrayKlass* make(ciType* element_type); }; + +#endif // SHARE_VM_CI_CIARRAYKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciArrayKlassKlass.hpp b/hotspot/src/share/vm/ci/ciArrayKlassKlass.hpp index 0e5ffb94501..1c5c73408a8 100644 --- a/hotspot/src/share/vm/ci/ciArrayKlassKlass.hpp +++ b/hotspot/src/share/vm/ci/ciArrayKlassKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIARRAYKLASSKLASS_HPP +#define SHARE_VM_CI_CIARRAYKLASSKLASS_HPP + +#include "ci/ciKlassKlass.hpp" + // ciArrayKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -41,3 +46,5 @@ public: // What kind of ciObject is this? bool is_array_klass_klass() { return true; } }; + +#endif // SHARE_VM_CI_CIARRAYKLASSKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciCPCache.cpp b/hotspot/src/share/vm/ci/ciCPCache.cpp index 84357432012..0396c2a8784 100644 --- a/hotspot/src/share/vm/ci/ciCPCache.cpp +++ b/hotspot/src/share/vm/ci/ciCPCache.cpp @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciCPCache.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/cpCacheOop.hpp" // ciCPCache diff --git a/hotspot/src/share/vm/ci/ciCPCache.hpp b/hotspot/src/share/vm/ci/ciCPCache.hpp index 89579ae482d..165ce3de637 100644 --- a/hotspot/src/share/vm/ci/ciCPCache.hpp +++ b/hotspot/src/share/vm/ci/ciCPCache.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CICPCACHE_HPP +#define SHARE_VM_CI_CICPCACHE_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObject.hpp" +#include "oops/cpCacheOop.hpp" + // ciCPCache // // This class represents a constant pool cache. @@ -57,3 +64,5 @@ public: void print(); }; + +#endif // SHARE_VM_CI_CICPCACHE_HPP diff --git a/hotspot/src/share/vm/ci/ciCallProfile.hpp b/hotspot/src/share/vm/ci/ciCallProfile.hpp index 613da7e06f2..24062d2b584 100644 --- a/hotspot/src/share/vm/ci/ciCallProfile.hpp +++ b/hotspot/src/share/vm/ci/ciCallProfile.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CICALLPROFILE_HPP +#define SHARE_VM_CI_CICALLPROFILE_HPP + +#include "ci/ciClassList.hpp" + // ciCallProfile // // This class is used to determine the frequently called method @@ -73,3 +78,5 @@ public: return _receiver[i]; } }; + +#endif // SHARE_VM_CI_CICALLPROFILE_HPP diff --git a/hotspot/src/share/vm/ci/ciCallSite.cpp b/hotspot/src/share/vm/ci/ciCallSite.cpp index f7755b0124d..849d8d58563 100644 --- a/hotspot/src/share/vm/ci/ciCallSite.cpp +++ b/hotspot/src/share/vm/ci/ciCallSite.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciCallSite.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCallSite.hpp" +#include "ci/ciUtilities.hpp" // ciCallSite diff --git a/hotspot/src/share/vm/ci/ciCallSite.hpp b/hotspot/src/share/vm/ci/ciCallSite.hpp index 27c40c1a942..6a92e686120 100644 --- a/hotspot/src/share/vm/ci/ciCallSite.hpp +++ b/hotspot/src/share/vm/ci/ciCallSite.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CICALLSITE_HPP +#define SHARE_VM_CI_CICALLSITE_HPP + +#include "ci/ciInstance.hpp" + // ciCallSite // // The class represents a java.dyn.CallSite object. @@ -37,3 +42,5 @@ public: void print(); }; + +#endif // SHARE_VM_CI_CICALLSITE_HPP diff --git a/hotspot/src/share/vm/ci/ciClassList.hpp b/hotspot/src/share/vm/ci/ciClassList.hpp index 0354968c6a9..d9c3f75b2ba 100644 --- a/hotspot/src/share/vm/ci/ciClassList.hpp +++ b/hotspot/src/share/vm/ci/ciClassList.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_CI_CICLASSLIST_HPP +#define SHARE_VM_CI_CICLASSLIST_HPP + class ciEnv; class ciObjectFactory; class ciConstantPoolCache; @@ -118,3 +121,5 @@ friend class ciInstanceKlassKlass; \ friend class ciArrayKlassKlass; \ friend class ciObjArrayKlassKlass; \ friend class ciTypeArrayKlassKlass; + +#endif // SHARE_VM_CI_CICLASSLIST_HPP diff --git a/hotspot/src/share/vm/ci/ciConstant.cpp b/hotspot/src/share/vm/ci/ciConstant.cpp index 3b828b75ff2..4955a088ffa 100644 --- a/hotspot/src/share/vm/ci/ciConstant.cpp +++ b/hotspot/src/share/vm/ci/ciConstant.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciConstant.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" // ciConstant // diff --git a/hotspot/src/share/vm/ci/ciConstant.hpp b/hotspot/src/share/vm/ci/ciConstant.hpp index 1bc22badcd2..f217faa24b0 100644 --- a/hotspot/src/share/vm/ci/ciConstant.hpp +++ b/hotspot/src/share/vm/ci/ciConstant.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CICONSTANT_HPP +#define SHARE_VM_CI_CICONSTANT_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciNullObject.hpp" + // ciConstant // // This class represents a constant value. @@ -110,3 +116,5 @@ public: // Debugging output void print(); }; + +#endif // SHARE_VM_CI_CICONSTANT_HPP diff --git a/hotspot/src/share/vm/ci/ciConstantPoolCache.cpp b/hotspot/src/share/vm/ci/ciConstantPoolCache.cpp index f179bfa0c84..a277e421a32 100644 --- a/hotspot/src/share/vm/ci/ciConstantPoolCache.cpp +++ b/hotspot/src/share/vm/ci/ciConstantPoolCache.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciConstantPoolCache.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstantPoolCache.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" // ciConstantPoolCache // diff --git a/hotspot/src/share/vm/ci/ciConstantPoolCache.hpp b/hotspot/src/share/vm/ci/ciConstantPoolCache.hpp index ed4e4f155ef..baa33eb1fe8 100644 --- a/hotspot/src/share/vm/ci/ciConstantPoolCache.hpp +++ b/hotspot/src/share/vm/ci/ciConstantPoolCache.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP +#define SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP + +#include "memory/resourceArea.hpp" +#include "utilities/growableArray.hpp" + // ciConstantPoolCache // // The class caches indexed constant pool lookups. @@ -45,3 +51,5 @@ public: void print(); }; + +#endif // SHARE_VM_CI_CICONSTANTPOOLCACHE_HPP diff --git a/hotspot/src/share/vm/ci/ciEnv.cpp b/hotspot/src/share/vm/ci/ciEnv.cpp index 51682101382..eab8de7670d 100644 --- a/hotspot/src/share/vm/ci/ciEnv.cpp +++ b/hotspot/src/share/vm/ci/ciEnv.cpp @@ -22,8 +22,44 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciEnv.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciEnv.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/scopeDesc.hpp" +#include "compiler/compileBroker.hpp" +#include "compiler/compileLog.hpp" +#include "compiler/compilerOracle.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/oopFactory.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/init.hpp" +#include "runtime/reflection.hpp" +#include "runtime/sharedRuntime.hpp" +#include "utilities/dtrace.hpp" +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif +#ifdef COMPILER2 +#include "opto/runtime.hpp" +#endif // ciEnv // diff --git a/hotspot/src/share/vm/ci/ciEnv.hpp b/hotspot/src/share/vm/ci/ciEnv.hpp index 045dc6f60f7..98431e57a8b 100644 --- a/hotspot/src/share/vm/ci/ciEnv.hpp +++ b/hotspot/src/share/vm/ci/ciEnv.hpp @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_CI_CIENV_HPP +#define SHARE_VM_CI_CIENV_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObjectFactory.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/debugInfoRec.hpp" +#include "code/dependencies.hpp" +#include "code/exceptionHandlerTable.hpp" +#include "compiler/oopMap.hpp" +#include "runtime/thread.hpp" + class CompileTask; // ciEnv @@ -384,3 +396,5 @@ public: void record_method_not_compilable(const char* reason, bool all_tiers = true); void record_out_of_memory_failure(); }; + +#endif // SHARE_VM_CI_CIENV_HPP diff --git a/hotspot/src/share/vm/ci/ciExceptionHandler.cpp b/hotspot/src/share/vm/ci/ciExceptionHandler.cpp index 8e0966df7a4..16ae6a7498c 100644 --- a/hotspot/src/share/vm/ci/ciExceptionHandler.cpp +++ b/hotspot/src/share/vm/ci/ciExceptionHandler.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciExceptionHandler.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciUtilities.hpp" // ciExceptionHandler // diff --git a/hotspot/src/share/vm/ci/ciExceptionHandler.hpp b/hotspot/src/share/vm/ci/ciExceptionHandler.hpp index c70557322dc..aae74e7c3d7 100644 --- a/hotspot/src/share/vm/ci/ciExceptionHandler.hpp +++ b/hotspot/src/share/vm/ci/ciExceptionHandler.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP +#define SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciInstanceKlass.hpp" + // ciExceptionHandler // // This class represents an exception handler for a method. @@ -73,3 +79,5 @@ public: void print(); }; + +#endif // SHARE_VM_CI_CIEXCEPTIONHANDLER_HPP diff --git a/hotspot/src/share/vm/ci/ciField.cpp b/hotspot/src/share/vm/ci/ciField.cpp index 9851d9e2576..8045b423871 100644 --- a/hotspot/src/share/vm/ci/ciField.cpp +++ b/hotspot/src/share/vm/ci/ciField.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciField.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/universe.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "runtime/fieldDescriptor.hpp" // ciField // diff --git a/hotspot/src/share/vm/ci/ciField.hpp b/hotspot/src/share/vm/ci/ciField.hpp index 0df81b508e4..6406ddeac86 100644 --- a/hotspot/src/share/vm/ci/ciField.hpp +++ b/hotspot/src/share/vm/ci/ciField.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIFIELD_HPP +#define SHARE_VM_CI_CIFIELD_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciFlags.hpp" +#include "ci/ciInstance.hpp" + // ciField // // This class represents the result of a field lookup in the VM. @@ -174,3 +182,5 @@ public: void print(); void print_name_on(outputStream* st); }; + +#endif // SHARE_VM_CI_CIFIELD_HPP diff --git a/hotspot/src/share/vm/ci/ciFlags.cpp b/hotspot/src/share/vm/ci/ciFlags.cpp index 5a313ae12a5..bbbb69e1538 100644 --- a/hotspot/src/share/vm/ci/ciFlags.cpp +++ b/hotspot/src/share/vm/ci/ciFlags.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciFlags.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciFlags.hpp" // ciFlags // diff --git a/hotspot/src/share/vm/ci/ciFlags.hpp b/hotspot/src/share/vm/ci/ciFlags.hpp index 260e4ee741c..6dc50d25a60 100644 --- a/hotspot/src/share/vm/ci/ciFlags.hpp +++ b/hotspot/src/share/vm/ci/ciFlags.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIFLAGS_HPP +#define SHARE_VM_CI_CIFLAGS_HPP + +#include "ci/ciClassList.hpp" +#include "memory/allocation.hpp" +#include "prims/jvm.h" +#include "utilities/accessFlags.hpp" + // ciFlags // // This class represents klass or method flags. @@ -59,3 +67,5 @@ public: void print_member_flags(outputStream* st = tty); void print(outputStream* st = tty); }; + +#endif // SHARE_VM_CI_CIFLAGS_HPP diff --git a/hotspot/src/share/vm/ci/ciInstance.cpp b/hotspot/src/share/vm/ci/ciInstance.cpp index 19e757e467d..ae7b6d20e2c 100644 --- a/hotspot/src/share/vm/ci/ciInstance.cpp +++ b/hotspot/src/share/vm/ci/ciInstance.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciInstance.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" // ciInstance // diff --git a/hotspot/src/share/vm/ci/ciInstance.hpp b/hotspot/src/share/vm/ci/ciInstance.hpp index aed32773b27..1579402d9e6 100644 --- a/hotspot/src/share/vm/ci/ciInstance.hpp +++ b/hotspot/src/share/vm/ci/ciInstance.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIINSTANCE_HPP +#define SHARE_VM_CI_CIINSTANCE_HPP + +#include "ci/ciObject.hpp" +#include "oops/instanceOop.hpp" + // ciInstance // // This class represents an instanceOop in the HotSpot virtual @@ -59,3 +65,5 @@ public: // Constant value of a field at the specified offset. ciConstant field_value_by_offset(int field_offset); }; + +#endif // SHARE_VM_CI_CIINSTANCE_HPP diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp index e5f848bff0c..8b9eeafd0d0 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciInstanceKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciField.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldDescriptor.hpp" // ciInstanceKlass // diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.hpp b/hotspot/src/share/vm/ci/ciInstanceKlass.hpp index f81ca4f481e..05ecf87a1e2 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlass.hpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlass.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CI_CIINSTANCEKLASS_HPP +#define SHARE_VM_CI_CIINSTANCEKLASS_HPP + +#include "ci/ciConstantPoolCache.hpp" +#include "ci/ciFlags.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciInstanceKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -215,3 +224,5 @@ public: bool is_instance_klass() { return true; } bool is_java_klass() { return true; } }; + +#endif // SHARE_VM_CI_CIINSTANCEKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciInstanceKlassKlass.cpp b/hotspot/src/share/vm/ci/ciInstanceKlassKlass.cpp index 8e1d1a53478..642b1bc6dbd 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlassKlass.cpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlassKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciInstanceKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciInstanceKlassKlass // diff --git a/hotspot/src/share/vm/ci/ciInstanceKlassKlass.hpp b/hotspot/src/share/vm/ci/ciInstanceKlassKlass.hpp index 22e86cb10f5..2ca44f9273b 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlassKlass.hpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlassKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIINSTANCEKLASSKLASS_HPP +#define SHARE_VM_CI_CIINSTANCEKLASSKLASS_HPP + +#include "ci/ciKlassKlass.hpp" + // ciInstanceKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -48,3 +53,5 @@ public: // Return the distinguished ciInstanceKlassKlass instance. static ciInstanceKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CIINSTANCEKLASSKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciKlass.cpp b/hotspot/src/share/vm/ci/ciKlass.cpp index 85989616f1e..1adf63fd1e5 100644 --- a/hotspot/src/share/vm/ci/ciKlass.cpp +++ b/hotspot/src/share/vm/ci/ciKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/oop.inline.hpp" // ciKlass // diff --git a/hotspot/src/share/vm/ci/ciKlass.hpp b/hotspot/src/share/vm/ci/ciKlass.hpp index 7336f299477..a32a08eb7ef 100644 --- a/hotspot/src/share/vm/ci/ciKlass.hpp +++ b/hotspot/src/share/vm/ci/ciKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIKLASS_HPP +#define SHARE_VM_CI_CIKLASS_HPP + +#include "ci/ciType.hpp" +#include "oops/klassOop.hpp" + // ciKlass // // This class and its subclasses represent klassOops in the @@ -117,3 +123,5 @@ public: void print_name_on(outputStream* st); }; + +#endif // SHARE_VM_CI_CIKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciKlassKlass.cpp b/hotspot/src/share/vm/ci/ciKlassKlass.cpp index a9d838497d5..d1f241e9ca6 100644 --- a/hotspot/src/share/vm/ci/ciKlassKlass.cpp +++ b/hotspot/src/share/vm/ci/ciKlassKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciKlassKlass // diff --git a/hotspot/src/share/vm/ci/ciKlassKlass.hpp b/hotspot/src/share/vm/ci/ciKlassKlass.hpp index c03ee76a176..d8bf220222b 100644 --- a/hotspot/src/share/vm/ci/ciKlassKlass.hpp +++ b/hotspot/src/share/vm/ci/ciKlassKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIKLASSKLASS_HPP +#define SHARE_VM_CI_CIKLASSKLASS_HPP + +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -49,3 +55,5 @@ public: // Return the distinguished ciKlassKlass instance. static ciKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CIKLASSKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciMethod.cpp b/hotspot/src/share/vm/ci/ciMethod.cpp index 9d12b27f110..9e27c07cc07 100644 --- a/hotspot/src/share/vm/ci/ciMethod.cpp +++ b/hotspot/src/share/vm/ci/ciMethod.cpp @@ -22,8 +22,41 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethod.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCallProfile.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "compiler/abstractCompiler.hpp" +#include "compiler/compilerOracle.hpp" +#include "compiler/methodLiveness.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/linkResolver.hpp" +#include "interpreter/oopMapCache.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/generateOopMap.hpp" +#include "oops/oop.inline.hpp" +#include "prims/nativeLookup.hpp" +#include "runtime/deoptimization.hpp" +#include "utilities/bitMap.inline.hpp" +#include "utilities/xmlstream.hpp" +#ifdef COMPILER2 +#include "ci/bcEscapeAnalyzer.hpp" +#include "ci/ciTypeFlow.hpp" +#include "oops/methodOop.hpp" +#endif +#ifdef SHARK +#include "ci/ciTypeFlow.hpp" +#include "oops/methodOop.hpp" +#endif // ciMethod // diff --git a/hotspot/src/share/vm/ci/ciMethod.hpp b/hotspot/src/share/vm/ci/ciMethod.hpp index abf53ca0742..05df3ccc851 100644 --- a/hotspot/src/share/vm/ci/ciMethod.hpp +++ b/hotspot/src/share/vm/ci/ciMethod.hpp @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_CI_CIMETHOD_HPP +#define SHARE_VM_CI_CIMETHOD_HPP + +#include "ci/ciFlags.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciSignature.hpp" +#include "compiler/methodLiveness.hpp" +#include "prims/methodHandles.hpp" +#include "utilities/bitMap.hpp" + class ciMethodBlocks; class MethodLiveness; class BitMap; @@ -269,3 +280,5 @@ class ciMethod : public ciObject { return MethodHandles::decode_method(get_oop(), receiver_limit_oop, flags); } }; + +#endif // SHARE_VM_CI_CIMETHOD_HPP diff --git a/hotspot/src/share/vm/ci/ciMethodBlocks.cpp b/hotspot/src/share/vm/ci/ciMethodBlocks.cpp index 36bfa813a18..e54f94c72b4 100644 --- a/hotspot/src/share/vm/ci/ciMethodBlocks.cpp +++ b/hotspot/src/share/vm/ci/ciMethodBlocks.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodBlocks.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciStreams.hpp" +#include "interpreter/bytecode.hpp" +#include "utilities/copy.hpp" // ciMethodBlocks diff --git a/hotspot/src/share/vm/ci/ciMethodBlocks.hpp b/hotspot/src/share/vm/ci/ciMethodBlocks.hpp index a1f1ebba6a4..784c6a7266d 100644 --- a/hotspot/src/share/vm/ci/ciMethodBlocks.hpp +++ b/hotspot/src/share/vm/ci/ciMethodBlocks.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODBLOCKS_HPP +#define SHARE_VM_CI_CIMETHODBLOCKS_HPP + +#include "ci/ciMethod.hpp" +#include "memory/resourceArea.hpp" +#include "utilities/growableArray.hpp" + class ciBlock; @@ -121,3 +128,5 @@ public: void print_on(outputStream* st) const PRODUCT_RETURN; #endif }; + +#endif // SHARE_VM_CI_CIMETHODBLOCKS_HPP diff --git a/hotspot/src/share/vm/ci/ciMethodData.cpp b/hotspot/src/share/vm/ci/ciMethodData.cpp index 7bc50901d81..8456160b109 100644 --- a/hotspot/src/share/vm/ci/ciMethodData.cpp +++ b/hotspot/src/share/vm/ci/ciMethodData.cpp @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodData.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/deoptimization.hpp" +#include "utilities/copy.hpp" // ciMethodData diff --git a/hotspot/src/share/vm/ci/ciMethodData.hpp b/hotspot/src/share/vm/ci/ciMethodData.hpp index 3930e88393e..d84b2c83f17 100644 --- a/hotspot/src/share/vm/ci/ciMethodData.hpp +++ b/hotspot/src/share/vm/ci/ciMethodData.hpp @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODDATA_HPP +#define SHARE_VM_CI_CIMETHODDATA_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/oop.inline.hpp" + class ciBitData; class ciCounterData; class ciJumpData; @@ -311,3 +321,5 @@ public: void print_data_on(outputStream* st); #endif }; + +#endif // SHARE_VM_CI_CIMETHODDATA_HPP diff --git a/hotspot/src/share/vm/ci/ciMethodHandle.cpp b/hotspot/src/share/vm/ci/ciMethodHandle.cpp index 816e257557c..c8e7cf18142 100644 --- a/hotspot/src/share/vm/ci/ciMethodHandle.cpp +++ b/hotspot/src/share/vm/ci/ciMethodHandle.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodHandle.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciClassList.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciMethodHandle.hpp" +#include "ci/ciUtilities.hpp" +#include "prims/methodHandleWalk.hpp" +#include "prims/methodHandles.hpp" // ciMethodHandle diff --git a/hotspot/src/share/vm/ci/ciMethodHandle.hpp b/hotspot/src/share/vm/ci/ciMethodHandle.hpp index 2128ba0bda4..3b9ea68337d 100644 --- a/hotspot/src/share/vm/ci/ciMethodHandle.hpp +++ b/hotspot/src/share/vm/ci/ciMethodHandle.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODHANDLE_HPP +#define SHARE_VM_CI_CIMETHODHANDLE_HPP + +#include "prims/methodHandles.hpp" + // ciMethodHandle // // The class represents a java.dyn.MethodHandle object. @@ -54,3 +59,5 @@ public: return get_adapter(true); } }; + +#endif // SHARE_VM_CI_CIMETHODHANDLE_HPP diff --git a/hotspot/src/share/vm/ci/ciMethodKlass.cpp b/hotspot/src/share/vm/ci/ciMethodKlass.cpp index 5d46cdde527..b72f2ce97cd 100644 --- a/hotspot/src/share/vm/ci/ciMethodKlass.cpp +++ b/hotspot/src/share/vm/ci/ciMethodKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciMethodKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciUtilities.hpp" // ciMethodKlass // diff --git a/hotspot/src/share/vm/ci/ciMethodKlass.hpp b/hotspot/src/share/vm/ci/ciMethodKlass.hpp index 03987d045a2..691f2ba78b1 100644 --- a/hotspot/src/share/vm/ci/ciMethodKlass.hpp +++ b/hotspot/src/share/vm/ci/ciMethodKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIMETHODKLASS_HPP +#define SHARE_VM_CI_CIMETHODKLASS_HPP + +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciMethodKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -46,3 +52,5 @@ public: // Return the distinguished ciMethodKlass instance. static ciMethodKlass* make(); }; + +#endif // SHARE_VM_CI_CIMETHODKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciNullObject.cpp b/hotspot/src/share/vm/ci/ciNullObject.cpp index 7ed9cc66d0b..30e3f1e8937 100644 --- a/hotspot/src/share/vm/ci/ciNullObject.cpp +++ b/hotspot/src/share/vm/ci/ciNullObject.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciNullObject.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciNullObject.hpp" // ciNullObject // diff --git a/hotspot/src/share/vm/ci/ciNullObject.hpp b/hotspot/src/share/vm/ci/ciNullObject.hpp index 7bf5d04bf70..23879a1dfc2 100644 --- a/hotspot/src/share/vm/ci/ciNullObject.hpp +++ b/hotspot/src/share/vm/ci/ciNullObject.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CINULLOBJECT_HPP +#define SHARE_VM_CI_CINULLOBJECT_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciUtilities.hpp" + // ciNullObject // // This class represents a null reference in the VM. @@ -47,3 +54,5 @@ public: // Get the distinguished instance of this klass. static ciNullObject* make(); }; + +#endif // SHARE_VM_CI_CINULLOBJECT_HPP diff --git a/hotspot/src/share/vm/ci/ciObjArray.cpp b/hotspot/src/share/vm/ci/ciObjArray.cpp index 233848ad847..fc2b31eeb31 100644 --- a/hotspot/src/share/vm/ci/ciObjArray.cpp +++ b/hotspot/src/share/vm/ci/ciObjArray.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjArray.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArray.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/objArrayOop.hpp" // ciObjArray // diff --git a/hotspot/src/share/vm/ci/ciObjArray.hpp b/hotspot/src/share/vm/ci/ciObjArray.hpp index 1a2d2082205..6a3abc55164 100644 --- a/hotspot/src/share/vm/ci/ciObjArray.hpp +++ b/hotspot/src/share/vm/ci/ciObjArray.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CIOBJARRAY_HPP +#define SHARE_VM_CI_CIOBJARRAY_HPP + +#include "ci/ciArray.hpp" +#include "ci/ciClassList.hpp" +#include "oops/objArrayOop.hpp" + // ciObjArray // // This class represents a ObjArrayOop in the HotSpot virtual @@ -46,3 +53,5 @@ public: ciObject* obj_at(int index); }; + +#endif // SHARE_VM_CI_CIOBJARRAY_HPP diff --git a/hotspot/src/share/vm/ci/ciObjArrayKlass.cpp b/hotspot/src/share/vm/ci/ciObjArrayKlass.cpp index 085e4cfaf8d..c04d31b4df4 100644 --- a/hotspot/src/share/vm/ci/ciObjArrayKlass.cpp +++ b/hotspot/src/share/vm/ci/ciObjArrayKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjArrayKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "oops/objArrayKlass.hpp" // ciObjArrayKlass // diff --git a/hotspot/src/share/vm/ci/ciObjArrayKlass.hpp b/hotspot/src/share/vm/ci/ciObjArrayKlass.hpp index e8c95788055..2f199593e55 100644 --- a/hotspot/src/share/vm/ci/ciObjArrayKlass.hpp +++ b/hotspot/src/share/vm/ci/ciObjArrayKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIOBJARRAYKLASS_HPP +#define SHARE_VM_CI_CIOBJARRAYKLASS_HPP + +#include "ci/ciArrayKlass.hpp" + // ciObjArrayKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -69,3 +74,5 @@ public: static ciObjArrayKlass* make(ciKlass* element_klass); }; + +#endif // SHARE_VM_CI_CIOBJARRAYKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.cpp b/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.cpp index 3eb1d524535..8df71655596 100644 --- a/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.cpp +++ b/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjArrayKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciObjArrayKlassKlass // diff --git a/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.hpp b/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.hpp index 4da72e94c7f..537f50af2fd 100644 --- a/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.hpp +++ b/hotspot/src/share/vm/ci/ciObjArrayKlassKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CIOBJARRAYKLASSKLASS_HPP +#define SHARE_VM_CI_CIOBJARRAYKLASSKLASS_HPP + +#include "ci/ciArrayKlassKlass.hpp" + // ciObjArrayKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -48,3 +53,5 @@ public: // Return the distinguished ciObjArrayKlassKlass instance. static ciObjArrayKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CIOBJARRAYKLASSKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciObject.cpp b/hotspot/src/share/vm/ci/ciObject.cpp index 16e9101978f..a4eb9439e1f 100644 --- a/hotspot/src/share/vm/ci/ciObject.cpp +++ b/hotspot/src/share/vm/ci/ciObject.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObject.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciUtilities.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "oops/oop.inline2.hpp" // ciObject // diff --git a/hotspot/src/share/vm/ci/ciObject.hpp b/hotspot/src/share/vm/ci/ciObject.hpp index 5f12c596852..e3a85a1235c 100644 --- a/hotspot/src/share/vm/ci/ciObject.hpp +++ b/hotspot/src/share/vm/ci/ciObject.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CIOBJECT_HPP +#define SHARE_VM_CI_CIOBJECT_HPP + +#include "ci/ciClassList.hpp" +#include "memory/allocation.hpp" +#include "runtime/handles.hpp" +#include "runtime/jniHandles.hpp" + // ciObject // // This class represents an oop in the HotSpot virtual machine. @@ -291,3 +299,5 @@ public: // Print debugging output about the oop this ciObject represents. void print_oop(outputStream* st = tty); }; + +#endif // SHARE_VM_CI_CIOBJECT_HPP diff --git a/hotspot/src/share/vm/ci/ciObjectFactory.cpp b/hotspot/src/share/vm/ci/ciObjectFactory.cpp index 776fdbd88a9..abc5408af49 100644 --- a/hotspot/src/share/vm/ci/ciObjectFactory.cpp +++ b/hotspot/src/share/vm/ci/ciObjectFactory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,33 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciObjectFactory.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciCallSite.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciMethodHandle.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciObjectFactory.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciSymbolKlass.hpp" +#include "ci/ciTypeArray.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "runtime/fieldType.hpp" // ciObjectFactory // diff --git a/hotspot/src/share/vm/ci/ciObjectFactory.hpp b/hotspot/src/share/vm/ci/ciObjectFactory.hpp index 4ea01d9e1ef..280f7214491 100644 --- a/hotspot/src/share/vm/ci/ciObjectFactory.hpp +++ b/hotspot/src/share/vm/ci/ciObjectFactory.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CIOBJECTFACTORY_HPP +#define SHARE_VM_CI_CIOBJECTFACTORY_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciObject.hpp" +#include "utilities/growableArray.hpp" + // ciObjectFactory // // This class handles requests for the creation of new instances @@ -123,3 +130,5 @@ public: void print_contents(); void print(); }; + +#endif // SHARE_VM_CI_CIOBJECTFACTORY_HPP diff --git a/hotspot/src/share/vm/ci/ciSignature.cpp b/hotspot/src/share/vm/ci/ciSignature.cpp index bf73809c359..738e28d7cac 100644 --- a/hotspot/src/share/vm/ci/ciSignature.cpp +++ b/hotspot/src/share/vm/ci/ciSignature.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciSignature.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciSignature.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/signature.hpp" // ciSignature // diff --git a/hotspot/src/share/vm/ci/ciSignature.hpp b/hotspot/src/share/vm/ci/ciSignature.hpp index 0be657f92d4..700daaad603 100644 --- a/hotspot/src/share/vm/ci/ciSignature.hpp +++ b/hotspot/src/share/vm/ci/ciSignature.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CISIGNATURE_HPP +#define SHARE_VM_CI_CISIGNATURE_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciSymbol.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/growableArray.hpp" + // ciSignature // // This class represents the signature of a method. @@ -54,3 +62,5 @@ public: void print_signature(); void print(); }; + +#endif // SHARE_VM_CI_CISIGNATURE_HPP diff --git a/hotspot/src/share/vm/ci/ciStreams.cpp b/hotspot/src/share/vm/ci/ciStreams.cpp index 5b0586b205b..a93f40c0fcc 100644 --- a/hotspot/src/share/vm/ci/ciStreams.cpp +++ b/hotspot/src/share/vm/ci/ciStreams.cpp @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciStreams.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciCPCache.hpp" +#include "ci/ciCallSite.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciUtilities.hpp" // ciExceptionHandlerStream // diff --git a/hotspot/src/share/vm/ci/ciStreams.hpp b/hotspot/src/share/vm/ci/ciStreams.hpp index e126eddfa9f..78ff279811e 100644 --- a/hotspot/src/share/vm/ci/ciStreams.hpp +++ b/hotspot/src/share/vm/ci/ciStreams.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CI_CISTREAMS_HPP +#define SHARE_VM_CI_CISTREAMS_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciMethod.hpp" +#include "interpreter/bytecode.hpp" + // ciBytecodeStream // // The class is used to iterate over the bytecodes of a method. @@ -397,3 +406,5 @@ public: return _method->_exception_handlers[_pos]; } }; + +#endif // SHARE_VM_CI_CISTREAMS_HPP diff --git a/hotspot/src/share/vm/ci/ciSymbol.cpp b/hotspot/src/share/vm/ci/ciSymbol.cpp index b48deee2702..08cc704b747 100644 --- a/hotspot/src/share/vm/ci/ciSymbol.cpp +++ b/hotspot/src/share/vm/ci/ciSymbol.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciSymbol.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciUtilities.hpp" +#include "memory/oopFactory.hpp" // ------------------------------------------------------------------ // ciSymbol::ciSymbol diff --git a/hotspot/src/share/vm/ci/ciSymbol.hpp b/hotspot/src/share/vm/ci/ciSymbol.hpp index 4c163ab6b0a..6664934a2e7 100644 --- a/hotspot/src/share/vm/ci/ciSymbol.hpp +++ b/hotspot/src/share/vm/ci/ciSymbol.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CI_CISYMBOL_HPP +#define SHARE_VM_CI_CISYMBOL_HPP + +#include "ci/ciObject.hpp" +#include "ci/ciObjectFactory.hpp" +#include "classfile/vmSymbols.hpp" +#include "oops/symbolOop.hpp" + // ciSymbol // // This class represents a symbolOop in the HotSpot virtual @@ -89,3 +97,5 @@ public: VM_SYMBOLS_DO(CI_SYMBOL_DECLARE, CI_SYMBOL_DECLARE) #undef CI_SYMBOL_DECLARE }; + +#endif // SHARE_VM_CI_CISYMBOL_HPP diff --git a/hotspot/src/share/vm/ci/ciSymbolKlass.cpp b/hotspot/src/share/vm/ci/ciSymbolKlass.cpp index f7de2d67011..1fb67e1a320 100644 --- a/hotspot/src/share/vm/ci/ciSymbolKlass.cpp +++ b/hotspot/src/share/vm/ci/ciSymbolKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciSymbolKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciSymbolKlass.hpp" +#include "ci/ciUtilities.hpp" // ciSymbolKlass // diff --git a/hotspot/src/share/vm/ci/ciSymbolKlass.hpp b/hotspot/src/share/vm/ci/ciSymbolKlass.hpp index 995cceead68..604a7be1884 100644 --- a/hotspot/src/share/vm/ci/ciSymbolKlass.hpp +++ b/hotspot/src/share/vm/ci/ciSymbolKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CISYMBOLKLASS_HPP +#define SHARE_VM_CI_CISYMBOLKLASS_HPP + +#include "ci/ciKlass.hpp" +#include "ci/ciSymbol.hpp" + // ciSymbolKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -50,3 +56,5 @@ public: // Return the distinguished ciSymbolKlass instance. static ciSymbolKlass* make(); }; + +#endif // SHARE_VM_CI_CISYMBOLKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciType.cpp b/hotspot/src/share/vm/ci/ciType.cpp index c00348cf86d..4aa100ccd1a 100644 --- a/hotspot/src/share/vm/ci/ciType.cpp +++ b/hotspot/src/share/vm/ci/ciType.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciType.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciType.hpp" +#include "ci/ciUtilities.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" ciType* ciType::_basic_types[T_CONFLICT+1]; diff --git a/hotspot/src/share/vm/ci/ciType.hpp b/hotspot/src/share/vm/ci/ciType.hpp index 70d9e877401..916bcf4614f 100644 --- a/hotspot/src/share/vm/ci/ciType.hpp +++ b/hotspot/src/share/vm/ci/ciType.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CITYPE_HPP +#define SHARE_VM_CI_CITYPE_HPP + +#include "ci/ciObject.hpp" +#include "oops/klassOop.hpp" + // ciType // // This class represents either a class (T_OBJECT), array (T_ARRAY), @@ -106,3 +112,5 @@ public: static ciReturnAddress* make(int bci); }; + +#endif // SHARE_VM_CI_CITYPE_HPP diff --git a/hotspot/src/share/vm/ci/ciTypeArray.cpp b/hotspot/src/share/vm/ci/ciTypeArray.cpp index fe50e0707ab..d4a6eff6f41 100644 --- a/hotspot/src/share/vm/ci/ciTypeArray.cpp +++ b/hotspot/src/share/vm/ci/ciTypeArray.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeArray.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciTypeArray.hpp" +#include "ci/ciUtilities.hpp" // ciTypeArray // diff --git a/hotspot/src/share/vm/ci/ciTypeArray.hpp b/hotspot/src/share/vm/ci/ciTypeArray.hpp index 101205d06d0..80a767d91ee 100644 --- a/hotspot/src/share/vm/ci/ciTypeArray.hpp +++ b/hotspot/src/share/vm/ci/ciTypeArray.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CI_CITYPEARRAY_HPP +#define SHARE_VM_CI_CITYPEARRAY_HPP + +#include "ci/ciArray.hpp" +#include "ci/ciClassList.hpp" +#include "oops/typeArrayOop.hpp" + // ciTypeArray // // This class represents a typeArrayOop in the HotSpot virtual @@ -50,3 +57,5 @@ public: jchar char_at(int index); }; + +#endif // SHARE_VM_CI_CITYPEARRAY_HPP diff --git a/hotspot/src/share/vm/ci/ciTypeArrayKlass.cpp b/hotspot/src/share/vm/ci/ciTypeArrayKlass.cpp index 3d197602e37..ca0c5cfd1d1 100644 --- a/hotspot/src/share/vm/ci/ciTypeArrayKlass.cpp +++ b/hotspot/src/share/vm/ci/ciTypeArrayKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeArrayKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciUtilities.hpp" // ciTypeArrayKlass // diff --git a/hotspot/src/share/vm/ci/ciTypeArrayKlass.hpp b/hotspot/src/share/vm/ci/ciTypeArrayKlass.hpp index c7c41776275..22df4b975b9 100644 --- a/hotspot/src/share/vm/ci/ciTypeArrayKlass.hpp +++ b/hotspot/src/share/vm/ci/ciTypeArrayKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CITYPEARRAYKLASS_HPP +#define SHARE_VM_CI_CITYPEARRAYKLASS_HPP + +#include "ci/ciArrayKlass.hpp" + // ciTypeArrayKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -53,3 +58,5 @@ public: // Make an array klass corresponding to the specified primitive type. static ciTypeArrayKlass* make(BasicType type); }; + +#endif // SHARE_VM_CI_CITYPEARRAYKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.cpp b/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.cpp index 960e85c3776..41048ce78e4 100644 --- a/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.cpp +++ b/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeArrayKlassKlass.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" +#include "ci/ciUtilities.hpp" // ciTypeArrayKlassKlass // diff --git a/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.hpp b/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.hpp index 8fdb91b3ef1..b99a968d641 100644 --- a/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.hpp +++ b/hotspot/src/share/vm/ci/ciTypeArrayKlassKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CI_CITYPEARRAYKLASSKLASS_HPP +#define SHARE_VM_CI_CITYPEARRAYKLASSKLASS_HPP + +#include "ci/ciArrayKlassKlass.hpp" + // ciTypeArrayKlassKlass // // This class represents a klassOop in the HotSpot virtual machine @@ -49,3 +54,5 @@ public: // Return the distinguished ciTypeArrayKlassKlass instance. static ciTypeArrayKlassKlass* make(); }; + +#endif // SHARE_VM_CI_CITYPEARRAYKLASSKLASS_HPP diff --git a/hotspot/src/share/vm/ci/ciTypeFlow.cpp b/hotspot/src/share/vm/ci/ciTypeFlow.cpp index 6a3390c4578..d8af850f185 100644 --- a/hotspot/src/share/vm/ci/ciTypeFlow.cpp +++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciTypeFlow.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciField.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodData.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciTypeFlow.hpp" +#include "compiler/compileLog.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/deoptimization.hpp" +#include "utilities/growableArray.hpp" // ciTypeFlow::JsrSet // diff --git a/hotspot/src/share/vm/ci/ciTypeFlow.hpp b/hotspot/src/share/vm/ci/ciTypeFlow.hpp index 26828a57897..e83487d1937 100644 --- a/hotspot/src/share/vm/ci/ciTypeFlow.hpp +++ b/hotspot/src/share/vm/ci/ciTypeFlow.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_CI_CITYPEFLOW_HPP +#define SHARE_VM_CI_CITYPEFLOW_HPP + +#ifdef COMPILER2 +#include "ci/ciEnv.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciMethodBlocks.hpp" +#endif +#ifdef SHARK +#include "ci/ciEnv.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciMethodBlocks.hpp" +#endif + class ciTypeFlow : public ResourceObj { private: @@ -924,3 +938,5 @@ public: void rpo_print_on(outputStream* st) const PRODUCT_RETURN; }; + +#endif // SHARE_VM_CI_CITYPEFLOW_HPP diff --git a/hotspot/src/share/vm/ci/ciUtilities.cpp b/hotspot/src/share/vm/ci/ciUtilities.cpp index 09ac80ecbb3..f64f7efb376 100644 --- a/hotspot/src/share/vm/ci/ciUtilities.cpp +++ b/hotspot/src/share/vm/ci/ciUtilities.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_ciUtilities.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciUtilities.hpp" // ciUtilities // diff --git a/hotspot/src/share/vm/ci/ciUtilities.hpp b/hotspot/src/share/vm/ci/ciUtilities.hpp index e1357500ff2..9788f77a734 100644 --- a/hotspot/src/share/vm/ci/ciUtilities.hpp +++ b/hotspot/src/share/vm/ci/ciUtilities.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CI_CIUTILITIES_HPP +#define SHARE_VM_CI_CIUTILITIES_HPP + +#include "ci/ciEnv.hpp" +#include "runtime/interfaceSupport.hpp" + // The following routines and definitions are used internally in the // compiler interface. @@ -104,3 +110,5 @@ inline const char* bool_to_str(bool b) { const char* basictype_to_str(BasicType t); const char basictype_to_char(BasicType t); + +#endif // SHARE_VM_CI_CIUTILITIES_HPP diff --git a/hotspot/src/share/vm/ci/compilerInterface.hpp b/hotspot/src/share/vm/ci/compilerInterface.hpp index fe843d5a104..b5db53c0e42 100644 --- a/hotspot/src/share/vm/ci/compilerInterface.hpp +++ b/hotspot/src/share/vm/ci/compilerInterface.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,5 +22,39 @@ * */ +#ifndef SHARE_VM_CI_COMPILERINTERFACE_HPP +#define SHARE_VM_CI_COMPILERINTERFACE_HPP + +#include "ci/ciArray.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciArrayKlassKlass.hpp" +#include "ci/ciCallProfile.hpp" +#include "ci/ciConstant.hpp" +#include "ci/ciEnv.hpp" +#include "ci/ciExceptionHandler.hpp" +#include "ci/ciField.hpp" +#include "ci/ciFlags.hpp" +#include "ci/ciInstance.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciInstanceKlassKlass.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciKlassKlass.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodKlass.hpp" +#include "ci/ciNullObject.hpp" +#include "ci/ciObjArray.hpp" +#include "ci/ciObjArrayKlass.hpp" +#include "ci/ciObjArrayKlassKlass.hpp" +#include "ci/ciObject.hpp" +#include "ci/ciSignature.hpp" +#include "ci/ciStreams.hpp" +#include "ci/ciSymbol.hpp" +#include "ci/ciSymbolKlass.hpp" +#include "ci/ciTypeArray.hpp" +#include "ci/ciTypeArrayKlass.hpp" +#include "ci/ciTypeArrayKlassKlass.hpp" + // This is a dummy file used for including the complete // compiler interface. + +#endif // SHARE_VM_CI_COMPILERINTERFACE_HPP diff --git a/hotspot/src/share/vm/classfile/classFileError.cpp b/hotspot/src/share/vm/classfile/classFileError.cpp index c5f465e7678..80aa37af9fb 100644 --- a/hotspot/src/share/vm/classfile/classFileError.cpp +++ b/hotspot/src/share/vm/classfile/classFileError.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classFileError.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileParser.hpp" +#include "classfile/stackMapTable.hpp" +#include "classfile/verifier.hpp" // Keep these in a separate file to prevent inlining diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index bc015b54e28..ac5b0127d9a 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classFileParser.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileParser.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/verificationType.hpp" +#include "classfile/verifier.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.hpp" +#include "memory/gcLocker.hpp" +#include "memory/oopFactory.hpp" +#include "memory/universe.inline.hpp" +#include "oops/constantPoolOop.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klass.inline.hpp" +#include "oops/klassOop.hpp" +#include "oops/klassVtable.hpp" +#include "oops/methodOop.hpp" +#include "oops/symbolOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/perfData.hpp" +#include "runtime/reflection.hpp" +#include "runtime/signature.hpp" +#include "runtime/timer.hpp" +#include "services/classLoadingService.hpp" +#include "services/threadService.hpp" // We generally try to create the oops directly when parsing, rather than // allocating temporary data structures and copying the bytes twice. A diff --git a/hotspot/src/share/vm/classfile/classFileParser.hpp b/hotspot/src/share/vm/classfile/classFileParser.hpp index d7fc92b9cae..12c0ec95948 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.hpp +++ b/hotspot/src/share/vm/classfile/classFileParser.hpp @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP +#define SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP + +#include "classfile/classFileStream.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "oops/typeArrayOop.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/accessFlags.hpp" + // Parser for for .class files // // The bytes describing the class file structure is read from a Stream object @@ -286,3 +296,5 @@ class ClassFileParser VALUE_OBJ_CLASS_SPEC { static void check_final_method_override(instanceKlassHandle this_klass, TRAPS); static void check_illegal_static_method(instanceKlassHandle this_klass, TRAPS); }; + +#endif // SHARE_VM_CLASSFILE_CLASSFILEPARSER_HPP diff --git a/hotspot/src/share/vm/classfile/classFileStream.cpp b/hotspot/src/share/vm/classfile/classFileStream.cpp index 9f563049594..19d3e82af42 100644 --- a/hotspot/src/share/vm/classfile/classFileStream.cpp +++ b/hotspot/src/share/vm/classfile/classFileStream.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classFileStream.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileStream.hpp" +#include "classfile/vmSymbols.hpp" void ClassFileStream::truncated_file_error(TRAPS) { THROW_MSG(vmSymbols::java_lang_ClassFormatError(), "Truncated class file"); diff --git a/hotspot/src/share/vm/classfile/classFileStream.hpp b/hotspot/src/share/vm/classfile/classFileStream.hpp index d9a61f84d6d..dfadb7b00db 100644 --- a/hotspot/src/share/vm/classfile/classFileStream.hpp +++ b/hotspot/src/share/vm/classfile/classFileStream.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP +#define SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP + +#include "utilities/top.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + // Input stream for reading .class file // // The entire input stream is present in a buffer allocated by the caller. @@ -116,3 +130,5 @@ class ClassFileStream: public ResourceObj { // Tells whether eos is reached bool at_eos() const { return _current == _buffer_end; } }; + +#endif // SHARE_VM_CLASSFILE_CLASSFILESTREAM_HPP diff --git a/hotspot/src/share/vm/classfile/classLoader.cpp b/hotspot/src/share/vm/classfile/classLoader.cpp index 1495e87726f..1d646ef656b 100644 --- a/hotspot/src/share/vm/classfile/classLoader.cpp +++ b/hotspot/src/share/vm/classfile/classLoader.cpp @@ -22,8 +22,56 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_classLoader.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileParser.hpp" +#include "classfile/classFileStream.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "compiler/compileBroker.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/bytecodeStream.hpp" +#include "interpreter/oopMapCache.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/generation.hpp" +#include "memory/oopFactory.hpp" +#include "memory/universe.inline.hpp" +#include "oops/constantPoolKlass.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "prims/jvm_misc.hpp" +#include "runtime/arguments.hpp" +#include "runtime/compilationPolicy.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/handles.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/timer.hpp" +#include "services/management.hpp" +#include "services/threadService.hpp" +#include "utilities/events.hpp" +#include "utilities/hashtable.hpp" +#include "utilities/hashtable.inline.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "hpi_linux.hpp" +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "hpi_solaris.hpp" +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "hpi_windows.hpp" +# include "os_windows.inline.hpp" +#endif // Entry points in zip.dll for loading zip/jar file entries diff --git a/hotspot/src/share/vm/classfile/classLoader.hpp b/hotspot/src/share/vm/classfile/classLoader.hpp index ad4f967c662..3c6b215f994 100644 --- a/hotspot/src/share/vm/classfile/classLoader.hpp +++ b/hotspot/src/share/vm/classfile/classLoader.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CLASSFILE_CLASSLOADER_HPP +#define SHARE_VM_CLASSFILE_CLASSLOADER_HPP + +#include "classfile/classFileParser.hpp" +#include "runtime/perfData.hpp" + // The VM class loader. #include @@ -456,3 +462,5 @@ class PerfClassTraceTime { } }; + +#endif // SHARE_VM_CLASSFILE_CLASSLOADER_HPP diff --git a/hotspot/src/share/vm/classfile/dictionary.cpp b/hotspot/src/share/vm/classfile/dictionary.cpp index 155a51cb5f5..cff89e66a36 100644 --- a/hotspot/src/share/vm/classfile/dictionary.cpp +++ b/hotspot/src/share/vm/classfile/dictionary.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dictionary.cpp.incl" +#include "precompiled.hpp" +#include "classfile/dictionary.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "services/classLoadingService.hpp" +#include "utilities/hashtable.inline.hpp" DictionaryEntry* Dictionary::_current_class_entry = NULL; diff --git a/hotspot/src/share/vm/classfile/dictionary.hpp b/hotspot/src/share/vm/classfile/dictionary.hpp index 53c4001bc9b..bc6a009b511 100644 --- a/hotspot/src/share/vm/classfile/dictionary.hpp +++ b/hotspot/src/share/vm/classfile/dictionary.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CLASSFILE_DICTIONARY_HPP +#define SHARE_VM_CLASSFILE_DICTIONARY_HPP + +#include "classfile/systemDictionary.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oop.hpp" +#include "utilities/hashtable.hpp" + class DictionaryEntry; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -336,3 +344,5 @@ public: void verify(); }; + +#endif // SHARE_VM_CLASSFILE_DICTIONARY_HPP diff --git a/hotspot/src/share/vm/classfile/javaAssertions.cpp b/hotspot/src/share/vm/classfile/javaAssertions.cpp index 4315f8cc704..0c64222cb60 100644 --- a/hotspot/src/share/vm/classfile/javaAssertions.cpp +++ b/hotspot/src/share/vm/classfile/javaAssertions.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,15 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_javaAssertions.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaAssertions.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/oopFactory.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" bool JavaAssertions::_userDefault = false; bool JavaAssertions::_sysDefault = false; diff --git a/hotspot/src/share/vm/classfile/javaAssertions.hpp b/hotspot/src/share/vm/classfile/javaAssertions.hpp index a11f2e5d9aa..b0fb21a2d07 100644 --- a/hotspot/src/share/vm/classfile/javaAssertions.hpp +++ b/hotspot/src/share/vm/classfile/javaAssertions.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP +#define SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP + +#include "oops/objArrayOop.hpp" +#include "oops/typeArrayOop.hpp" +#include "utilities/exceptions.hpp" +#include "utilities/ostream.hpp" + class JavaAssertions: AllStatic { public: static inline bool userClassDefault(); @@ -95,3 +103,5 @@ inline void JavaAssertions::setSystemClassDefault(bool enabled) { tty->print_cr("JavaAssertions::setSystemClassDefault(%d)", enabled); _sysDefault = enabled; } + +#endif // SHARE_VM_CLASSFILE_JAVAASSERTIONS_HPP diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp index fd9e42d7169..72c848db767 100644 --- a/hotspot/src/share/vm/classfile/javaClasses.cpp +++ b/hotspot/src/share/vm/classfile/javaClasses.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,39 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_javaClasses.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/debugInfo.hpp" +#include "code/pcDesc.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "memory/universe.inline.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klass.hpp" +#include "oops/klassOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/symbolOop.hpp" +#include "oops/typeArrayOop.hpp" +#include "runtime/fieldDescriptor.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vframe.hpp" +#include "utilities/preserveException.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif static bool find_field(instanceKlass* ik, symbolOop name_symbol, symbolOop signature_symbol, diff --git a/hotspot/src/share/vm/classfile/javaClasses.hpp b/hotspot/src/share/vm/classfile/javaClasses.hpp index 7cd03c1d468..9051390cd6c 100644 --- a/hotspot/src/share/vm/classfile/javaClasses.hpp +++ b/hotspot/src/share/vm/classfile/javaClasses.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CLASSFILE_JAVACLASSES_HPP +#define SHARE_VM_CLASSFILE_JAVACLASSES_HPP + +#include "classfile/systemDictionary.hpp" +#include "jvmtifiles/jvmti.h" +#include "oops/oop.hpp" +#include "runtime/os.hpp" +#include "utilities/utf8.hpp" + // Interface for manipulating the basic Java classes. // // All dependencies on layout of actual Java classes should be kept here. @@ -1271,3 +1280,5 @@ class JavaClasses : AllStatic { static void compute_offsets(); static void check_offsets() PRODUCT_RETURN; }; + +#endif // SHARE_VM_CLASSFILE_JAVACLASSES_HPP diff --git a/hotspot/src/share/vm/classfile/loaderConstraints.cpp b/hotspot/src/share/vm/classfile/loaderConstraints.cpp index 9f03cec609e..cd608191169 100644 --- a/hotspot/src/share/vm/classfile/loaderConstraints.cpp +++ b/hotspot/src/share/vm/classfile/loaderConstraints.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_loaderConstraints.cpp.incl" +#include "precompiled.hpp" +#include "classfile/loaderConstraints.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/safepoint.hpp" +#include "utilities/hashtable.inline.hpp" LoaderConstraintTable::LoaderConstraintTable(int nof_buckets) : Hashtable(nof_buckets, sizeof(LoaderConstraintEntry)) {}; diff --git a/hotspot/src/share/vm/classfile/loaderConstraints.hpp b/hotspot/src/share/vm/classfile/loaderConstraints.hpp index 001469d72c7..c6dd29ae639 100644 --- a/hotspot/src/share/vm/classfile/loaderConstraints.hpp +++ b/hotspot/src/share/vm/classfile/loaderConstraints.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP +#define SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP + +#include "classfile/dictionary.hpp" +#include "classfile/placeholders.hpp" +#include "utilities/hashtable.hpp" + class LoaderConstraintEntry; class LoaderConstraintTable : public Hashtable { @@ -130,3 +137,5 @@ public: void set_loader(int i, oop p) { _loaders[i] = p; } }; + +#endif // SHARE_VM_CLASSFILE_LOADERCONSTRAINTS_HPP diff --git a/hotspot/src/share/vm/classfile/placeholders.cpp b/hotspot/src/share/vm/classfile/placeholders.cpp index beda19481c1..6deba4f1bc3 100644 --- a/hotspot/src/share/vm/classfile/placeholders.cpp +++ b/hotspot/src/share/vm/classfile/placeholders.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_placeholders.cpp.incl" +#include "precompiled.hpp" +#include "classfile/placeholders.hpp" +#include "classfile/systemDictionary.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldType.hpp" +#include "utilities/hashtable.inline.hpp" // Placeholder methods diff --git a/hotspot/src/share/vm/classfile/placeholders.hpp b/hotspot/src/share/vm/classfile/placeholders.hpp index e0aa4da4f28..4c77fefff74 100644 --- a/hotspot/src/share/vm/classfile/placeholders.hpp +++ b/hotspot/src/share/vm/classfile/placeholders.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP +#define SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP + +#include "utilities/hashtable.hpp" + class PlaceholderEntry; // Placeholder objects. These represent classes currently @@ -329,3 +334,5 @@ class PlaceholderEntry : public HashtableEntry { void print() const PRODUCT_RETURN; void verify() const; }; + +#endif // SHARE_VM_CLASSFILE_PLACEHOLDERS_HPP diff --git a/hotspot/src/share/vm/classfile/resolutionErrors.cpp b/hotspot/src/share/vm/classfile/resolutionErrors.cpp index 1ebd22e1620..1de360541ad 100644 --- a/hotspot/src/share/vm/classfile/resolutionErrors.cpp +++ b/hotspot/src/share/vm/classfile/resolutionErrors.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_resolutionErrors.cpp.incl" +#include "precompiled.hpp" +#include "classfile/resolutionErrors.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/safepoint.hpp" +#include "utilities/hashtable.inline.hpp" // add new entry to the table void ResolutionErrorTable::add_entry(int index, unsigned int hash, diff --git a/hotspot/src/share/vm/classfile/resolutionErrors.hpp b/hotspot/src/share/vm/classfile/resolutionErrors.hpp index 84676228537..03786afd59b 100644 --- a/hotspot/src/share/vm/classfile/resolutionErrors.hpp +++ b/hotspot/src/share/vm/classfile/resolutionErrors.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP +#define SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP + +#include "oops/constantPoolOop.hpp" +#include "utilities/hashtable.hpp" + class ResolutionErrorEntry; // ResolutionError objects are used to record errors encountered during @@ -97,3 +103,5 @@ class ResolutionErrorEntry : public HashtableEntry { // GC support void oops_do(OopClosure* blk); }; + +#endif // SHARE_VM_CLASSFILE_RESOLUTIONERRORS_HPP diff --git a/hotspot/src/share/vm/classfile/stackMapFrame.cpp b/hotspot/src/share/vm/classfile/stackMapFrame.cpp index d473755a532..702d4f2578b 100644 --- a/hotspot/src/share/vm/classfile/stackMapFrame.cpp +++ b/hotspot/src/share/vm/classfile/stackMapFrame.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_stackMapFrame.cpp.incl" +#include "precompiled.hpp" +#include "classfile/stackMapFrame.hpp" +#include "classfile/verifier.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/globalDefinitions.hpp" StackMapFrame::StackMapFrame(u2 max_locals, u2 max_stack, ClassVerifier* v) : _offset(0), _locals_size(0), _stack_size(0), _flags(0), diff --git a/hotspot/src/share/vm/classfile/stackMapFrame.hpp b/hotspot/src/share/vm/classfile/stackMapFrame.hpp index deb5b01649b..5a21fbea5d6 100644 --- a/hotspot/src/share/vm/classfile/stackMapFrame.hpp +++ b/hotspot/src/share/vm/classfile/stackMapFrame.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP +#define SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP + +#include "classfile/verificationType.hpp" +#include "classfile/verifier.hpp" +#include "oops/methodOop.hpp" +#include "runtime/handles.hpp" +#include "runtime/signature.hpp" +#include "utilities/exceptions.hpp" + // A StackMapFrame represents one frame in the stack map attribute. enum { @@ -224,3 +234,5 @@ class StackMapFrame : public ResourceObj { // Debugging void print() const PRODUCT_RETURN; }; + +#endif // SHARE_VM_CLASSFILE_STACKMAPFRAME_HPP diff --git a/hotspot/src/share/vm/classfile/stackMapTable.cpp b/hotspot/src/share/vm/classfile/stackMapTable.cpp index e34fc5948aa..ae0b10f8d5d 100644 --- a/hotspot/src/share/vm/classfile/stackMapTable.cpp +++ b/hotspot/src/share/vm/classfile/stackMapTable.cpp @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_stackMapTable.cpp.incl" +#include "precompiled.hpp" +#include "classfile/stackMapTable.hpp" +#include "classfile/verifier.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldType.hpp" +#include "runtime/handles.inline.hpp" StackMapTable::StackMapTable(StackMapReader* reader, StackMapFrame* init_frame, u2 max_locals, u2 max_stack, diff --git a/hotspot/src/share/vm/classfile/stackMapTable.hpp b/hotspot/src/share/vm/classfile/stackMapTable.hpp index 59898233190..96115b40e15 100644 --- a/hotspot/src/share/vm/classfile/stackMapTable.hpp +++ b/hotspot/src/share/vm/classfile/stackMapTable.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,24 @@ * */ +#ifndef SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP +#define SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP + +#include "classfile/stackMapFrame.hpp" +#include "memory/allocation.hpp" +#include "oops/constantPoolOop.hpp" +#include "oops/methodOop.hpp" +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + class StackMapReader; // StackMapTable class is the StackMap table used by type checker @@ -159,3 +177,5 @@ class StackMapReader : StackObj { } } }; + +#endif // SHARE_VM_CLASSFILE_STACKMAPTABLE_HPP diff --git a/hotspot/src/share/vm/classfile/stackMapTableFormat.hpp b/hotspot/src/share/vm/classfile/stackMapTableFormat.hpp index d20520abea0..b8a4b4268e4 100644 --- a/hotspot/src/share/vm/classfile/stackMapTableFormat.hpp +++ b/hotspot/src/share/vm/classfile/stackMapTableFormat.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP +#define SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP + +#include "classfile/verificationType.hpp" + // These classes represent the stack-map substructures described in the JVMS // (hence the non-conforming naming scheme). @@ -914,3 +919,5 @@ class stack_map_table_attribute { Bytes::put_Java_u2(number_of_entries_addr(), num); } }; + +#endif // SHARE_VM_CLASSFILE_STACKMAPTABLEFORMAT_HPP diff --git a/hotspot/src/share/vm/classfile/symbolTable.cpp b/hotspot/src/share/vm/classfile/symbolTable.cpp index 68bc4beca4d..fd54f4d26bc 100644 --- a/hotspot/src/share/vm/classfile/symbolTable.cpp +++ b/hotspot/src/share/vm/classfile/symbolTable.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,18 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_symbolTable.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/filemap.hpp" +#include "memory/gcLocker.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "oops/symbolKlass.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/hashtable.inline.hpp" // -------------------------------------------------------------------------- diff --git a/hotspot/src/share/vm/classfile/symbolTable.hpp b/hotspot/src/share/vm/classfile/symbolTable.hpp index 40e67c12573..8444b4f9de5 100644 --- a/hotspot/src/share/vm/classfile/symbolTable.hpp +++ b/hotspot/src/share/vm/classfile/symbolTable.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP +#define SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP + +#include "memory/allocation.inline.hpp" +#include "oops/symbolOop.hpp" +#include "utilities/hashtable.hpp" + // The symbol table holds all symbolOops and corresponding interned strings. // symbolOops and literal strings should be canonicalized. // @@ -222,3 +229,5 @@ public: ((BasicHashtable*)the_table())->reverse(); } }; + +#endif // SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp index 45ecef8b18b..b6f8481a9f3 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.cpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp @@ -22,8 +22,37 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_systemDictionary.cpp.incl" +#include "precompiled.hpp" +#include "classfile/dictionary.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/loaderConstraints.hpp" +#include "classfile/placeholders.hpp" +#include "classfile/resolutionErrors.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "interpreter/bytecodeStream.hpp" +#include "interpreter/interpreter.hpp" +#include "memory/gcLocker.hpp" +#include "memory/oopFactory.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/klass.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "oops/typeArrayKlass.hpp" +#include "prims/jvmtiEnvBase.hpp" +#include "prims/methodHandles.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fieldType.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/signature.hpp" +#include "services/classLoadingService.hpp" +#include "services/threadService.hpp" Dictionary* SystemDictionary::_dictionary = NULL; diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp index 9809f77bdf8..d18e341920d 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.hpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP +#define SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP + +#include "classfile/classFileStream.hpp" +#include "classfile/classLoader.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/java.hpp" +#include "runtime/reflectionUtils.hpp" +#include "utilities/hashtable.hpp" + // The system dictionary stores all loaded classes and maps: // // [class name,class loader] -> class i.e. [symbolOop,oop] -> klassOop @@ -672,3 +683,5 @@ public: static KlassHandle box_klass(BasicType t); }; + +#endif // SHARE_VM_CLASSFILE_SYSTEMDICTIONARY_HPP diff --git a/hotspot/src/share/vm/classfile/verificationType.cpp b/hotspot/src/share/vm/classfile/verificationType.cpp index 4a60b789451..7a2612a1224 100644 --- a/hotspot/src/share/vm/classfile/verificationType.cpp +++ b/hotspot/src/share/vm/classfile/verificationType.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_verificationType.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/verificationType.hpp" VerificationType VerificationType::from_tag(u1 tag) { switch (tag) { diff --git a/hotspot/src/share/vm/classfile/verificationType.hpp b/hotspot/src/share/vm/classfile/verificationType.hpp index db3a8097002..8163d966e5a 100644 --- a/hotspot/src/share/vm/classfile/verificationType.hpp +++ b/hotspot/src/share/vm/classfile/verificationType.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP +#define SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP + +#include "classfile/systemDictionary.hpp" +#include "memory/allocation.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/handles.hpp" +#include "runtime/signature.hpp" + enum { // As specifed in the JVM spec ITEM_Top = 0, @@ -303,3 +314,5 @@ class VerificationType VALUE_OBJ_CLASS_SPEC { bool is_reference_assignable_from( const VerificationType&, instanceKlassHandle, TRAPS) const; }; + +#endif // SHARE_VM_CLASSFILE_VERIFICATIONTYPE_HPP diff --git a/hotspot/src/share/vm/classfile/verifier.cpp b/hotspot/src/share/vm/classfile/verifier.cpp index b4f3cbb0cd2..5e7f576691e 100644 --- a/hotspot/src/share/vm/classfile/verifier.cpp +++ b/hotspot/src/share/vm/classfile/verifier.cpp @@ -22,8 +22,36 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_verifier.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classFileStream.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/stackMapTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/verifier.hpp" +#include "classfile/vmSymbols.hpp" +#include "interpreter/bytecodeStream.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oop.inline.hpp" +#include "oops/typeArrayOop.hpp" +#include "prims/jvm.h" +#include "runtime/fieldDescriptor.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/orderAccess.hpp" +#include "runtime/os.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif #define NOFAILOVER_MAJOR_VERSION 51 diff --git a/hotspot/src/share/vm/classfile/verifier.hpp b/hotspot/src/share/vm/classfile/verifier.hpp index 7ffe669ce97..c3ef4670602 100644 --- a/hotspot/src/share/vm/classfile/verifier.hpp +++ b/hotspot/src/share/vm/classfile/verifier.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CLASSFILE_VERIFIER_HPP +#define SHARE_VM_CLASSFILE_VERIFIER_HPP + +#include "classfile/verificationType.hpp" +#include "memory/gcLocker.hpp" +#include "oops/klass.hpp" +#include "oops/methodOop.hpp" +#include "runtime/handles.hpp" +#include "utilities/exceptions.hpp" + // The verifier class class Verifier : AllStatic { public: @@ -254,3 +264,5 @@ inline int ClassVerifier::change_sig_to_verificationType( return 1; } } + +#endif // SHARE_VM_CLASSFILE_VERIFIER_HPP diff --git a/hotspot/src/share/vm/classfile/vmSymbols.cpp b/hotspot/src/share/vm/classfile/vmSymbols.cpp index bba078fe3c0..c0138c40874 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.cpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmSymbols.cpp.incl" +#include "precompiled.hpp" +#include "classfile/vmSymbols.hpp" +#include "memory/oopFactory.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/xmlstream.hpp" symbolOop vmSymbols::_symbols[vmSymbols::SID_LIMIT]; diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index cc88ad71fd1..5bf7a6cd8d0 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP +#define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP + +#include "oops/symbolOop.hpp" + // The classes vmSymbols and vmSymbolHandles are a name spaces for fast lookup of // symbols commonly used in the VM. The first class return a symbolOop, while the // second class returns a SymbolHandle. The underlying data structure is shared @@ -1112,3 +1117,5 @@ public: // Raw conversion: static ID for_raw_conversion(BasicType src, BasicType dest); }; + +#endif // SHARE_VM_CLASSFILE_VMSYMBOLS_HPP diff --git a/hotspot/src/share/vm/code/codeBlob.cpp b/hotspot/src/share/vm/code/codeBlob.cpp index 823eedd498d..81d09f5cc5c 100644 --- a/hotspot/src/share/vm/code/codeBlob.cpp +++ b/hotspot/src/share/vm/code/codeBlob.cpp @@ -22,8 +22,35 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_codeBlob.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/codeCache.hpp" +#include "code/relocInfo.hpp" +#include "compiler/disassembler.hpp" +#include "interpreter/bytecode.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/heap.hpp" +#include "oops/oop.inline.hpp" +#include "prims/forte.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/vframe.hpp" +#include "services/memoryService.hpp" +#ifdef TARGET_ARCH_x86 +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "nativeInst_zero.hpp" +#endif +#ifdef COMPILER1 +#include "c1/c1_Runtime1.hpp" +#endif unsigned int align_code_offset(int offset) { // align the size to CodeEntryAlignment diff --git a/hotspot/src/share/vm/code/codeBlob.hpp b/hotspot/src/share/vm/code/codeBlob.hpp index 9b08c3dc880..61e64882d43 100644 --- a/hotspot/src/share/vm/code/codeBlob.hpp +++ b/hotspot/src/share/vm/code/codeBlob.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CODE_CODEBLOB_HPP +#define SHARE_VM_CODE_CODEBLOB_HPP + +#include "asm/codeBuffer.hpp" +#include "compiler/oopMap.hpp" +#include "runtime/frame.hpp" +#include "runtime/handles.hpp" + // CodeBlob - superclass for all entries in the CodeCache. // // Suptypes are: @@ -499,3 +507,5 @@ class SafepointBlob: public SingletonBlob { // Typing bool is_safepoint_stub() const { return true; } }; + +#endif // SHARE_VM_CODE_CODEBLOB_HPP diff --git a/hotspot/src/share/vm/code/codeCache.cpp b/hotspot/src/share/vm/code/codeCache.cpp index 5040ba1b47f..f7e09b2581c 100644 --- a/hotspot/src/share/vm/code/codeCache.cpp +++ b/hotspot/src/share/vm/code/codeCache.cpp @@ -22,8 +22,26 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_codeCache.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/codeCache.hpp" +#include "code/dependencies.hpp" +#include "code/nmethod.hpp" +#include "code/pcDesc.hpp" +#include "gc_implementation/shared/markSweep.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/gcLocker.hpp" +#include "memory/iterator.hpp" +#include "memory/resourceArea.hpp" +#include "oops/methodOop.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/icache.hpp" +#include "runtime/java.hpp" +#include "runtime/mutexLocker.hpp" +#include "services/memoryService.hpp" +#include "utilities/xmlstream.hpp" // Helper class for printing in CodeCache diff --git a/hotspot/src/share/vm/code/codeCache.hpp b/hotspot/src/share/vm/code/codeCache.hpp index 421cec02627..acb288efe7e 100644 --- a/hotspot/src/share/vm/code/codeCache.hpp +++ b/hotspot/src/share/vm/code/codeCache.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_CODE_CODECACHE_HPP +#define SHARE_VM_CODE_CODECACHE_HPP + +#include "code/codeBlob.hpp" +#include "memory/allocation.hpp" +#include "memory/heap.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/oopsHierarchy.hpp" + // The CodeCache implements the code cache for various pieces of generated // code, e.g., compiled java methods, runtime stubs, transition frames, etc. // The entries in the CodeCache are all CodeBlob's. @@ -173,3 +182,5 @@ class CodeCache : AllStatic { // tells how many nmethods have dependencies static int number_of_nmethods_with_dependencies(); }; + +#endif // SHARE_VM_CODE_CODECACHE_HPP diff --git a/hotspot/src/share/vm/code/compiledIC.cpp b/hotspot/src/share/vm/code/compiledIC.cpp index d2c8e2752ef..b8e0f2821c3 100644 --- a/hotspot/src/share/vm/code/compiledIC.cpp +++ b/hotspot/src/share/vm/code/compiledIC.cpp @@ -22,8 +22,23 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compiledIC.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "code/compiledIC.hpp" +#include "code/icBuffer.hpp" +#include "code/nmethod.hpp" +#include "code/vtableStubs.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/oopFactory.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/icache.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/stubRoutines.hpp" +#include "utilities/events.hpp" // Every time a compiled IC is changed or its type is being accessed, diff --git a/hotspot/src/share/vm/code/compiledIC.hpp b/hotspot/src/share/vm/code/compiledIC.hpp index b97b3ea56d6..a5524ca164c 100644 --- a/hotspot/src/share/vm/code/compiledIC.hpp +++ b/hotspot/src/share/vm/code/compiledIC.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,23 @@ * */ +#ifndef SHARE_VM_CODE_COMPILEDIC_HPP +#define SHARE_VM_CODE_COMPILEDIC_HPP + +#include "interpreter/linkResolver.hpp" +#include "oops/compiledICHolderKlass.hpp" +#include "oops/compiledICHolderOop.hpp" +#include "oops/klassOop.hpp" +#ifdef TARGET_ARCH_x86 +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "nativeInst_zero.hpp" +#endif + //----------------------------------------------------------------------------- // The CompiledIC represents a compiled inline cache. // @@ -239,3 +256,5 @@ inline CompiledStaticCall* compiledStaticCall_at(address native_call) { inline CompiledStaticCall* compiledStaticCall_at(Relocation* call_site) { return compiledStaticCall_at(call_site->addr()); } + +#endif // SHARE_VM_CODE_COMPILEDIC_HPP diff --git a/hotspot/src/share/vm/code/compressedStream.cpp b/hotspot/src/share/vm/code/compressedStream.cpp index d2f51e5f3a2..e534776d7af 100644 --- a/hotspot/src/share/vm/code/compressedStream.cpp +++ b/hotspot/src/share/vm/code/compressedStream.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compressedStream.cpp.incl" +#include "precompiled.hpp" +#include "code/compressedStream.hpp" +#include "utilities/ostream.hpp" // 32-bit one-to-one sign encoding taken from Pack200 // converts leading sign bits into leading zeroes with trailing sign bit diff --git a/hotspot/src/share/vm/code/compressedStream.hpp b/hotspot/src/share/vm/code/compressedStream.hpp index db9f8869203..fd5aafc9124 100644 --- a/hotspot/src/share/vm/code/compressedStream.hpp +++ b/hotspot/src/share/vm/code/compressedStream.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CODE_COMPRESSEDSTREAM_HPP +#define SHARE_VM_CODE_COMPRESSEDSTREAM_HPP + +#include "memory/allocation.hpp" + // Simple interface for filing out and filing in basic types // Used for writing out and reading in debugging information. @@ -118,3 +123,5 @@ class CompressedWriteStream : public CompressedStream { void write_double(jdouble value); // write_int(reverse_int()) void write_long(jlong value); // write_signed_int() }; + +#endif // SHARE_VM_CODE_COMPRESSEDSTREAM_HPP diff --git a/hotspot/src/share/vm/code/debugInfo.cpp b/hotspot/src/share/vm/code/debugInfo.cpp index a3cd7db4ede..04504722eab 100644 --- a/hotspot/src/share/vm/code/debugInfo.cpp +++ b/hotspot/src/share/vm/code/debugInfo.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_debugInfo.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfo.hpp" +#include "code/debugInfoRec.hpp" +#include "code/nmethod.hpp" +#include "runtime/handles.inline.hpp" // Comstructors diff --git a/hotspot/src/share/vm/code/debugInfo.hpp b/hotspot/src/share/vm/code/debugInfo.hpp index 3506b7caaad..eed747717f9 100644 --- a/hotspot/src/share/vm/code/debugInfo.hpp +++ b/hotspot/src/share/vm/code/debugInfo.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_CODE_DEBUGINFO_HPP +#define SHARE_VM_CODE_DEBUGINFO_HPP + +#include "code/compressedStream.hpp" +#include "code/location.hpp" +#include "code/nmethod.hpp" +#include "code/oopRecorder.hpp" +#include "runtime/stackValue.hpp" +#include "utilities/growableArray.hpp" + // Classes used for serializing debugging information. // These abstractions are introducted to provide symmetric // read and write operations. @@ -270,3 +280,5 @@ class DebugInfoWriteStream : public CompressedWriteStream { void write_handle(jobject h); void write_bci(int bci) { write_int(bci - InvocationEntryBci); } }; + +#endif // SHARE_VM_CODE_DEBUGINFO_HPP diff --git a/hotspot/src/share/vm/code/debugInfoRec.cpp b/hotspot/src/share/vm/code/debugInfoRec.cpp index 042503fa3c5..bc8bd55c80a 100644 --- a/hotspot/src/share/vm/code/debugInfoRec.cpp +++ b/hotspot/src/share/vm/code/debugInfoRec.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_debugInfoRec.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfoRec.hpp" +#include "code/scopeDesc.hpp" +#include "prims/jvmtiExport.hpp" // Private definition. // There is one DIR_Chunk for each scope and values array. diff --git a/hotspot/src/share/vm/code/debugInfoRec.hpp b/hotspot/src/share/vm/code/debugInfoRec.hpp index 83db4d0f934..758e7dad193 100644 --- a/hotspot/src/share/vm/code/debugInfoRec.hpp +++ b/hotspot/src/share/vm/code/debugInfoRec.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,19 @@ * */ +#ifndef SHARE_VM_CODE_DEBUGINFOREC_HPP +#define SHARE_VM_CODE_DEBUGINFOREC_HPP + +#include "ci/ciClassList.hpp" +#include "ci/ciInstanceKlass.hpp" +#include "ci/ciMethod.hpp" +#include "code/debugInfo.hpp" +#include "code/location.hpp" +#include "code/pcDesc.hpp" +#include "compiler/oopMap.hpp" +#include "oops/oop.hpp" +#include "utilities/growableArray.hpp" + //** The DebugInformationRecorder collects debugging information // for a compiled method. // Debugging information is used for: @@ -183,3 +196,5 @@ class DebugInformationRecorder: public ResourceObj { public: enum { serialized_null = 0 }; }; + +#endif // SHARE_VM_CODE_DEBUGINFOREC_HPP diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp index 811448801f9..6b564b286e4 100644 --- a/hotspot/src/share/vm/code/dependencies.cpp +++ b/hotspot/src/share/vm/code/dependencies.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dependencies.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciArrayKlass.hpp" +#include "ci/ciEnv.hpp" +#include "ci/ciKlass.hpp" +#include "ci/ciMethod.hpp" +#include "code/dependencies.hpp" +#include "compiler/compileLog.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "utilities/copy.hpp" #ifdef ASSERT diff --git a/hotspot/src/share/vm/code/dependencies.hpp b/hotspot/src/share/vm/code/dependencies.hpp index bd8547d79cc..770e7f743bd 100644 --- a/hotspot/src/share/vm/code/dependencies.hpp +++ b/hotspot/src/share/vm/code/dependencies.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CODE_DEPENDENCIES_HPP +#define SHARE_VM_CODE_DEPENDENCIES_HPP + +#include "ci/ciKlass.hpp" +#include "code/compressedStream.hpp" +#include "code/nmethod.hpp" +#include "utilities/growableArray.hpp" + //** Dependencies represent assertions (approximate invariants) within // the class hierarchy. An example is an assertion that a given // method is not overridden; another example is that a type has only @@ -550,3 +558,5 @@ class DepChange : public StackObj { void print(); }; + +#endif // SHARE_VM_CODE_DEPENDENCIES_HPP diff --git a/hotspot/src/share/vm/code/exceptionHandlerTable.cpp b/hotspot/src/share/vm/code/exceptionHandlerTable.cpp index 12cc9cdf7bf..9e259008287 100644 --- a/hotspot/src/share/vm/code/exceptionHandlerTable.cpp +++ b/hotspot/src/share/vm/code/exceptionHandlerTable.cpp @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_exceptionHandlerTable.cpp.incl" +#include "precompiled.hpp" +#include "code/exceptionHandlerTable.hpp" +#include "code/nmethod.hpp" +#include "memory/allocation.inline.hpp" void ExceptionHandlerTable::add_entry(HandlerTableEntry entry) { _nesting.check(); diff --git a/hotspot/src/share/vm/code/exceptionHandlerTable.hpp b/hotspot/src/share/vm/code/exceptionHandlerTable.hpp index 3c5332fbea3..20801c3f034 100644 --- a/hotspot/src/share/vm/code/exceptionHandlerTable.hpp +++ b/hotspot/src/share/vm/code/exceptionHandlerTable.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP +#define SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP + +#include "memory/allocation.hpp" +#include "oops/methodOop.hpp" + // A HandlerTableEntry describes an individual entry of a subtable // of ExceptionHandlerTable. An entry consists of a pair(bci, pco), // where bci is the exception handler bci, and pco is the pc offset @@ -154,3 +160,5 @@ public: void print(address base) const; void verify(nmethod *nm) const; }; + +#endif // SHARE_VM_CODE_EXCEPTIONHANDLERTABLE_HPP diff --git a/hotspot/src/share/vm/code/icBuffer.cpp b/hotspot/src/share/vm/code/icBuffer.cpp index d4b13d4e347..d36f9109efa 100644 --- a/hotspot/src/share/vm/code/icBuffer.cpp +++ b/hotspot/src/share/vm/code/icBuffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,30 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_icBuffer.cpp.incl" +#include "precompiled.hpp" +#include "code/compiledIC.hpp" +#include "code/icBuffer.hpp" +#include "code/nmethod.hpp" +#include "code/scopeDesc.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/resourceArea.hpp" +#include "memory/universe.inline.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.inline2.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +#endif DEF_STUB_INTERFACE(ICStub); diff --git a/hotspot/src/share/vm/code/icBuffer.hpp b/hotspot/src/share/vm/code/icBuffer.hpp index 02a4a0ebbf2..9ab7d9c621a 100644 --- a/hotspot/src/share/vm/code/icBuffer.hpp +++ b/hotspot/src/share/vm/code/icBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CODE_ICBUFFER_HPP +#define SHARE_VM_CODE_ICBUFFER_HPP + +#include "code/stubs.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.hpp" + // // For CompiledIC's: // @@ -126,3 +133,5 @@ class InlineCacheBuffer: public AllStatic { static address ic_destination_for(CompiledIC *ic); static oop cached_oop_for(CompiledIC *ic); }; + +#endif // SHARE_VM_CODE_ICBUFFER_HPP diff --git a/hotspot/src/share/vm/code/location.cpp b/hotspot/src/share/vm/code/location.cpp index 9374e08c707..605af19c7fc 100644 --- a/hotspot/src/share/vm/code/location.cpp +++ b/hotspot/src/share/vm/code/location.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_location.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfo.hpp" +#include "code/location.hpp" void Location::print_on(outputStream* st) const { if(type() == invalid) { diff --git a/hotspot/src/share/vm/code/location.hpp b/hotspot/src/share/vm/code/location.hpp index 18134adb651..86155b9e495 100644 --- a/hotspot/src/share/vm/code/location.hpp +++ b/hotspot/src/share/vm/code/location.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_CODE_LOCATION_HPP +#define SHARE_VM_CODE_LOCATION_HPP + +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" +#include "memory/allocation.hpp" + // A Location describes a concrete machine variable location // (such as integer or floating point register or a stack-held // variable). Used when generating debug-information for nmethods. @@ -113,3 +120,5 @@ class Location VALUE_OBJ_CLASS_SPEC { // check static bool legal_offset_in_bytes(int offset_in_bytes); }; + +#endif // SHARE_VM_CODE_LOCATION_HPP diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index f7a2b7ff0f0..089586bac66 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -22,8 +22,26 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_nmethod.cpp.incl" +#include "precompiled.hpp" +#include "code/codeCache.hpp" +#include "code/compiledIC.hpp" +#include "code/nmethod.hpp" +#include "code/scopeDesc.hpp" +#include "compiler/abstractCompiler.hpp" +#include "compiler/compileLog.hpp" +#include "compiler/compilerOracle.hpp" +#include "compiler/disassembler.hpp" +#include "interpreter/bytecode.hpp" +#include "oops/methodDataOop.hpp" +#include "prims/jvmtiRedefineClassesTrace.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/sweeper.hpp" +#include "utilities/dtrace.hpp" +#include "utilities/events.hpp" +#include "utilities/xmlstream.hpp" +#ifdef SHARK +#include "shark/sharkCompiler.hpp" +#endif #ifdef DTRACE_ENABLED diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp index 52a09c91029..bd6b4a562e4 100644 --- a/hotspot/src/share/vm/code/nmethod.hpp +++ b/hotspot/src/share/vm/code/nmethod.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_NMETHOD_HPP +#define SHARE_VM_CODE_NMETHOD_HPP + +#include "code/codeBlob.hpp" +#include "code/pcDesc.hpp" + // This class is used internally by nmethods, to cache // exception/pc/handler information. @@ -704,3 +710,5 @@ class nmethodLocker : public StackObj { lock_nmethod(_nm); } }; + +#endif // SHARE_VM_CODE_NMETHOD_HPP diff --git a/hotspot/src/share/vm/code/oopRecorder.cpp b/hotspot/src/share/vm/code/oopRecorder.cpp index 7688079b1f4..1381c0da06c 100644 --- a/hotspot/src/share/vm/code/oopRecorder.cpp +++ b/hotspot/src/share/vm/code/oopRecorder.cpp @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_oopRecorder.cpp.incl" +#include "precompiled.hpp" +#include "code/oopRecorder.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" #ifdef ASSERT int OopRecorder::_find_index_calls = 0; diff --git a/hotspot/src/share/vm/code/oopRecorder.hpp b/hotspot/src/share/vm/code/oopRecorder.hpp index fda4d290514..0322241fabe 100644 --- a/hotspot/src/share/vm/code/oopRecorder.hpp +++ b/hotspot/src/share/vm/code/oopRecorder.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_OOPRECORDER_HPP +#define SHARE_VM_CODE_OOPRECORDER_HPP + +#include "runtime/handles.hpp" +#include "utilities/growableArray.hpp" + // Recording and retrieval of oop relocations in compiled code. class CodeBlob; @@ -134,3 +140,5 @@ class OopRecorder : public ResourceObj { static int _find_index_calls, _hit_indexes, _missed_indexes; #endif }; + +#endif // SHARE_VM_CODE_OOPRECORDER_HPP diff --git a/hotspot/src/share/vm/code/pcDesc.cpp b/hotspot/src/share/vm/code/pcDesc.cpp index b8a9eb47543..7e217998d5c 100644 --- a/hotspot/src/share/vm/code/pcDesc.cpp +++ b/hotspot/src/share/vm/code/pcDesc.cpp @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_pcDesc.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfoRec.hpp" +#include "code/nmethod.hpp" +#include "code/pcDesc.hpp" +#include "code/scopeDesc.hpp" +#include "memory/resourceArea.hpp" PcDesc::PcDesc(int pc_offset, int scope_decode_offset, int obj_decode_offset) { assert(sizeof(PcDescFlags) <= 4, "occupies more than a word"); diff --git a/hotspot/src/share/vm/code/pcDesc.hpp b/hotspot/src/share/vm/code/pcDesc.hpp index 43184d481d8..99a6e4c8ef5 100644 --- a/hotspot/src/share/vm/code/pcDesc.hpp +++ b/hotspot/src/share/vm/code/pcDesc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CODE_PCDESC_HPP +#define SHARE_VM_CODE_PCDESC_HPP + +#include "memory/allocation.hpp" + // PcDescs map a physical PC (given as offset from start of nmethod) to // the corresponding source scope and byte code index. @@ -86,3 +91,5 @@ class PcDesc VALUE_OBJ_CLASS_SPEC { void print(nmethod* code); bool verify(nmethod* code); }; + +#endif // SHARE_VM_CODE_PCDESC_HPP diff --git a/hotspot/src/share/vm/code/relocInfo.cpp b/hotspot/src/share/vm/code/relocInfo.cpp index a21f34642e4..a397546d442 100644 --- a/hotspot/src/share/vm/code/relocInfo.cpp +++ b/hotspot/src/share/vm/code/relocInfo.cpp @@ -22,8 +22,25 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_relocInfo.cpp.incl" +#include "precompiled.hpp" +#include "code/compiledIC.hpp" +#include "code/nmethod.hpp" +#include "code/relocInfo.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "utilities/copy.hpp" +#ifdef TARGET_ARCH_x86 +# include "assembler_x86.inline.hpp" +# include "nativeInst_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "assembler_sparc.inline.hpp" +# include "nativeInst_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "assembler_zero.inline.hpp" +# include "nativeInst_zero.hpp" +#endif const RelocationHolder RelocationHolder::none; // its type is relocInfo::none diff --git a/hotspot/src/share/vm/code/relocInfo.hpp b/hotspot/src/share/vm/code/relocInfo.hpp index 116a097f395..c3c4468a71f 100644 --- a/hotspot/src/share/vm/code/relocInfo.hpp +++ b/hotspot/src/share/vm/code/relocInfo.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_CODE_RELOCINFO_HPP +#define SHARE_VM_CODE_RELOCINFO_HPP + +#include "memory/allocation.hpp" +#include "utilities/top.hpp" + // Types in this file: // relocInfo // One element of an array of halfwords encoding compressed relocations. @@ -415,7 +421,16 @@ class relocInfo VALUE_OBJ_CLASS_SPEC { static void remove_reloc_info_for_address(RelocIterator *itr, address pc, relocType old_type); // Machine dependent stuff - #include "incls/_relocInfo_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "relocInfo_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "relocInfo_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "relocInfo_zero.hpp" +#endif + protected: // Derived constant, based on format_width which is PD: @@ -1325,3 +1340,5 @@ class PatchingRelocIterator : public RelocIterator { ~PatchingRelocIterator() { postpass(); } }; + +#endif // SHARE_VM_CODE_RELOCINFO_HPP diff --git a/hotspot/src/share/vm/code/scopeDesc.cpp b/hotspot/src/share/vm/code/scopeDesc.cpp index 9eb1e888e38..b8c2e2d1f4d 100644 --- a/hotspot/src/share/vm/code/scopeDesc.cpp +++ b/hotspot/src/share/vm/code/scopeDesc.cpp @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_scopeDesc.cpp.incl" +#include "precompiled.hpp" +#include "code/debugInfoRec.hpp" +#include "code/pcDesc.hpp" +#include "code/scopeDesc.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" ScopeDesc::ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute, bool return_oop) { diff --git a/hotspot/src/share/vm/code/scopeDesc.hpp b/hotspot/src/share/vm/code/scopeDesc.hpp index 5bff5757d14..2129702eeb2 100644 --- a/hotspot/src/share/vm/code/scopeDesc.hpp +++ b/hotspot/src/share/vm/code/scopeDesc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_CODE_SCOPEDESC_HPP +#define SHARE_VM_CODE_SCOPEDESC_HPP + +#include "code/debugInfo.hpp" +#include "code/pcDesc.hpp" +#include "oops/methodOop.hpp" +#include "utilities/growableArray.hpp" + // SimpleScopeDesc is used when all you need to extract from // a given pc,nmethod pair is a methodOop and a bci. This is // quite a bit faster than allocating a full ScopeDesc, but @@ -125,3 +133,5 @@ class ScopeDesc : public ResourceObj { void print_value_on(outputStream* st) const; #endif }; + +#endif // SHARE_VM_CODE_SCOPEDESC_HPP diff --git a/hotspot/src/share/vm/code/stubs.cpp b/hotspot/src/share/vm/code/stubs.cpp index 7272f467334..124c0a64068 100644 --- a/hotspot/src/share/vm/code/stubs.cpp +++ b/hotspot/src/share/vm/code/stubs.cpp @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_stubs.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/stubs.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/mutexLocker.hpp" // Implementation of StubQueue diff --git a/hotspot/src/share/vm/code/stubs.hpp b/hotspot/src/share/vm/code/stubs.hpp index d231ba1e719..ed5380f6e04 100644 --- a/hotspot/src/share/vm/code/stubs.hpp +++ b/hotspot/src/share/vm/code/stubs.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_CODE_STUBS_HPP +#define SHARE_VM_CODE_STUBS_HPP + +#include "memory/allocation.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif + // The classes in this file provide a simple framework for the // management of little pieces of machine code - or stubs - // created on the fly and frequently discarded. In this frame- @@ -206,3 +220,5 @@ class StubQueue: public CHeapObj { void verify(); // verifies the stub queue void print(); // prints information about the stub queue }; + +#endif // SHARE_VM_CODE_STUBS_HPP diff --git a/hotspot/src/share/vm/code/vmreg.cpp b/hotspot/src/share/vm/code/vmreg.cpp index dd927bb9f8e..dd5945503b2 100644 --- a/hotspot/src/share/vm/code/vmreg.cpp +++ b/hotspot/src/share/vm/code/vmreg.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vmreg.cpp.incl" +#include "precompiled.hpp" +#include "asm/assembler.hpp" +#include "code/vmreg.hpp" // First VMReg value that could refer to a stack slot VMReg VMRegImpl::stack0 = (VMReg)(intptr_t)((ConcreteRegisterImpl::number_of_registers + 1) & ~1); diff --git a/hotspot/src/share/vm/code/vmreg.hpp b/hotspot/src/share/vm/code/vmreg.hpp index 6bd1fbd4ab5..1be8ea2f8da 100644 --- a/hotspot/src/share/vm/code/vmreg.hpp +++ b/hotspot/src/share/vm/code/vmreg.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,37 @@ * */ +#ifndef SHARE_VM_CODE_VMREG_HPP +#define SHARE_VM_CODE_VMREG_HPP + +#include "memory/allocation.hpp" +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "register_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "register_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "register_zero.hpp" +#endif +#ifdef COMPILER2 +#include "opto/adlcVMDeps.hpp" +#include "utilities/ostream.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "adfiles/adGlobals_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "adfiles/adGlobals_x86_64.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_sparc +# include "adfiles/adGlobals_sparc.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_zero +# include "adfiles/adGlobals_zero.hpp" +#endif +#endif + //------------------------------VMReg------------------------------------------ // The VM uses 'unwarped' stack slots; the compiler uses 'warped' stack slots. // Register numbers below VMRegImpl::stack0 are the same for both. Register @@ -124,7 +155,16 @@ public: static void set_regName(); -#include "incls/_vmreg_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "vmreg_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "vmreg_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "vmreg_zero.hpp" +#endif + }; @@ -181,3 +221,5 @@ public: VMRegPair(VMReg f) { _second = VMRegImpl::Bad(); _first = f; } VMRegPair() { _second = VMRegImpl::Bad(); _first = VMRegImpl::Bad(); } }; + +#endif // SHARE_VM_CODE_VMREG_HPP diff --git a/hotspot/src/share/vm/code/vtableStubs.cpp b/hotspot/src/share/vm/code/vtableStubs.cpp index e85a8732ff5..ec2881314cf 100644 --- a/hotspot/src/share/vm/code/vtableStubs.cpp +++ b/hotspot/src/share/vm/code/vtableStubs.cpp @@ -22,8 +22,22 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vtableStubs.cpp.incl" +#include "precompiled.hpp" +#include "code/vtableStubs.hpp" +#include "compiler/disassembler.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/klassVtable.hpp" +#include "oops/oop.inline.hpp" +#include "prims/forte.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/sharedRuntime.hpp" +#ifdef COMPILER2 +#include "opto/matcher.hpp" +#endif // ----------------------------------------------------------------------------------------- // Implementation of VtableStub diff --git a/hotspot/src/share/vm/code/vtableStubs.hpp b/hotspot/src/share/vm/code/vtableStubs.hpp index e74582f98bf..6b2b79596e2 100644 --- a/hotspot/src/share/vm/code/vtableStubs.hpp +++ b/hotspot/src/share/vm/code/vtableStubs.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_CODE_VTABLESTUBS_HPP +#define SHARE_VM_CODE_VTABLESTUBS_HPP + +#include "memory/allocation.hpp" + // A VtableStub holds an individual code stub for a pair (vtable index, #args) for either itables or vtables // There's a one-to-one relationship between a VtableStub and such a pair. @@ -121,3 +126,5 @@ class VtableStubs : AllStatic { static int number_of_vtable_stubs() { return _number_of_vtable_stubs; } static void initialize(); }; + +#endif // SHARE_VM_CODE_VTABLESTUBS_HPP diff --git a/hotspot/src/share/vm/compiler/abstractCompiler.cpp b/hotspot/src/share/vm/compiler/abstractCompiler.cpp index 893ad7e3ae5..5594d1afa4a 100644 --- a/hotspot/src/share/vm/compiler/abstractCompiler.cpp +++ b/hotspot/src/share/vm/compiler/abstractCompiler.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,10 @@ // questions. // -#include "incls/_precompiled.incl" -#include "incls/_abstractCompiler.cpp.incl" +#include "precompiled.hpp" +#include "compiler/abstractCompiler.hpp" +#include "runtime/mutexLocker.hpp" void AbstractCompiler::initialize_runtimes(initializer f, volatile int* state) { if (*state != initialized) { diff --git a/hotspot/src/share/vm/compiler/abstractCompiler.hpp b/hotspot/src/share/vm/compiler/abstractCompiler.hpp index 720ded6ebe9..380dfe7bda0 100644 --- a/hotspot/src/share/vm/compiler/abstractCompiler.hpp +++ b/hotspot/src/share/vm/compiler/abstractCompiler.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP +#define SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP + +#include "ci/compilerInterface.hpp" + typedef void (*initializer)(void); class AbstractCompiler : public CHeapObj { @@ -88,3 +93,5 @@ class AbstractCompiler : public CHeapObj { ShouldNotReachHere(); } }; + +#endif // SHARE_VM_COMPILER_ABSTRACTCOMPILER_HPP diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 7d8a69f24ac..7c432b42241 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -22,8 +22,37 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compileBroker.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeCache.hpp" +#include "compiler/compileBroker.hpp" +#include "compiler/compileLog.hpp" +#include "compiler/compilerOracle.hpp" +#include "interpreter/linkResolver.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "prims/nativeLookup.hpp" +#include "runtime/arguments.hpp" +#include "runtime/compilationPolicy.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/os.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/sweeper.hpp" +#include "utilities/dtrace.hpp" +#ifdef COMPILER1 +#include "c1/c1_Compiler.hpp" +#endif +#ifdef COMPILER2 +#include "opto/c2compiler.hpp" +#endif +#ifdef SHARK +#include "shark/sharkCompiler.hpp" +#endif #ifdef DTRACE_ENABLED diff --git a/hotspot/src/share/vm/compiler/compileBroker.hpp b/hotspot/src/share/vm/compiler/compileBroker.hpp index e0845fb89b0..515bfb4052e 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.hpp +++ b/hotspot/src/share/vm/compiler/compileBroker.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_COMPILER_COMPILEBROKER_HPP +#define SHARE_VM_COMPILER_COMPILEBROKER_HPP + +#include "ci/compilerInterface.hpp" +#include "compiler/abstractCompiler.hpp" +#include "runtime/perfData.hpp" + class nmethod; class nmethodLocker; @@ -380,3 +387,5 @@ class CompileBroker: AllStatic { static void print_compiler_threads_on(outputStream* st); }; + +#endif // SHARE_VM_COMPILER_COMPILEBROKER_HPP diff --git a/hotspot/src/share/vm/compiler/compileLog.cpp b/hotspot/src/share/vm/compiler/compileLog.cpp index 0aae000f617..a306117f965 100644 --- a/hotspot/src/share/vm/compiler/compileLog.cpp +++ b/hotspot/src/share/vm/compiler/compileLog.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compileLog.cpp.incl" +#include "precompiled.hpp" +#include "ci/ciMethod.hpp" +#include "compiler/compileLog.hpp" +#include "memory/allocation.inline.hpp" +#include "oops/methodOop.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" CompileLog* CompileLog::_first = NULL; diff --git a/hotspot/src/share/vm/compiler/compileLog.hpp b/hotspot/src/share/vm/compiler/compileLog.hpp index 5d1ed80e4cb..8e7b4512289 100644 --- a/hotspot/src/share/vm/compiler/compileLog.hpp +++ b/hotspot/src/share/vm/compiler/compileLog.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_COMPILER_COMPILELOG_HPP +#define SHARE_VM_COMPILER_COMPILELOG_HPP + +#include "utilities/xmlstream.hpp" + class ciObject; class ciSymbol; @@ -75,3 +80,5 @@ class CompileLog : public xmlStream { static void finish_log(outputStream* out); static void finish_log_on_error(outputStream* out, char *buf, int buflen); }; + +#endif // SHARE_VM_COMPILER_COMPILELOG_HPP diff --git a/hotspot/src/share/vm/compiler/compilerOracle.cpp b/hotspot/src/share/vm/compiler/compilerOracle.cpp index 888f188de60..3bc679fdd92 100644 --- a/hotspot/src/share/vm/compiler/compilerOracle.cpp +++ b/hotspot/src/share/vm/compiler/compilerOracle.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_compilerOracle.cpp.incl" +#include "precompiled.hpp" +#include "compiler/compilerOracle.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/oopFactory.hpp" +#include "memory/resourceArea.hpp" +#include "oops/klass.hpp" +#include "oops/methodOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/symbolOop.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/jniHandles.hpp" class MethodMatcher : public CHeapObj { public: diff --git a/hotspot/src/share/vm/compiler/compilerOracle.hpp b/hotspot/src/share/vm/compiler/compilerOracle.hpp index 2d79230b104..fd5b0fbcc19 100644 --- a/hotspot/src/share/vm/compiler/compilerOracle.hpp +++ b/hotspot/src/share/vm/compiler/compilerOracle.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_COMPILER_COMPILERORACLE_HPP +#define SHARE_VM_COMPILER_COMPILERORACLE_HPP + +#include "memory/allocation.hpp" +#include "oops/oopsHierarchy.hpp" + // CompilerOracle is an interface for turning on and off compilation // for some methods @@ -66,3 +72,5 @@ class CompilerOracle : AllStatic { static void append_comment_to_file(const char* message); static void append_exclude_to_file(methodHandle method); }; + +#endif // SHARE_VM_COMPILER_COMPILERORACLE_HPP diff --git a/hotspot/src/share/vm/compiler/disassembler.cpp b/hotspot/src/share/vm/compiler/disassembler.cpp index 175d874da8c..b63b5564908 100644 --- a/hotspot/src/share/vm/compiler/disassembler.cpp +++ b/hotspot/src/share/vm/compiler/disassembler.cpp @@ -22,8 +22,29 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_disassembler.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "code/codeCache.hpp" +#include "compiler/disassembler.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/hpi.hpp" +#include "runtime/stubCodeGenerator.hpp" +#include "runtime/stubRoutines.hpp" +#ifdef TARGET_ARCH_x86 +# include "depChecker_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "depChecker_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "depChecker_zero.hpp" +#endif +#ifdef SHARK +#include "shark/sharkEntry.hpp" +#endif void* Disassembler::_library = NULL; bool Disassembler::_tried_to_load_library = false; diff --git a/hotspot/src/share/vm/compiler/disassembler.hpp b/hotspot/src/share/vm/compiler/disassembler.hpp index faee0401a55..f954109228a 100644 --- a/hotspot/src/share/vm/compiler/disassembler.hpp +++ b/hotspot/src/share/vm/compiler/disassembler.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,20 @@ * */ +#ifndef SHARE_VM_COMPILER_DISASSEMBLER_HPP +#define SHARE_VM_COMPILER_DISASSEMBLER_HPP + +#include "runtime/globals.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif + class decode_env; // The disassembler prints out assembly code annotated @@ -47,7 +61,16 @@ class Disassembler { static bool load_library(); // Machine dependent stuff - #include "incls/_disassembler_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "disassembler_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "disassembler_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "disassembler_zero.hpp" +#endif + public: static bool can_decode() { @@ -57,3 +80,5 @@ class Disassembler { static void decode(nmethod* nm, outputStream* st = NULL); static void decode(address begin, address end, outputStream* st = NULL); }; + +#endif // SHARE_VM_COMPILER_DISASSEMBLER_HPP diff --git a/hotspot/src/share/vm/compiler/methodLiveness.cpp b/hotspot/src/share/vm/compiler/methodLiveness.cpp index f9f8a3d0df0..42450ec10ea 100644 --- a/hotspot/src/share/vm/compiler/methodLiveness.cpp +++ b/hotspot/src/share/vm/compiler/methodLiveness.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#include "precompiled.hpp" +#include "ci/ciMethod.hpp" +#include "ci/ciMethodBlocks.hpp" +#include "ci/ciStreams.hpp" +#include "compiler/methodLiveness.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.inline.hpp" +#include "utilities/bitMap.inline.hpp" + // The MethodLiveness class performs a simple liveness analysis on a method // in order to decide which locals are live (that is, will be used again) at // a particular bytecode index (bci). @@ -60,9 +70,6 @@ // analysis. -# include "incls/_precompiled.incl" -# include "incls/_methodLiveness.cpp.incl" - //-------------------------------------------------------------------------- // The BitCounter class is used for counting the number of bits set in // some BitMap. It is only used when collecting liveness statistics. diff --git a/hotspot/src/share/vm/compiler/methodLiveness.hpp b/hotspot/src/share/vm/compiler/methodLiveness.hpp index f7785119742..0a63d2a19dd 100644 --- a/hotspot/src/share/vm/compiler/methodLiveness.hpp +++ b/hotspot/src/share/vm/compiler/methodLiveness.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_COMPILER_METHODLIVENESS_HPP +#define SHARE_VM_COMPILER_METHODLIVENESS_HPP + +#include "utilities/bitMap.hpp" +#include "utilities/growableArray.hpp" + class ciMethod; class MethodLivenessResult : public BitMap { @@ -269,3 +275,5 @@ class MethodLiveness : public ResourceObj { static void print_times() PRODUCT_RETURN; }; + +#endif // SHARE_VM_COMPILER_METHODLIVENESS_HPP diff --git a/hotspot/src/share/vm/compiler/oopMap.cpp b/hotspot/src/share/vm/compiler/oopMap.cpp index cb8e69690a9..5edd26a4440 100644 --- a/hotspot/src/share/vm/compiler/oopMap.cpp +++ b/hotspot/src/share/vm/compiler/oopMap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_oopMap.cpp.incl" +#include "precompiled.hpp" +#include "code/codeBlob.hpp" +#include "code/codeCache.hpp" +#include "code/nmethod.hpp" +#include "code/scopeDesc.hpp" +#include "compiler/oopMap.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/signature.hpp" +#ifdef COMPILER1 +#include "c1/c1_Defs.hpp" +#endif // OopMapStream diff --git a/hotspot/src/share/vm/compiler/oopMap.hpp b/hotspot/src/share/vm/compiler/oopMap.hpp index c179d2b34ff..0a73fc5c6bc 100644 --- a/hotspot/src/share/vm/compiler/oopMap.hpp +++ b/hotspot/src/share/vm/compiler/oopMap.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_COMPILER_OOPMAP_HPP +#define SHARE_VM_COMPILER_OOPMAP_HPP + +#include "code/compressedStream.hpp" +#include "code/vmreg.hpp" +#include "memory/allocation.hpp" +#include "utilities/growableArray.hpp" + // Interface for generating the frame map for compiled code. A frame map // describes for a specific pc whether each register and frame stack slot is: // Oop - A GC root for current frame @@ -315,3 +323,5 @@ class DerivedPointerTableDeactivate: public StackObj { } }; #endif // COMPILER2 + +#endif // SHARE_VM_COMPILER_OOPMAP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp index 5455523a96e..63afa40defe 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_binaryTreeDictionary.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp" +#include "gc_implementation/shared/allocationStats.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/space.inline.hpp" +#include "runtime/globals.hpp" +#include "utilities/ostream.hpp" //////////////////////////////////////////////////////////////////////////////// // A binary tree based search structure for free blocks. diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp index 05c7f90dca3..f06f8d38548 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_BINARYTREEDICTIONARY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_BINARYTREEDICTIONARY_HPP + +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/freeList.hpp" + /* * A binary tree based search structure for free blocks. * This is currently used in the Concurrent Mark&Sweep implementation. @@ -286,3 +292,5 @@ class BinaryTreeDictionary: public FreeBlockDictionary { void verify() const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_BINARYTREEDICTIONARY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp index e93e4250974..5bee77ef239 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,22 @@ * questions. * */ -#include "incls/_precompiled.incl" -#include "incls/_cmsAdaptiveSizePolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "memory/defNewGeneration.hpp" +#include "memory/genCollectedHeap.hpp" +#include "runtime/thread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif elapsedTimer CMSAdaptiveSizePolicy::_concurrent_timer; elapsedTimer CMSAdaptiveSizePolicy::_STW_timer; diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp index 9c4ac46c695..ec418e689b5 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSADAPTIVESIZEPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSADAPTIVESIZEPOLICY_HPP + +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "runtime/timer.hpp" + // This class keeps statistical information and computes the // size of the heap for the concurrent mark sweep collector. // @@ -467,3 +473,5 @@ class CMSAdaptiveSizePolicy : public AdaptiveSizePolicy { // Printing support virtual bool print_adaptive_size_policy_on(outputStream* st) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSADAPTIVESIZEPOLICY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp index 96388d07be9..cbe5953a365 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.cpp @@ -22,8 +22,34 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cmsCollectorPolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "memory/cardTableRS.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/generationSpec.hpp" +#include "memory/space.hpp" +#include "memory/universe.hpp" +#include "runtime/arguments.hpp" +#include "runtime/globals_extension.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif // // ConcurrentMarkSweepPolicy methods diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp index 28a7980a7d6..1483bca13eb 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSCOLLECTORPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSCOLLECTORPOLICY_HPP + +#include "memory/collectorPolicy.hpp" + class ConcurrentMarkSweepPolicy : public TwoGenerationCollectorPolicy { protected: void initialize_generations(); @@ -55,3 +60,5 @@ class ASConcurrentMarkSweepPolicy : public ConcurrentMarkSweepPolicy { return CollectorPolicy::ASConcurrentMarkSweepPolicyKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSCOLLECTORPOLICY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp index 08b24387e7a..8e633b65f15 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cmsGCAdaptivePolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "memory/resourceArea.hpp" CMSGCAdaptivePolicyCounters::CMSGCAdaptivePolicyCounters(const char* name_arg, int collectors, diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp index 0d33c63b356..3fe7d136f23 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSGCADAPTIVEPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSGCADAPTIVEPOLICYCOUNTERS_HPP + +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcAdaptivePolicyCounters.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "runtime/perfData.hpp" + // CMSGCAdaptivePolicyCounters is a holder class for performance counters // that track the data and decisions for the ergonomics policy for the // concurrent mark sweep collector @@ -298,3 +306,5 @@ class CMSGCAdaptivePolicyCounters : public GCAdaptivePolicyCounters { return GCPolicyCounters::CMSGCAdaptivePolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSGCADAPTIVEPOLICYCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp index 04f0a565753..b6243b73724 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cmsLockVerifier.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "runtime/vmThread.hpp" ///////////// Locking verification specific to CMS ////////////// // Much like "assert_lock_strong()", except that it relaxes the diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp index 605ec2a041c..632ecc2636a 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSLOCKVERIFIER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSLOCKVERIFIER_HPP + +#include "runtime/mutex.hpp" + ///////////// Locking verification specific to CMS ////////////// // Much like "assert_lock_strong()", except // that it relaxes the assertion somewhat for the parallel GC case, where @@ -38,3 +43,5 @@ class CMSLockVerifier: AllStatic { assert_locked(lock, NULL); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSLOCKVERIFIER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp index 8af73e2ea81..1223fa8872b 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_HPP + +#include "memory/genOopClosures.hpp" + ///////////////////////////////////////////////////////////////// // Closures used by ConcurrentMarkSweepGeneration's collector ///////////////////////////////////////////////////////////////// @@ -427,3 +432,5 @@ class CMSParKeepAliveClosure: public Par_KlassRememberingOopClosure { inline void do_oop_nv(oop* p) { CMSParKeepAliveClosure::do_oop_work(p); } inline void do_oop_nv(narrowOop* p) { CMSParKeepAliveClosure::do_oop_work(p); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp index 9179ff7b89e..a66c5cb24d8 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_INLINE_HPP + +#include "gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" + // Trim our work_queue so its length is below max at return inline void Par_MarkRefsIntoAndScanClosure::trim_queue(uint max) { while (_work_queue->size() > max) { @@ -74,3 +80,5 @@ inline void PushOrMarkClosure::do_yield_check() { inline void Par_PushOrMarkClosure::do_yield_check() { _parent->do_yield_check(); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSOOPCLOSURES_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp index f04b8a46772..bdcbb467c8b 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.cpp @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_cmsPermGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsPermGen.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/shared/cSpaceCounters.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/blockOffsetTable.inline.hpp" +#include "memory/compactPermGen.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/generation.inline.hpp" +#include "memory/permGen.hpp" +#include "memory/universe.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" CMSPermGen::CMSPermGen(ReservedSpace rs, size_t initial_byte_size, CardTableRS* ct, diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp index fd675623ea8..6d464f7170d 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsPermGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSPERMGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSPERMGEN_HPP + +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "memory/permGen.hpp" + class CardTableRS; // fwd decl class ConcurrentMarkSweepGeneration; @@ -75,3 +81,5 @@ public: bool must_be_youngest() const { return false; } bool must_be_oldest() const { return false; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CMSPERMGEN_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp index 183d127e321..953456f5ca2 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp @@ -22,8 +22,25 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_compactibleFreeListSpace.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/shared/liveRange.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/blockOffsetTable.inline.hpp" +#include "memory/resourceArea.hpp" +#include "memory/universe.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/globals.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/copy.hpp" ///////////////////////////////////////////////////////////////////////// //// CompactibleFreeListSpace diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp index 6d67e941161..f00f6b2926b 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_COMPACTIBLEFREELISTSPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_COMPACTIBLEFREELISTSPACE_HPP + +#include "gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/freeList.hpp" +#include "gc_implementation/concurrentMarkSweep/promotionInfo.hpp" +#include "memory/blockOffsetTable.inline.hpp" +#include "memory/space.hpp" + // Classes in support of keeping track of promotions into a non-Contiguous // space, in this case a CompactibleFreeListSpace. @@ -646,3 +655,5 @@ size_t PromotionInfo::refillSize() const { * CMSSpoolBlockSize); return CompactibleFreeListSpace::adjustObjectSize(sz); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_COMPACTIBLEFREELISTSPACE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index ceb7ad5dfd4..8b290a31ccc 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -22,8 +22,39 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_concurrentMarkSweepGeneration.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsCollectorPolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsOopClosures.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "memory/cardTableRS.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/genMarkSweep.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/iterator.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/globals_extension.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#include "services/memoryService.hpp" +#include "services/runtimeService.hpp" // statics CMSCollector* ConcurrentMarkSweepGeneration::_collector = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp index dce44e39729..118380ddd5d 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp @@ -22,6 +22,22 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_HPP + +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "gc_implementation/shared/gSpaceCounters.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/generation.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/virtualspace.hpp" +#include "services/memoryService.hpp" +#include "utilities/bitMap.inline.hpp" +#include "utilities/stack.inline.hpp" +#include "utilities/taskqueue.hpp" +#include "utilities/yieldingWorkgroup.hpp" + // ConcurrentMarkSweepGeneration is in support of a concurrent // mark-sweep old generation in the Detlefs-Printezis--Boehm-Demers-Schenker // style. We assume, for now, that this generation is always the @@ -1882,3 +1898,5 @@ class TraceCMSMemoryManagerStats : public TraceMemoryManagerStats { TraceCMSMemoryManagerStats(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp index 19acc1b9307..bd883f2e622 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP + +#include "gc_implementation/concurrentMarkSweep/cmsLockVerifier.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "memory/defNewGeneration.hpp" + inline void CMSBitMap::clear_all() { assert_locked(); // CMS bitmaps are usually cover large memory regions @@ -505,3 +515,5 @@ inline void ModUnionClosurePar::do_MemRegion(MemRegion mr) { CardTableModRefBS::card_size /* bytes */)); _t->par_mark_range(mr2); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp index f9823af67d9..c69af2c14be 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp @@ -22,8 +22,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_concurrentMarkSweepThread.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "memory/genCollectedHeap.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/os.hpp" +#include "runtime/vmThread.hpp" // ======= Concurrent Mark Sweep Thread ======== diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp index 1390b20a1da..f47901d361c 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp @@ -22,6 +22,21 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPTHREAD_HPP + +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/shared/concurrentGCThread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif + class ConcurrentMarkSweepGeneration; class CMSCollector; @@ -251,3 +266,5 @@ class CMSLoopCountWarn: public StackObj { } } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_CONCURRENTMARKSWEEPTHREAD_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp index c03423d0507..1c1b3ffe5bb 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_freeBlockDictionary.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif #ifndef PRODUCT Mutex* FreeBlockDictionary::par_lock() const { diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp index a3ec74e314f..538662028df 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREEBLOCKDICTIONARY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREEBLOCKDICTIONARY_HPP + +#include "gc_implementation/concurrentMarkSweep/freeChunk.hpp" +#include "memory/allocation.hpp" +#include "memory/memRegion.hpp" +#include "runtime/mutex.hpp" +#include "utilities/debug.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/ostream.hpp" + // A FreeBlockDictionary is an abstract superclass that will allow // a number of alternative implementations in the future. class FreeBlockDictionary: public CHeapObj { @@ -88,3 +99,5 @@ class FreeBlockDictionary: public CHeapObj { void set_par_lock(Mutex* lock) PRODUCT_RETURN; void verify_par_locked() const PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREEBLOCKDICTIONARY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp index af5ec88d02d..84702b6400f 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_freeChunk.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "utilities/copy.hpp" #ifndef PRODUCT diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp index 760fabf434e..e1ac702a22c 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREECHUNK_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREECHUNK_HPP + +#include "memory/allocation.hpp" +#include "memory/memRegion.hpp" +#include "oops/markOop.hpp" +#include "runtime/mutex.hpp" +#include "utilities/debug.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/ostream.hpp" + // // Free block maintenance for Concurrent Mark Sweep Generation // @@ -141,3 +152,5 @@ class FreeChunk VALUE_OBJ_CLASS_SPEC { extern size_t MinChunkSize; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREECHUNK_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp index eebd8bb332f..4956475428e 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_freeList.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp" +#include "gc_implementation/concurrentMarkSweep/freeList.hpp" +#include "memory/sharedHeap.hpp" +#include "runtime/globals.hpp" +#include "runtime/mutex.hpp" +#include "runtime/vmThread.hpp" // Free list. A FreeList is used to access a linked list of chunks // of space in the heap. The head and tail are maintained so that diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp index fddc42110bd..44afe8e56a8 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREELIST_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREELIST_HPP + +#include "gc_implementation/shared/allocationStats.hpp" + class CompactibleFreeListSpace; // A class for maintaining a free list of FreeChunk's. The FreeList @@ -326,3 +331,5 @@ class FreeList VALUE_OBJ_CLASS_SPEC { static void print_labels_on(outputStream* st, const char* c); void print_on(outputStream* st, const char* c = NULL) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_FREELIST_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp index fda8624babd..6fa109a53b3 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.cpp @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_promotionInfo.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" +#include "gc_implementation/concurrentMarkSweep/promotionInfo.hpp" +#include "oops/markOop.inline.hpp" +#include "oops/oop.inline.hpp" ///////////////////////////////////////////////////////////////////////// //// PromotionInfo diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp index 99051934c36..463c33bb889 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/promotionInfo.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_PROMOTIONINFO_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_PROMOTIONINFO_HPP + +#include "gc_implementation/concurrentMarkSweep/freeChunk.hpp" +#include "memory/allocation.hpp" + // Forward declarations class CompactibleFreeListSpace; @@ -204,3 +210,5 @@ class PromotionInfo VALUE_OBJ_CLASS_SPEC { void print_statistics(uint worker_id) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_PROMOTIONINFO_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp index bf5188ba74c..12c86b44d02 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,15 @@ * questions. * */ -# include "incls/_precompiled.incl" -# include "incls/_vmCMSOperations.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.hpp" +#include "gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "memory/gcLocker.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "utilities/dtrace.hpp" HS_DTRACE_PROBE_DECL(hs_private, cms__initmark__begin); HS_DTRACE_PROBE_DECL(hs_private, cms__initmark__end); diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp index d76e600343c..8c2fc490a2f 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMCMSOPERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMCMSOPERATIONS_HPP + +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "gc_interface/gcCause.hpp" +#include "runtime/vm_operations.hpp" + // The VM_CMS_Operation is slightly different from // a VM_GC_Operation -- and would not have subclassed easily // to VM_GC_Operation without several changes to VM_GC_Operation. @@ -136,3 +144,5 @@ class VM_GenCollectFullConcurrent: public VM_GC_Operation { virtual bool is_cheap_allocated() const { return false; } virtual bool evaluate_at_safepoint() const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMCMSOPERATIONS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp index 1b6d74b5825..34460c19d87 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP + #define VM_STRUCTS_CMS(nonstatic_field, \ volatile_nonstatic_field, \ static_field) \ @@ -78,3 +81,5 @@ #define VM_INT_CONSTANTS_CMS(declare_constant) \ declare_constant(Generation::ConcurrentMarkSweep) \ declare_constant(PermGen::ConcurrentMarkSweep) + +#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp b/hotspot/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp index 8d259aa78a1..1ceca1734c5 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP + +#include "memory/genOopClosures.hpp" +#include "memory/generation.hpp" +#include "runtime/os.hpp" +#include "utilities/taskqueue.hpp" + // A BufferingOops closure tries to separate out the cost of finding roots // from the cost of applying closures to them. It maintains an array of // ref-containing locations. Until the array is full, applying the closure @@ -201,3 +209,5 @@ public: _hr_curr(_hr_buffer), _closure_app_seconds(0.0) { } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp index 1cbb86c0371..585ff2d3468 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_collectionSetChooser.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/collectionSetChooser.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "memory/space.inline.hpp" CSetChooserCache::CSetChooserCache() { for (int i = 0; i < CacheLength; ++i) diff --git a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp index 5ba54e6f801..04ceba27921 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/collectionSetChooser.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP + +#include "gc_implementation/g1/heapRegion.hpp" +#include "utilities/growableArray.hpp" + // We need to sort heap regions by collection desirability. class CSetChooserCache VALUE_OBJ_CLASS_SPEC { @@ -136,3 +142,5 @@ public: #endif }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_COLLECTIONSETCHOOSER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp index e144aa7cc86..d26530323d2 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentG1Refine.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/space.inline.hpp" +#include "runtime/atomic.hpp" +#include "utilities/copy.hpp" // Possible sizes for the card counts cache: odd primes that roughly double in size. // (See jvmtiTagMap.cpp). diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp index f5c3653f888..50ea5e9e6f6 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINE_HPP + +#include "memory/allocation.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "runtime/thread.hpp" +#include "utilities/globalDefinitions.hpp" + // Forward decl class ConcurrentG1RefineThread; class G1RemSet; @@ -223,3 +231,5 @@ class ConcurrentG1Refine: public CHeapObj { int thread_threshold_step() const { return _thread_threshold_step; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp index 109cad554c0..2e87ca700e9 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.cpp @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentG1RefineThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/mutexLocker.hpp" ConcurrentG1RefineThread:: ConcurrentG1RefineThread(ConcurrentG1Refine* cg1r, ConcurrentG1RefineThread *next, diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp index 46cdbd1224f..971fe2f91cc 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1RefineThread.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP + +#include "gc_implementation/shared/concurrentGCThread.hpp" + // Forward Decl. class ConcurrentG1Refine; @@ -84,3 +89,5 @@ public: // shutdown void stop(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTG1REFINETHREAD_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp index ec9c9da4f81..4b7e15935d5 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentMark.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" // // CMS Bit Map Wrapper diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp index 3bc06d0b1cf..7f13483b72e 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP + +#include "gc_implementation/g1/heapRegion.hpp" +#include "utilities/taskqueue.hpp" + class G1CollectedHeap; class CMTask; typedef GenericTaskQueue CMTaskQueue; @@ -1120,3 +1126,5 @@ public: void increase_objs_found_on_bitmap() { ++_objs_found_on_bitmap; } #endif // _MARKING_STATS_ }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARK_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp index f2f8ed9de01..2aa9ab23982 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentMarkThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1MMUTracker.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/vmThread.hpp" // ======= Concurrent Mark Thread ======== diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp index 92361551c5c..84bdb590ea2 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_HPP + +#include "gc_implementation/shared/concurrentGCThread.hpp" + // The Concurrent Mark GC Thread (could be several in the future). // This is copied from the Concurrent Mark Sweep GC Thread // Still under construction. @@ -93,3 +98,5 @@ class ConcurrentMarkThread: public ConcurrentGCThread { // shutdown void stop(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp index b23b6f7f93b..320daf9b8d3 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_INLINE_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/concurrentMarkThread.hpp" + // Total virtual time so far. inline double ConcurrentMarkThread::vtime_accum() { return _vtime_accum + _cm->all_task_accum_vtime(); @@ -31,3 +37,5 @@ inline double ConcurrentMarkThread::vtime_accum() { inline double ConcurrentMarkThread::vtime_mark_accum() { return _vtime_mark_accum + _cm->all_task_accum_vtime(); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTMARKTHREAD_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp index 323fc82999e..425d67fcd56 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_concurrentZFThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentZFThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "memory/space.inline.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/copy.hpp" // ======= Concurrent Zero-Fill Thread ======== diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp index 770aa09171c..34731c96242 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentZFThread.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTZFTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTZFTHREAD_HPP + +#include "gc_implementation/shared/concurrentGCThread.hpp" + // The Concurrent ZF Thread. Performs concurrent zero-filling. class ConcurrentZFThread: public ConcurrentGCThread { @@ -82,3 +87,5 @@ class ConcurrentZFThread: public ConcurrentGCThread { static void print_summary_info(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_CONCURRENTZFTHREAD_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp index c8100c4770e..2a7f5138049 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp @@ -22,8 +22,23 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_dirtyCardQueue.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/dirtyCardQueue.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "runtime/atomic.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/thread.hpp" +#include "utilities/workgroup.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif bool DirtyCardQueue::apply_closure(CardTableEntryClosure* cl, bool consume, diff --git a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp index 9f6d95f00a2..88d47dbe16b 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP + +#include "gc_implementation/g1/ptrQueue.hpp" +#include "memory/allocation.hpp" + class FreeIdSet; // A closure class for processing card table entries. Note that we don't @@ -168,3 +174,5 @@ public: } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp index 8eb6607ae14..270e1fa3d62 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1BlockOffsetTable.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "memory/space.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" ////////////////////////////////////////////////////////////////////// // G1BlockOffsetSharedArray diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp index 28c29502c7c..82568dddd8c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_HPP + +#include "memory/memRegion.hpp" +#include "runtime/virtualspace.hpp" +#include "utilities/globalDefinitions.hpp" + // The CollectedHeap type requires subtypes to implement a method // "block_start". For some subtypes, notably generational // systems using card-table-based write barriers, the efficiency of this @@ -489,3 +496,5 @@ class G1BlockOffsetArrayContigSpace: public G1BlockOffsetArray { virtual void set_for_starts_humongous(HeapWord* new_end); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp index 08ede99bfb4..e246e93b1c2 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_INLINE_HPP + +#include "gc_implementation/g1/g1BlockOffsetTable.hpp" +#include "memory/space.hpp" + inline HeapWord* G1BlockOffsetTable::block_start(const void* addr) { if (addr >= _bottom && addr < _end) { return block_start_unsafe(addr); @@ -151,3 +157,5 @@ inline void G1BlockOffsetArray::freed(HeapWord* blk_start, HeapWord* blk_end) { inline void G1BlockOffsetArray::freed(HeapWord* blk, size_t size) { freed(blk, blk + size); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1BLOCKOFFSETTABLE_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index b75320981fb..dae8c98b180 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -22,8 +22,29 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1CollectedHeap.cpp.incl" +#include "precompiled.hpp" +#include "code/icBuffer.hpp" +#include "gc_implementation/g1/bufferingOopClosure.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/concurrentZFThread.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1MarkSweep.hpp" +#include "gc_implementation/g1/g1OopClosures.inline.hpp" +#include "gc_implementation/g1/g1RemSet.inline.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/generationSpec.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "runtime/aprofiler.hpp" +#include "runtime/vmThread.hpp" size_t G1CollectedHeap::_humongous_object_threshold_in_words = 0; diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index b97d8710a64..84e846b309d 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "memory/barrierSet.hpp" +#include "memory/memRegion.hpp" +#include "memory/sharedHeap.hpp" + // A "G1CollectedHeap" is an implementation of a java heap for HotSpot. // It uses the "Garbage First" heap organization and algorithm, which // may combine concurrent marking with parallel, incremental compaction of @@ -1797,3 +1808,5 @@ public: public: void trim_queue(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp index c4eb0388417..1cc1ada578c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/g1CollectedHeap.hpp" +#include "gc_implementation/g1/heapRegionSeq.hpp" +#include "utilities/taskqueue.hpp" + // Inline functions for G1CollectedHeap inline HeapRegion* @@ -94,3 +102,5 @@ inline bool G1CollectedHeap::isMarkedPrev(oop obj) const { inline bool G1CollectedHeap::isMarkedNext(oop obj) const { return _cm->nextMarkBitMap()->isMarked((HeapWord *)obj); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp index 896dba17e03..52b0411c21a 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp @@ -22,8 +22,18 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1CollectorPolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/concurrentMarkThread.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "runtime/arguments.hpp" +#include "runtime/java.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/debug.hpp" #define PREDICTIONS_VERBOSE 0 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp index 33ee6ebc446..7e7111e88af 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP + +#include "gc_implementation/g1/collectionSetChooser.hpp" +#include "gc_implementation/g1/g1MMUTracker.hpp" +#include "memory/collectorPolicy.hpp" + // A G1CollectorPolicy makes policy decisions that determine the // characteristics of the collector. Examples include: // * choice of collection set. @@ -1287,3 +1294,5 @@ inline double variance(int n, double sum_of_squares, double sum) { // Local Variables: *** // c-indentation-style: gnu *** // End: *** + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTORPOLICY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp index a83d9c750c7..2943c83151a 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1MMUTracker.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1MMUTracker.hpp" +#include "runtime/mutexLocker.hpp" +#include "utilities/ostream.hpp" #define _DISABLE_MMU 0 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp index 269affbea9c..a13c62eb782 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MMUTracker.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1MMUTRACKER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1MMUTRACKER_HPP + +#include "memory/allocation.hpp" +#include "utilities/debug.hpp" + // Keeps track of the GC work and decides when it is OK to do GC work // and for how long so that the MMU invariants are maintained. @@ -127,3 +133,5 @@ public: virtual double longest_pause(double current_time); virtual double when_sec(double current_time, double pause_time); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1MMUTRACKER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp index 0839d11404b..765ef8bc62f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @@ -22,8 +22,30 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1MarkSweep.cpp.incl" +#include "precompiled.hpp" +#include "classfile/javaClasses.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "classfile/vmSymbols.hpp" +#include "code/codeCache.hpp" +#include "code/icBuffer.hpp" +#include "gc_implementation/g1/g1MarkSweep.hpp" +#include "memory/gcLocker.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/modRefBarrierSet.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/space.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/aprofiler.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/thread.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/copy.hpp" +#include "utilities/events.hpp" class HeapRegion; diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp index 125d69dfd0a..c49bc19398a 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,19 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1MARKSWEEP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1MARKSWEEP_HPP + +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "memory/genMarkSweep.hpp" +#include "memory/generation.hpp" +#include "memory/universe.hpp" +#include "oops/markOop.hpp" +#include "oops/oop.hpp" +#include "runtime/timer.hpp" +#include "utilities/growableArray.hpp" + class ReferenceProcessor; // G1MarkSweep takes care of global mark-compact garbage collection for a @@ -55,3 +68,5 @@ class G1MarkSweep : AllStatic { static void allocate_stacks(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1MARKSWEEP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp index 542e7b02615..26e25f4f61b 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP + class HeapRegion; class G1CollectedHeap; class G1RemSet; @@ -210,3 +213,5 @@ public: bool do_header() { return false; } int out_of_region() { return _out_of_region; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp index 28ec22b04f3..c223336af89 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1OopClosures.inline.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_INLINE_HPP + +#include "gc_implementation/g1/concurrentMark.hpp" +#include "gc_implementation/g1/g1CollectedHeap.hpp" +#include "gc_implementation/g1/g1OopClosures.hpp" +#include "gc_implementation/g1/g1RemSet.hpp" + /* * This really ought to be an inline function, but apparently the C++ * compiler sometimes sees fit to ignore inline declarations. Sigh. @@ -121,3 +129,5 @@ template inline void G1ParPushHeapRSClosure::do_oop_nv(T* p) { } } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1OOPCLOSURES_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp index c96e49ef8d5..622028c402d 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1RemSet.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/bufferingOopClosure.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/concurrentG1RefineThread.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/g1OopClosures.inline.hpp" +#include "gc_implementation/g1/g1RemSet.inline.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/iterator.hpp" +#include "oops/oop.inline.hpp" +#include "utilities/intHisto.hpp" #define CARD_REPEAT_HISTO 0 diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp index 2a40213c90b..adb87a05efb 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP + // A G1RemSet provides ways of iterating over pointers into a selected // collection set. @@ -231,3 +234,5 @@ public: bool apply_to_weak_ref_discovered_field() { return true; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp index 9a4fae7abb3..ded66d0aa54 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1RemSet.inline.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_INLINE_HPP + +#include "gc_implementation/g1/g1RemSet.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "oops/oop.inline.hpp" + inline size_t G1RemSet::n_workers() { if (_g1->workers() != NULL) { return _g1->workers()->total_workers(); @@ -145,3 +152,5 @@ inline void UpdateRSOrPushRefOopClosure::do_oop_work(T* p) { } } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp index eea9ade89bf..8145aa9fce0 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1SATBCardTableModRefBS.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/g1/satbQueue.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/thread.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif G1SATBCardTableModRefBS::G1SATBCardTableModRefBS(MemRegion whole_heap, int max_covered_regions) : diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp index 8d128a8bd30..4e4e5d7bded 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP + +#include "memory/cardTableModRefBS.hpp" +#include "memory/memRegion.hpp" +#include "oops/oop.inline.hpp" + #ifndef SERIALGC class DirtyCardQueueSet; @@ -115,3 +122,5 @@ class G1SATBCardTableLoggingModRefBS: public G1SATBCardTableModRefBS { #endif // SERIALGC + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1SATBCARDTABLEMODREFBS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.cpp index fa6a98582dd..af7405df214 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_g1_globals.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1_globals.hpp" G1_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, \ MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \ diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp index 67dc4d1c40c..e9d908e4be2 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP + +#include "runtime/globals.hpp" + // // Defines all globals flags used by the garbage-first compiler. // @@ -282,3 +287,5 @@ " controls whether G1 allows the RICM optimization") G1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG) + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1_GLOBALS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp index 8c3dab9febb..60780036700 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_specialized_oop_closures.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP + // The following OopClosure types get specialized versions of // "oop_oop_iterate" that invoke the closures' do_oop methods // non-virtually, using a mechanism defined in this file. Extend these @@ -63,3 +66,5 @@ class FilterAndMarkInHeapRegionAndIntoCSClosure; #endif #define FURTHER_SPECIALIZED_SINCE_SAVE_MARKS_CLOSURES(f) + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp index dbe2d24a6ce..ab022668384 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp @@ -22,8 +22,17 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_heapRegion.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentZFThread.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1OopClosures.inline.hpp" +#include "gc_implementation/g1/heapRegion.inline.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/iterator.hpp" +#include "oops/oop.inline.hpp" int HeapRegion::LogOfHRGrainBytes = 0; int HeapRegion::LogOfHRGrainWords = 0; diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp index 48118ceb7e8..f11c6a3a3ec 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_HPP + +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1_specialized_oop_closures.hpp" +#include "gc_implementation/g1/survRateGroup.hpp" +#include "gc_implementation/shared/ageTable.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/space.inline.hpp" +#include "memory/watermark.hpp" + #ifndef SERIALGC // A HeapRegion is the smallest piece of a G1CollectedHeap that @@ -945,3 +956,5 @@ public: // End: *** #endif // SERIALGC + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp index f8ca7c81e6c..3750bdae37c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP + inline HeapWord* G1OffsetTableContigSpace::allocate(size_t size) { HeapWord* res = ContiguousSpace::allocate(size); if (res != NULL) { @@ -58,3 +61,5 @@ inline HeapWord* G1OffsetTableContigSpace::block_start_const(const void* p) const { return _offsets.block_start_const(p); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGION_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp index 5d055f65597..dde8255cd99 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_heapRegionRemSet.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/concurrentG1Refine.hpp" +#include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/heapRegionSeq.inline.hpp" +#include "memory/allocation.hpp" +#include "memory/space.inline.hpp" +#include "utilities/bitMap.inline.hpp" +#include "utilities/globalDefinitions.hpp" #define HRRS_VERBOSE 0 diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp index 741dea5f217..62378db5788 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP + +#include "gc_implementation/g1/sparsePRT.hpp" + // Remembered set for a heap region. Represent a set of "cards" that // contain pointers into the owner heap region. Cards are defined somewhat // abstractly, in terms of what the "BlockOffsetTable" in use can parse. @@ -426,3 +431,5 @@ public: }; #endif + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONREMSET_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp index 0640cbe0d39..336ba21c4f2 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_heapRegionSeq.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegionSeq.hpp" +#include "memory/allocation.hpp" // Local to this file. diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp index 6d2e5669b12..1a75a25301e 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_HPP + +#include "gc_implementation/g1/heapRegion.hpp" +#include "utilities/growableArray.hpp" + class HeapRegion; class HeapRegionClosure; @@ -108,3 +114,5 @@ class HeapRegionSeq: public CHeapObj { void print_empty_runs(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp index 71c7c724cec..55adbdeded8 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_INLINE_HPP + +#include "gc_implementation/g1/heapRegionSeq.hpp" + inline HeapRegion* HeapRegionSeq::addr_to_region(const void* addr) { assert(_seq_bottom != NULL, "bad _seq_bottom in addr_to_region"); if ((char*) addr >= _seq_bottom) { @@ -38,3 +43,5 @@ inline HeapRegion* HeapRegionSeq::addr_to_region(const void* addr) { } return NULL; } + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_HEAPREGIONSEQ_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp index bc531241a2c..dac9fc36415 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,21 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_ptrQueue.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/ptrQueue.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/mutex.hpp" +#include "runtime/mutexLocker.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif PtrQueue::PtrQueue(PtrQueueSet* qset_, bool perm, bool active) : _qset(qset_), _buf(NULL), _index(0), _active(active), diff --git a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp index c66973b0cad..d5a128240d8 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP + +#include "memory/allocation.hpp" +#include "utilities/sizes.hpp" + // There are various techniques that require threads to be able to log // addresses. For example, a generational write barrier might log // the addresses of modified old-generation objects. This type supports @@ -293,3 +299,5 @@ public: // Notify the consumer if the number of buffers crossed the threshold void notify_if_necessary(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_PTRQUEUE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp index d3181a61f02..b6b15e13469 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_satbQueue.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/satbQueue.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/sharedHeap.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/thread.hpp" void ObjPtrQueue::apply_closure(ObjectClosure* cl) { if (_buf != NULL) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp index 6a1f50e2b31..a183642368c 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_SATBQUEUE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_SATBQUEUE_HPP + +#include "gc_implementation/g1/ptrQueue.hpp" + class ObjectClosure; class JavaThread; @@ -113,3 +118,5 @@ public: void abandon_partial_marking(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_SATBQUEUE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp index 896b5ee70b3..042ca86c6d9 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_sparsePRT.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/g1/heapRegionRemSet.hpp" +#include "gc_implementation/g1/sparsePRT.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/space.inline.hpp" +#include "runtime/mutexLocker.hpp" #define SPARSE_PRT_VERBOSE 0 diff --git a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp index 715a5515eba..86e1789dbe4 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_SPARSEPRT_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_SPARSEPRT_HPP + +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "memory/allocation.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "runtime/mutex.hpp" +#include "utilities/globalDefinitions.hpp" + // Sparse remembered set for a heap region (the "owning" region). Maps // indices of other regions to short sequences of cards in the other region // that might contain pointers into the owner region. @@ -289,3 +299,5 @@ public: return RSHashTableIter::has_next(card_index); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_SPARSEPRT_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.cpp b/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.cpp index b471b7bfc04..a3bbb692d94 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.cpp @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_survRateGroup.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/heapRegion.hpp" +#include "gc_implementation/g1/survRateGroup.hpp" +#include "memory/allocation.hpp" SurvRateGroup::SurvRateGroup(G1CollectorPolicy* g1p, const char* name, diff --git a/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.hpp b/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.hpp index cc4c9eb0b4f..c9617f2ed2e 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/survRateGroup.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_SURVRATEGROUP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_SURVRATEGROUP_HPP + +#include "utilities/numberSeq.hpp" + class G1CollectorPolicy; class SurvRateGroup : public CHeapObj { @@ -92,3 +97,5 @@ public: void print_surv_rate_summary(); #endif // PRODUCT }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_SURVRATEGROUP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp index 575e6781786..d11f7fa60b6 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_vm_operations_g1.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#include "gc_implementation/g1/g1CollectorPolicy.hpp" +#include "gc_implementation/g1/vm_operations_g1.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "runtime/interfaceSupport.hpp" void VM_G1CollectForAllocation::doit() { JvmtiGCForAllocationMarker jgcm; diff --git a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp index d05beac9ea1..c55c252be7d 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/vm_operations_g1.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_G1_VM_OPERATIONS_G1_HPP +#define SHARE_VM_GC_IMPLEMENTATION_G1_VM_OPERATIONS_G1_HPP + +#include "gc_implementation/shared/vmGCOperations.hpp" + // VM_operations for the G1 collector. // VM_GC_Operation: // - VM_CGC_Operation @@ -114,3 +119,5 @@ class VM_CGC_Operation: public VM_Operation { return "concurrent gc"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_VM_OPERATIONS_G1_HPP diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep b/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep deleted file mode 100644 index 7f1a077007a..00000000000 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep +++ /dev/null @@ -1,258 +0,0 @@ -// -// Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -binaryTreeDictionary.cpp allocationStats.hpp -binaryTreeDictionary.cpp binaryTreeDictionary.hpp -binaryTreeDictionary.cpp globals.hpp -binaryTreeDictionary.cpp ostream.hpp -binaryTreeDictionary.cpp space.inline.hpp -binaryTreeDictionary.cpp spaceDecorator.hpp - -binaryTreeDictionary.hpp freeBlockDictionary.hpp -binaryTreeDictionary.hpp freeList.hpp - -blockOffsetTable.inline.hpp concurrentMarkSweepGeneration.hpp - -cmsAdaptiveSizePolicy.cpp cmsAdaptiveSizePolicy.hpp -cmsAdaptiveSizePolicy.cpp defNewGeneration.hpp -cmsAdaptiveSizePolicy.cpp gcStats.hpp -cmsAdaptiveSizePolicy.cpp genCollectedHeap.hpp -cmsAdaptiveSizePolicy.cpp thread.hpp -cmsAdaptiveSizePolicy.cpp os_.inline.hpp - -cmsAdaptiveSizePolicy.hpp adaptiveSizePolicy.hpp -cmsAdaptiveSizePolicy.hpp timer.hpp - -cmsCollectorPolicy.cpp arguments.hpp -cmsCollectorPolicy.cpp cardTableRS.hpp -cmsCollectorPolicy.cpp cmsAdaptiveSizePolicy.hpp -cmsCollectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp -cmsCollectorPolicy.cpp cmsCollectorPolicy.hpp -cmsCollectorPolicy.cpp collectorPolicy.hpp -cmsCollectorPolicy.cpp gcLocker.inline.hpp -cmsCollectorPolicy.cpp genCollectedHeap.hpp -cmsCollectorPolicy.cpp gcPolicyCounters.hpp -cmsCollectorPolicy.cpp generationSpec.hpp -cmsCollectorPolicy.cpp globals_extension.hpp -cmsCollectorPolicy.cpp handles.inline.hpp -cmsCollectorPolicy.cpp java.hpp -cmsCollectorPolicy.cpp parNewGeneration.hpp -cmsCollectorPolicy.cpp space.hpp -cmsCollectorPolicy.cpp thread_.inline.hpp -cmsCollectorPolicy.cpp universe.hpp -cmsCollectorPolicy.cpp vmGCOperations.hpp -cmsCollectorPolicy.cpp vmThread.hpp - -cmsCollectorPolicy.hpp collectorPolicy.hpp - -cmsGCAdaptivePolicyCounters.cpp cmsGCAdaptivePolicyCounters.hpp -cmsGCAdaptivePolicyCounters.cpp resourceArea.hpp - -cmsGCAdaptivePolicyCounters.hpp cmsAdaptiveSizePolicy.hpp -cmsGCAdaptivePolicyCounters.hpp gcAdaptivePolicyCounters.hpp -cmsGCAdaptivePolicyCounters.hpp gcStats.hpp -cmsGCAdaptivePolicyCounters.hpp perfData.hpp - -cmsLockVerifier.cpp cmsLockVerifier.hpp -cmsLockVerifier.cpp concurrentMarkSweepThread.hpp -cmsLockVerifier.cpp vmThread.hpp - -cmsLockVerifier.hpp mutex.hpp - -cmsOopClosures.hpp genOopClosures.hpp - -cmsOopClosures.inline.hpp cmsOopClosures.hpp -cmsOopClosures.inline.hpp concurrentMarkSweepGeneration.hpp - -cmsPermGen.cpp blockOffsetTable.inline.hpp -cmsPermGen.cpp cSpaceCounters.hpp -cmsPermGen.cpp cmsPermGen.hpp -cmsPermGen.cpp collectedHeap.inline.hpp -cmsPermGen.cpp compactPermGen.hpp -cmsPermGen.cpp concurrentMarkSweepGeneration.inline.hpp -cmsPermGen.cpp genCollectedHeap.hpp -cmsPermGen.cpp generation.inline.hpp -cmsPermGen.cpp java.hpp -cmsPermGen.cpp oop.inline.hpp -cmsPermGen.cpp permGen.hpp -cmsPermGen.cpp universe.hpp - -cmsPermGen.hpp concurrentMarkSweepGeneration.hpp -cmsPermGen.hpp permGen.hpp - -compactibleFreeListSpace.cpp allocation.inline.hpp -compactibleFreeListSpace.cpp blockOffsetTable.inline.hpp -compactibleFreeListSpace.cpp cmsLockVerifier.hpp -compactibleFreeListSpace.cpp collectedHeap.hpp -compactibleFreeListSpace.cpp compactibleFreeListSpace.hpp -compactibleFreeListSpace.cpp concurrentMarkSweepGeneration.inline.hpp -compactibleFreeListSpace.cpp concurrentMarkSweepThread.hpp -compactibleFreeListSpace.cpp copy.hpp -compactibleFreeListSpace.cpp globals.hpp -compactibleFreeListSpace.cpp handles.inline.hpp -compactibleFreeListSpace.cpp init.hpp -compactibleFreeListSpace.cpp java.hpp -compactibleFreeListSpace.cpp liveRange.hpp -compactibleFreeListSpace.cpp oop.inline.hpp -compactibleFreeListSpace.cpp resourceArea.hpp -compactibleFreeListSpace.cpp spaceDecorator.hpp -compactibleFreeListSpace.cpp universe.inline.hpp -compactibleFreeListSpace.cpp vmThread.hpp - -compactibleFreeListSpace.hpp binaryTreeDictionary.hpp -compactibleFreeListSpace.hpp blockOffsetTable.inline.hpp -compactibleFreeListSpace.hpp freeList.hpp -compactibleFreeListSpace.hpp promotionInfo.hpp -compactibleFreeListSpace.hpp space.hpp - -compactingPermGenGen.cpp concurrentMarkSweepGeneration.inline.hpp - -concurrentMarkSweepGeneration.cpp cardTableRS.hpp -concurrentMarkSweepGeneration.cpp cmsAdaptiveSizePolicy.hpp -concurrentMarkSweepGeneration.cpp cmsCollectorPolicy.hpp -concurrentMarkSweepGeneration.cpp cmsGCAdaptivePolicyCounters.hpp -concurrentMarkSweepGeneration.cpp cmsOopClosures.inline.hpp -concurrentMarkSweepGeneration.cpp codeCache.hpp -concurrentMarkSweepGeneration.cpp collectedHeap.inline.hpp -concurrentMarkSweepGeneration.cpp collectorCounters.hpp -concurrentMarkSweepGeneration.cpp collectorPolicy.hpp -concurrentMarkSweepGeneration.cpp compactibleFreeListSpace.hpp -concurrentMarkSweepGeneration.cpp concurrentMarkSweepGeneration.inline.hpp -concurrentMarkSweepGeneration.cpp concurrentMarkSweepThread.hpp -concurrentMarkSweepGeneration.cpp gcLocker.inline.hpp -concurrentMarkSweepGeneration.cpp genCollectedHeap.hpp -concurrentMarkSweepGeneration.cpp genMarkSweep.hpp -concurrentMarkSweepGeneration.cpp genOopClosures.inline.hpp -concurrentMarkSweepGeneration.cpp globals_extension.hpp -concurrentMarkSweepGeneration.cpp handles.inline.hpp -concurrentMarkSweepGeneration.cpp isGCActiveMark.hpp -concurrentMarkSweepGeneration.cpp iterator.hpp -concurrentMarkSweepGeneration.cpp java.hpp -concurrentMarkSweepGeneration.cpp jvmtiExport.hpp -concurrentMarkSweepGeneration.cpp memoryService.hpp -concurrentMarkSweepGeneration.cpp oop.inline.hpp -concurrentMarkSweepGeneration.cpp parNewGeneration.hpp -concurrentMarkSweepGeneration.cpp referencePolicy.hpp -concurrentMarkSweepGeneration.cpp resourceArea.hpp -concurrentMarkSweepGeneration.cpp runtimeService.hpp -concurrentMarkSweepGeneration.cpp symbolTable.hpp -concurrentMarkSweepGeneration.cpp systemDictionary.hpp -concurrentMarkSweepGeneration.cpp vmCMSOperations.hpp -concurrentMarkSweepGeneration.cpp vmThread.hpp - -concurrentMarkSweepGeneration.hpp bitMap.inline.hpp -concurrentMarkSweepGeneration.hpp freeBlockDictionary.hpp -concurrentMarkSweepGeneration.hpp gSpaceCounters.hpp -concurrentMarkSweepGeneration.hpp gcStats.hpp -concurrentMarkSweepGeneration.hpp generation.hpp -concurrentMarkSweepGeneration.hpp generationCounters.hpp -concurrentMarkSweepGeneration.hpp memoryService.hpp -concurrentMarkSweepGeneration.hpp mutexLocker.hpp -concurrentMarkSweepGeneration.hpp stack.inline.hpp -concurrentMarkSweepGeneration.hpp taskqueue.hpp -concurrentMarkSweepGeneration.hpp virtualspace.hpp -concurrentMarkSweepGeneration.hpp yieldingWorkgroup.hpp - -concurrentMarkSweepGeneration.inline.hpp cmsLockVerifier.hpp -concurrentMarkSweepGeneration.inline.hpp compactibleFreeListSpace.hpp -concurrentMarkSweepGeneration.inline.hpp concurrentMarkSweepGeneration.hpp -concurrentMarkSweepGeneration.inline.hpp concurrentMarkSweepThread.hpp -concurrentMarkSweepGeneration.inline.hpp defNewGeneration.hpp -concurrentMarkSweepGeneration.inline.hpp gcUtil.hpp - -concurrentMarkSweepThread.cpp concurrentMarkSweepGeneration.inline.hpp -concurrentMarkSweepThread.cpp concurrentMarkSweepThread.hpp -concurrentMarkSweepThread.cpp genCollectedHeap.hpp -concurrentMarkSweepThread.cpp init.hpp -concurrentMarkSweepThread.cpp instanceRefKlass.hpp -concurrentMarkSweepThread.cpp interfaceSupport.hpp -concurrentMarkSweepThread.cpp java.hpp -concurrentMarkSweepThread.cpp javaCalls.hpp -concurrentMarkSweepThread.cpp mutexLocker.hpp -concurrentMarkSweepThread.cpp oop.inline.hpp -concurrentMarkSweepThread.cpp os.hpp -concurrentMarkSweepThread.cpp systemDictionary.hpp -concurrentMarkSweepThread.cpp vmThread.hpp - -concurrentMarkSweepThread.hpp concurrentGCThread.hpp -concurrentMarkSweepThread.hpp concurrentMarkSweepGeneration.hpp -concurrentMarkSweepThread.hpp thread_.inline.hpp - -freeBlockDictionary.cpp freeBlockDictionary.hpp -freeBlockDictionary.cpp thread_.inline.hpp - -freeBlockDictionary.hpp allocation.hpp -freeBlockDictionary.hpp debug.hpp -freeBlockDictionary.hpp freeChunk.hpp -freeBlockDictionary.hpp globalDefinitions.hpp -freeBlockDictionary.hpp memRegion.hpp -freeBlockDictionary.hpp mutex.hpp -freeBlockDictionary.hpp ostream.hpp - -freeChunk.cpp copy.hpp -freeChunk.cpp freeBlockDictionary.hpp - -freeChunk.hpp allocation.hpp -freeChunk.hpp debug.hpp -freeChunk.hpp globalDefinitions.hpp -freeChunk.hpp markOop.hpp -freeChunk.hpp memRegion.hpp -freeChunk.hpp mutex.hpp -freeChunk.hpp ostream.hpp - -freeList.cpp freeBlockDictionary.hpp -freeList.cpp freeList.hpp -freeList.cpp globals.hpp -freeList.cpp mutex.hpp -freeList.cpp sharedHeap.hpp -freeList.cpp vmThread.hpp - -freeList.hpp allocationStats.hpp - -promotionInfo.cpp compactibleFreeListSpace.hpp -promotionInfo.cpp markOop.inline.hpp -promotionInfo.cpp oop.inline.hpp -promotionInfo.cpp promotionInfo.hpp - -promotionInfo.hpp allocation.hpp -promotionInfo.hpp freeChunk.hpp - -vmCMSOperations.cpp concurrentMarkSweepGeneration.inline.hpp -vmCMSOperations.cpp concurrentMarkSweepThread.hpp -vmCMSOperations.cpp dtrace.hpp -vmCMSOperations.cpp gcLocker.inline.hpp -vmCMSOperations.cpp isGCActiveMark.hpp -vmCMSOperations.cpp interfaceSupport.hpp -vmCMSOperations.cpp vmCMSOperations.hpp - -vmCMSOperations.hpp concurrentMarkSweepGeneration.hpp -vmCMSOperations.hpp gcCause.hpp -vmCMSOperations.hpp vm_operations.hpp -vmCMSOperations.hpp vmGCOperations.hpp - -yieldingWorkgroup.cpp yieldingWorkgroup.hpp - -yieldingWorkgroup.hpp workgroup.hpp diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 b/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 deleted file mode 100644 index 073a48cad3c..00000000000 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 +++ /dev/null @@ -1,379 +0,0 @@ -// -// Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -bufferingOopClosure.hpp genOopClosures.hpp -bufferingOopClosure.hpp generation.hpp -bufferingOopClosure.hpp os.hpp -bufferingOopClosure.hpp taskqueue.hpp - -cardTableRS.cpp concurrentMark.hpp -cardTableRS.cpp g1SATBCardTableModRefBS.hpp - -collectionSetChooser.cpp g1CollectedHeap.inline.hpp -collectionSetChooser.cpp g1CollectorPolicy.hpp -collectionSetChooser.cpp collectionSetChooser.hpp -collectionSetChooser.cpp space.inline.hpp - -collectionSetChooser.hpp heapRegion.hpp -collectionSetChooser.hpp growableArray.hpp - -concurrentG1Refine.cpp atomic.hpp -concurrentG1Refine.cpp concurrentG1Refine.hpp -concurrentG1Refine.cpp concurrentG1RefineThread.hpp -concurrentG1Refine.cpp copy.hpp -concurrentG1Refine.cpp g1CollectedHeap.inline.hpp -concurrentG1Refine.cpp g1CollectorPolicy.hpp -concurrentG1Refine.cpp g1RemSet.hpp -concurrentG1Refine.cpp space.inline.hpp -concurrentG1Refine.cpp heapRegionSeq.inline.hpp - -concurrentG1Refine.hpp globalDefinitions.hpp -concurrentG1Refine.hpp allocation.hpp -concurrentG1Refine.hpp cardTableModRefBS.hpp -concurrentG1Refine.hpp thread.hpp - -concurrentG1RefineThread.cpp concurrentG1Refine.hpp -concurrentG1RefineThread.cpp concurrentG1RefineThread.hpp -concurrentG1RefineThread.cpp g1CollectedHeap.inline.hpp -concurrentG1RefineThread.cpp g1CollectorPolicy.hpp -concurrentG1RefineThread.cpp handles.inline.hpp -concurrentG1RefineThread.cpp mutexLocker.hpp -concurrentG1RefineThread.cpp resourceArea.hpp - -concurrentG1RefineThread.hpp concurrentGCThread.hpp - -concurrentMark.cpp concurrentMark.hpp -concurrentMark.cpp concurrentMarkThread.inline.hpp -concurrentMark.cpp g1CollectedHeap.inline.hpp -concurrentMark.cpp g1CollectorPolicy.hpp -concurrentMark.cpp g1RemSet.hpp -concurrentMark.cpp genOopClosures.inline.hpp -concurrentMark.cpp heapRegionRemSet.hpp -concurrentMark.cpp heapRegionSeq.inline.hpp -concurrentMark.cpp handles.inline.hpp -concurrentMark.cpp java.hpp -concurrentMark.cpp oop.inline.hpp -concurrentMark.cpp referencePolicy.hpp -concurrentMark.cpp resourceArea.hpp -concurrentMark.cpp symbolTable.hpp - -concurrentMark.hpp heapRegion.hpp -concurrentMark.hpp taskqueue.hpp - -concurrentMarkThread.cpp concurrentMarkThread.inline.hpp -concurrentMarkThread.cpp g1CollectedHeap.inline.hpp -concurrentMarkThread.cpp g1CollectorPolicy.hpp -concurrentMarkThread.cpp g1MMUTracker.hpp -concurrentMarkThread.cpp resourceArea.hpp -concurrentMarkThread.cpp vm_operations_g1.hpp -concurrentMarkThread.cpp vmThread.hpp - -concurrentMarkThread.hpp concurrentGCThread.hpp - -concurrentMarkThread.inline.hpp concurrentMark.hpp -concurrentMarkThread.inline.hpp concurrentMarkThread.hpp - -concurrentZFThread.cpp concurrentZFThread.hpp -concurrentZFThread.cpp heapRegion.hpp -concurrentZFThread.cpp g1CollectedHeap.inline.hpp -concurrentZFThread.cpp copy.hpp -concurrentZFThread.cpp mutexLocker.hpp -concurrentZFThread.cpp space.inline.hpp - -concurrentZFThread.hpp concurrentGCThread.hpp - -dirtyCardQueue.cpp atomic.hpp -dirtyCardQueue.cpp dirtyCardQueue.hpp -dirtyCardQueue.cpp heapRegionRemSet.hpp -dirtyCardQueue.cpp mutexLocker.hpp -dirtyCardQueue.cpp safepoint.hpp -dirtyCardQueue.cpp thread.hpp -dirtyCardQueue.cpp thread_.inline.hpp -dirtyCardQueue.cpp workgroup.hpp - -dirtyCardQueue.hpp allocation.hpp -dirtyCardQueue.hpp ptrQueue.hpp - -g1BlockOffsetTable.cpp g1BlockOffsetTable.inline.hpp -g1BlockOffsetTable.cpp java.hpp -g1BlockOffsetTable.cpp oop.inline.hpp -g1BlockOffsetTable.cpp space.hpp - -g1BlockOffsetTable.hpp globalDefinitions.hpp -g1BlockOffsetTable.hpp memRegion.hpp -g1BlockOffsetTable.hpp virtualspace.hpp - -g1BlockOffsetTable.inline.hpp g1BlockOffsetTable.hpp -g1BlockOffsetTable.inline.hpp space.hpp - -g1CollectedHeap.cpp aprofiler.hpp -g1CollectedHeap.cpp bufferingOopClosure.hpp -g1CollectedHeap.cpp concurrentG1Refine.hpp -g1CollectedHeap.cpp concurrentG1RefineThread.hpp -g1CollectedHeap.cpp concurrentMarkThread.inline.hpp -g1CollectedHeap.cpp concurrentZFThread.hpp -g1CollectedHeap.cpp g1CollectedHeap.inline.hpp -g1CollectedHeap.cpp g1CollectorPolicy.hpp -g1CollectedHeap.cpp g1MarkSweep.hpp -g1CollectedHeap.cpp g1RemSet.inline.hpp -g1CollectedHeap.cpp g1OopClosures.inline.hpp -g1CollectedHeap.cpp genOopClosures.inline.hpp -g1CollectedHeap.cpp gcLocker.inline.hpp -g1CollectedHeap.cpp generationSpec.hpp -g1CollectedHeap.cpp heapRegionRemSet.hpp -g1CollectedHeap.cpp heapRegionSeq.inline.hpp -g1CollectedHeap.cpp icBuffer.hpp -g1CollectedHeap.cpp isGCActiveMark.hpp -g1CollectedHeap.cpp oop.inline.hpp -g1CollectedHeap.cpp oop.pcgc.inline.hpp -g1CollectedHeap.cpp vm_operations_g1.hpp -g1CollectedHeap.cpp vmThread.hpp - -g1CollectedHeap.hpp barrierSet.hpp -g1CollectedHeap.hpp g1RemSet.hpp -g1CollectedHeap.hpp heapRegion.hpp -g1CollectedHeap.hpp memRegion.hpp -g1CollectedHeap.hpp parGCAllocBuffer.hpp -g1CollectedHeap.hpp sharedHeap.hpp - -g1CollectedHeap.inline.hpp concurrentMark.hpp -g1CollectedHeap.inline.hpp g1CollectedHeap.hpp -g1CollectedHeap.inline.hpp heapRegionSeq.hpp -g1CollectedHeap.inline.hpp taskqueue.hpp - -g1CollectorPolicy.cpp arguments.hpp -g1CollectorPolicy.cpp concurrentG1Refine.hpp -g1CollectorPolicy.cpp concurrentMark.hpp -g1CollectorPolicy.cpp concurrentMarkThread.inline.hpp -g1CollectorPolicy.cpp debug.hpp -g1CollectorPolicy.cpp java.hpp -g1CollectorPolicy.cpp g1CollectedHeap.inline.hpp -g1CollectorPolicy.cpp g1CollectorPolicy.hpp -g1CollectorPolicy.cpp heapRegionRemSet.hpp -g1CollectorPolicy.cpp mutexLocker.hpp -g1CollectorPolicy.cpp gcPolicyCounters.hpp - -g1CollectorPolicy.hpp collectorPolicy.hpp -g1CollectorPolicy.hpp collectionSetChooser.hpp -g1CollectorPolicy.hpp g1MMUTracker.hpp - -g1_globals.cpp g1_globals.hpp - -g1_globals.hpp globals.hpp - -globals.cpp g1_globals.hpp -top.hpp g1_globals.hpp - -g1MarkSweep.cpp aprofiler.hpp -g1MarkSweep.cpp biasedLocking.hpp -g1MarkSweep.cpp codeCache.hpp -g1MarkSweep.cpp events.hpp -g1MarkSweep.cpp fprofiler.hpp -g1MarkSweep.hpp g1CollectedHeap.inline.hpp -g1MarkSweep.cpp g1MarkSweep.hpp -g1MarkSweep.cpp gcLocker.hpp -g1MarkSweep.cpp genCollectedHeap.hpp -g1MarkSweep.hpp heapRegion.hpp -g1MarkSweep.cpp icBuffer.hpp -g1MarkSweep.cpp instanceRefKlass.hpp -g1MarkSweep.cpp javaClasses.hpp -g1MarkSweep.cpp jvmtiExport.hpp -g1MarkSweep.cpp copy.hpp -g1MarkSweep.cpp modRefBarrierSet.hpp -g1MarkSweep.cpp oop.inline.hpp -g1MarkSweep.cpp referencePolicy.hpp -g1MarkSweep.cpp space.hpp -g1MarkSweep.cpp symbolTable.hpp -g1MarkSweep.cpp synchronizer.hpp -g1MarkSweep.cpp systemDictionary.hpp -g1MarkSweep.cpp thread.hpp -g1MarkSweep.cpp vmSymbols.hpp -g1MarkSweep.cpp vmThread.hpp - -g1MarkSweep.hpp generation.hpp -g1MarkSweep.hpp growableArray.hpp -g1MarkSweep.hpp markOop.hpp -g1MarkSweep.hpp genMarkSweep.hpp -g1MarkSweep.hpp oop.hpp -g1MarkSweep.hpp timer.hpp -g1MarkSweep.hpp universe.hpp - -g1MemoryPool.cpp heapRegion.hpp -g1MemoryPool.cpp g1CollectedHeap.inline.hpp -g1MemoryPool.cpp g1CollectedHeap.hpp -g1MemoryPool.cpp g1CollectorPolicy.hpp -g1MemoryPool.cpp g1MemoryPool.hpp - -g1MemoryPool.hpp memoryUsage.hpp -g1MemoryPool.hpp memoryPool.hpp - -g1OopClosures.inline.hpp concurrentMark.hpp -g1OopClosures.inline.hpp g1OopClosures.hpp -g1OopClosures.inline.hpp g1CollectedHeap.hpp -g1OopClosures.inline.hpp g1RemSet.hpp - -g1MMUTracker.cpp g1MMUTracker.hpp -g1MMUTracker.cpp ostream.hpp -g1MMUTracker.cpp mutexLocker.hpp - -g1MMUTracker.hpp debug.hpp -g1MMUTracker.hpp allocation.hpp - -g1RemSet.cpp bufferingOopClosure.hpp -g1RemSet.cpp concurrentG1Refine.hpp -g1RemSet.cpp concurrentG1RefineThread.hpp -g1RemSet.cpp g1BlockOffsetTable.inline.hpp -g1RemSet.cpp g1CollectedHeap.inline.hpp -g1RemSet.cpp g1CollectorPolicy.hpp -g1RemSet.cpp g1RemSet.inline.hpp -g1RemSet.cpp g1OopClosures.inline.hpp -g1RemSet.cpp heapRegionSeq.inline.hpp -g1RemSet.cpp intHisto.hpp -g1RemSet.cpp iterator.hpp -g1RemSet.cpp oop.inline.hpp - -g1RemSet.inline.hpp oop.inline.hpp -g1RemSet.inline.hpp g1RemSet.hpp -g1RemSet.inline.hpp heapRegionRemSet.hpp - -g1SATBCardTableModRefBS.cpp g1SATBCardTableModRefBS.hpp -g1SATBCardTableModRefBS.cpp heapRegion.hpp -g1SATBCardTableModRefBS.cpp mutexLocker.hpp -g1SATBCardTableModRefBS.cpp thread.hpp -g1SATBCardTableModRefBS.cpp thread_.inline.hpp -g1SATBCardTableModRefBS.cpp satbQueue.hpp - -g1SATBCardTableModRefBS.hpp oop.inline.hpp -g1SATBCardTableModRefBS.hpp cardTableModRefBS.hpp -g1SATBCardTableModRefBS.hpp memRegion.hpp - -heapRegion.cpp concurrentZFThread.hpp -heapRegion.cpp g1BlockOffsetTable.inline.hpp -heapRegion.cpp g1CollectedHeap.inline.hpp -heapRegion.cpp g1OopClosures.inline.hpp -heapRegion.cpp genOopClosures.inline.hpp -heapRegion.cpp heapRegion.inline.hpp -heapRegion.cpp heapRegionRemSet.hpp -heapRegion.cpp heapRegionSeq.inline.hpp -heapRegion.cpp iterator.hpp -heapRegion.cpp oop.inline.hpp - -heapRegion.hpp space.inline.hpp -heapRegion.hpp spaceDecorator.hpp -heapRegion.hpp g1BlockOffsetTable.inline.hpp -heapRegion.hpp watermark.hpp -heapRegion.hpp g1_specialized_oop_closures.hpp -heapRegion.hpp survRateGroup.hpp -heapRegion.hpp ageTable.hpp - -heapRegionRemSet.hpp sparsePRT.hpp - -heapRegionRemSet.cpp allocation.hpp -heapRegionRemSet.cpp bitMap.inline.hpp -heapRegionRemSet.cpp concurrentG1Refine.hpp -heapRegionRemSet.cpp g1BlockOffsetTable.inline.hpp -heapRegionRemSet.cpp g1CollectedHeap.inline.hpp -heapRegionRemSet.cpp heapRegionRemSet.hpp -heapRegionRemSet.cpp heapRegionSeq.inline.hpp -heapRegionRemSet.cpp globalDefinitions.hpp -heapRegionRemSet.cpp space.inline.hpp - -heapRegionSeq.cpp allocation.hpp -heapRegionSeq.cpp g1CollectedHeap.inline.hpp -heapRegionSeq.cpp heapRegionSeq.hpp - -heapRegionSeq.hpp growableArray.hpp -heapRegionSeq.hpp heapRegion.hpp - -heapRegionSeq.inline.hpp heapRegionSeq.hpp - -instanceKlass.cpp g1RemSet.inline.hpp - -instanceRefKlass.cpp g1RemSet.inline.hpp - -klass.hpp g1OopClosures.hpp - -memoryService.cpp g1MemoryPool.hpp - -objArrayKlass.cpp g1RemSet.inline.hpp - -ptrQueue.cpp allocation.hpp -ptrQueue.cpp allocation.inline.hpp -ptrQueue.cpp mutex.hpp -ptrQueue.cpp mutexLocker.hpp -ptrQueue.cpp ptrQueue.hpp -ptrQueue.cpp thread_.inline.hpp - -ptrQueue.hpp allocation.hpp -ptrQueue.hpp sizes.hpp - -ptrQueue.inline.hpp ptrQueue.hpp - -satbQueue.cpp allocation.inline.hpp -satbQueue.cpp mutexLocker.hpp -satbQueue.cpp satbQueue.hpp -satbQueue.cpp sharedHeap.hpp -satbQueue.cpp thread.hpp - -satbQueue.hpp ptrQueue.hpp - -sparsePRT.cpp allocation.inline.hpp -sparsePRT.cpp cardTableModRefBS.hpp -sparsePRT.cpp heapRegion.hpp -sparsePRT.cpp heapRegionRemSet.hpp -sparsePRT.cpp mutexLocker.hpp -sparsePRT.cpp sparsePRT.hpp -sparsePRT.cpp space.inline.hpp - -sparsePRT.hpp allocation.hpp -sparsePRT.hpp cardTableModRefBS.hpp -sparsePRT.hpp globalDefinitions.hpp -sparsePRT.hpp g1CollectedHeap.inline.hpp -sparsePRT.hpp heapRegion.hpp -sparsePRT.hpp mutex.hpp - -specialized_oop_closures.hpp g1_specialized_oop_closures.hpp - -survRateGroup.hpp numberSeq.hpp - -survRateGroup.cpp allocation.hpp -survRateGroup.cpp g1CollectedHeap.inline.hpp -survRateGroup.cpp g1CollectorPolicy.hpp -survRateGroup.cpp heapRegion.hpp -survRateGroup.cpp survRateGroup.hpp - -thread.cpp concurrentMarkThread.inline.hpp - -universe.cpp g1CollectedHeap.inline.hpp -universe.cpp g1CollectorPolicy.hpp - -vm_operations_g1.hpp vmGCOperations.hpp - -vm_operations_g1.cpp vm_operations_g1.hpp -vm_operations_g1.cpp g1CollectedHeap.inline.hpp -vm_operations_g1.cpp g1CollectorPolicy.hpp -vm_operations_g1.cpp interfaceSupport.hpp -vm_operations_g1.cpp isGCActiveMark.hpp diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parNew b/hotspot/src/share/vm/gc_implementation/includeDB_gc_parNew deleted file mode 100644 index 32808d28de3..00000000000 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parNew +++ /dev/null @@ -1,92 +0,0 @@ -// -// Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -asParNewGeneration.hpp adaptiveSizePolicy.hpp -asParNewGeneration.hpp parNewGeneration.hpp - -asParNewGeneration.cpp asParNewGeneration.hpp -asParNewGeneration.cpp cmsAdaptiveSizePolicy.hpp -asParNewGeneration.cpp cmsGCAdaptivePolicyCounters.hpp -asParNewGeneration.cpp defNewGeneration.inline.hpp -asParNewGeneration.cpp markOop.inline.hpp -asParNewGeneration.cpp markSweep.inline.hpp -asParNewGeneration.cpp oop.pcgc.inline.hpp -asParNewGeneration.cpp parNewGeneration.hpp -asParNewGeneration.cpp referencePolicy.hpp -asParNewGeneration.cpp spaceDecorator.hpp - -parCardTableModRefBS.cpp allocation.inline.hpp -parCardTableModRefBS.cpp cardTableModRefBS.hpp -parCardTableModRefBS.cpp cardTableRS.hpp -parCardTableModRefBS.cpp java.hpp -parCardTableModRefBS.cpp mutexLocker.hpp -parCardTableModRefBS.cpp sharedHeap.hpp -parCardTableModRefBS.cpp space.inline.hpp -parCardTableModRefBS.cpp universe.hpp -parCardTableModRefBS.cpp virtualspace.hpp - -parGCAllocBuffer.cpp arrayOop.hpp -parGCAllocBuffer.cpp oop.inline.hpp -parGCAllocBuffer.cpp parGCAllocBuffer.hpp -parGCAllocBuffer.cpp sharedHeap.hpp - -parGCAllocBuffer.hpp allocation.hpp -parGCAllocBuffer.hpp globalDefinitions.hpp -parGCAllocBuffer.hpp threadLocalAllocBuffer.hpp - -parNewGeneration.cpp adaptiveSizePolicy.hpp -parNewGeneration.cpp ageTable.hpp -parNewGeneration.cpp concurrentMarkSweepGeneration.hpp -parNewGeneration.cpp copy.hpp -parNewGeneration.cpp defNewGeneration.inline.hpp -parNewGeneration.cpp genCollectedHeap.hpp -parNewGeneration.cpp genOopClosures.inline.hpp -parNewGeneration.cpp generation.hpp -parNewGeneration.cpp generation.inline.hpp -parNewGeneration.cpp globalDefinitions.hpp -parNewGeneration.cpp handles.hpp -parNewGeneration.cpp handles.inline.hpp -parNewGeneration.cpp java.hpp -parNewGeneration.cpp objArrayOop.hpp -parNewGeneration.cpp oop.inline.hpp -parNewGeneration.cpp oop.pcgc.inline.hpp -parNewGeneration.cpp parGCAllocBuffer.hpp -parNewGeneration.cpp parNewGeneration.hpp -parNewGeneration.cpp parOopClosures.inline.hpp -parNewGeneration.cpp referencePolicy.hpp -parNewGeneration.cpp resourceArea.hpp -parNewGeneration.cpp sharedHeap.hpp -parNewGeneration.cpp space.hpp -parNewGeneration.cpp spaceDecorator.hpp -parNewGeneration.cpp thread.hpp -parNewGeneration.cpp workgroup.hpp - -parNewGeneration.hpp defNewGeneration.hpp -parNewGeneration.hpp parGCAllocBuffer.hpp -parNewGeneration.hpp taskqueue.hpp - -parOopClosures.hpp genOopClosures.hpp - -parOopClosures.inline.hpp parNewGeneration.hpp -parOopClosures.inline.hpp parOopClosures.hpp diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge b/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge deleted file mode 100644 index b4a1109d29c..00000000000 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge +++ /dev/null @@ -1,467 +0,0 @@ -// -// Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - - -adjoiningGenerations.hpp adjoiningVirtualSpaces.hpp -adjoiningGenerations.hpp asPSOldGen.hpp -adjoiningGenerations.hpp asPSYoungGen.hpp -adjoiningGenerations.hpp psPermGen.hpp - -adjoiningGenerations.cpp adjoiningGenerations.hpp -adjoiningGenerations.cpp adjoiningVirtualSpaces.hpp -adjoiningGenerations.cpp parallelScavengeHeap.hpp -adjoiningGenerations.cpp psPermGen.hpp - -adjoiningVirtualSpaces.hpp psVirtualspace.hpp - -adjoiningVirtualSpaces.cpp java.hpp -adjoiningVirtualSpaces.cpp adjoiningVirtualSpaces.hpp - -asPSOldGen.hpp generationCounters.hpp -asPSOldGen.hpp mutableSpace.hpp -asPSOldGen.hpp objectStartArray.hpp -asPSOldGen.hpp psVirtualspace.hpp -asPSOldGen.hpp spaceCounters.hpp -asPSOldGen.hpp psOldGen.hpp - -asPSOldGen.cpp psAdaptiveSizePolicy.hpp -asPSOldGen.cpp cardTableModRefBS.hpp -asPSOldGen.cpp java.hpp -asPSOldGen.cpp oop.inline.hpp -asPSOldGen.cpp parallelScavengeHeap.hpp -asPSOldGen.cpp psMarkSweepDecorator.hpp -asPSOldGen.cpp asPSOldGen.hpp - -asPSYoungGen.hpp generationCounters.hpp -asPSYoungGen.hpp mutableSpace.hpp -asPSYoungGen.hpp objectStartArray.hpp -asPSYoungGen.hpp spaceCounters.hpp -asPSYoungGen.hpp psVirtualspace.hpp -asPSYoungGen.hpp psYoungGen.hpp -asPSYoungGen.hpp spaceDecorator.hpp - -asPSYoungGen.cpp gcUtil.hpp -asPSYoungGen.cpp java.hpp -asPSYoungGen.cpp oop.inline.hpp -asPSYoungGen.cpp parallelScavengeHeap.hpp -asPSYoungGen.cpp psMarkSweepDecorator.hpp -asPSYoungGen.cpp psScavenge.hpp -asPSYoungGen.cpp asPSYoungGen.hpp -asPSYoungGen.cpp psYoungGen.hpp -asPSYoungGen.cpp spaceDecorator.hpp - -cardTableExtension.cpp cardTableExtension.hpp -cardTableExtension.cpp gcTaskManager.hpp -cardTableExtension.cpp oop.inline.hpp -cardTableExtension.cpp oop.psgc.inline.hpp -cardTableExtension.cpp parallelScavengeHeap.hpp -cardTableExtension.cpp psTasks.hpp -cardTableExtension.cpp psYoungGen.hpp - -cardTableExtension.hpp cardTableModRefBS.hpp - -gcTaskManager.hpp mutex.hpp -gcTaskManager.hpp growableArray.hpp - -gcTaskManager.cpp allocation.hpp -gcTaskManager.cpp allocation.inline.hpp -gcTaskManager.cpp gcTaskManager.hpp -gcTaskManager.cpp gcTaskThread.hpp -gcTaskManager.cpp mutex.hpp -gcTaskManager.cpp mutexLocker.hpp - -gcTaskThread.hpp thread.hpp - -gcTaskThread.cpp allocation.hpp -gcTaskThread.cpp allocation.inline.hpp -gcTaskThread.cpp gcTaskManager.hpp -gcTaskThread.cpp gcTaskThread.hpp -gcTaskThread.cpp handles.hpp -gcTaskThread.cpp handles.inline.hpp -gcTaskThread.cpp os.hpp -gcTaskThread.cpp resourceArea.hpp -gcTaskThread.cpp thread.hpp - -generationSizer.hpp collectorPolicy.hpp - -objectStartArray.cpp allocation.inline.hpp -objectStartArray.cpp cardTableModRefBS.hpp -objectStartArray.cpp java.hpp -objectStartArray.cpp objectStartArray.hpp -objectStartArray.cpp oop.inline.hpp - -objectStartArray.hpp allocation.hpp -objectStartArray.hpp memRegion.hpp -objectStartArray.hpp oop.hpp -objectStartArray.hpp psVirtualspace.hpp - -parallelScavengeHeap.cpp adjoiningGenerations.hpp -parallelScavengeHeap.cpp adjoiningVirtualSpaces.hpp -parallelScavengeHeap.cpp cardTableExtension.hpp -parallelScavengeHeap.cpp gcLocker.inline.hpp -parallelScavengeHeap.cpp gcTaskManager.hpp -parallelScavengeHeap.cpp generationSizer.hpp -parallelScavengeHeap.cpp handles.inline.hpp -parallelScavengeHeap.cpp java.hpp -parallelScavengeHeap.cpp oop.inline.hpp -parallelScavengeHeap.cpp parallelScavengeHeap.inline.hpp -parallelScavengeHeap.cpp psAdaptiveSizePolicy.hpp -parallelScavengeHeap.cpp psMarkSweep.hpp -parallelScavengeHeap.cpp psParallelCompact.hpp -parallelScavengeHeap.cpp psPromotionManager.hpp -parallelScavengeHeap.cpp psScavenge.hpp -parallelScavengeHeap.cpp vmError.hpp -parallelScavengeHeap.cpp vmThread.hpp -parallelScavengeHeap.cpp vmPSOperations.hpp - -parallelScavengeHeap.inline.hpp parallelScavengeHeap.hpp -parallelScavengeHeap.inline.hpp psMarkSweep.hpp -parallelScavengeHeap.inline.hpp psParallelCompact.hpp -parallelScavengeHeap.inline.hpp psScavenge.hpp - -parallelScavengeHeap.hpp collectedHeap.inline.hpp -parallelScavengeHeap.hpp objectStartArray.hpp -parallelScavengeHeap.hpp gcPolicyCounters.hpp -parallelScavengeHeap.hpp psGCAdaptivePolicyCounters.hpp -parallelScavengeHeap.hpp psOldGen.hpp -parallelScavengeHeap.hpp psPermGen.hpp -parallelScavengeHeap.hpp psYoungGen.hpp -parallelScavengeHeap.hpp ostream.hpp - -parMarkBitMap.cpp bitMap.inline.hpp -parMarkBitMap.cpp oop.inline.hpp -parMarkBitMap.cpp os.hpp -parMarkBitMap.cpp os_.inline.hpp -parMarkBitMap.cpp parMarkBitMap.hpp -parMarkBitMap.cpp parMarkBitMap.inline.hpp -parMarkBitMap.cpp psParallelCompact.hpp - -parMarkBitMap.hpp bitMap.inline.hpp -parMarkBitMap.hpp psVirtualspace.hpp - -psAdaptiveSizePolicy.cpp collectorPolicy.hpp -psAdaptiveSizePolicy.cpp gcPolicyCounters.hpp -psAdaptiveSizePolicy.cpp gcCause.hpp -psAdaptiveSizePolicy.cpp generationSizer.hpp -psAdaptiveSizePolicy.cpp psAdaptiveSizePolicy.hpp -psAdaptiveSizePolicy.cpp psGCAdaptivePolicyCounters.hpp -psAdaptiveSizePolicy.cpp psScavenge.hpp -psAdaptiveSizePolicy.cpp timer.hpp -psAdaptiveSizePolicy.cpp top.hpp - -psAdaptiveSizePolicy.hpp gcCause.hpp -psAdaptiveSizePolicy.hpp gcStats.hpp -psAdaptiveSizePolicy.hpp gcUtil.hpp -psAdaptiveSizePolicy.hpp adaptiveSizePolicy.hpp - -psCompactionManager.cpp gcTaskManager.hpp -psCompactionManager.cpp objArrayKlass.inline.hpp -psCompactionManager.cpp objectStartArray.hpp -psCompactionManager.cpp oop.hpp -psCompactionManager.cpp oop.inline.hpp -psCompactionManager.cpp oop.pcgc.inline.hpp -psCompactionManager.cpp parallelScavengeHeap.hpp -psCompactionManager.cpp parMarkBitMap.hpp -psCompactionManager.cpp psParallelCompact.hpp -psCompactionManager.cpp psCompactionManager.hpp -psCompactionManager.cpp psOldGen.hpp -psCompactionManager.cpp stack.inline.hpp -psCompactionManager.cpp systemDictionary.hpp - -psCompactionManager.hpp allocation.hpp -psCompactionManager.hpp stack.hpp -psCompactionManager.hpp taskqueue.hpp - -psCompactionManager.inline.hpp psCompactionManager.hpp -psCompactionManager.inline.hpp psParallelCompact.hpp - -psGCAdaptivePolicyCounters.hpp gcAdaptivePolicyCounters.hpp -psGCAdaptivePolicyCounters.hpp gcPolicyCounters.hpp -psGCAdaptivePolicyCounters.hpp psAdaptiveSizePolicy.hpp - -psGCAdaptivePolicyCounters.cpp arguments.hpp -psGCAdaptivePolicyCounters.cpp resourceArea.hpp -psGCAdaptivePolicyCounters.cpp psGCAdaptivePolicyCounters.hpp - -psGenerationCounters.cpp psGenerationCounters.hpp -psGenerationCounters.cpp resourceArea.hpp - -psGenerationCounters.hpp generationCounters.hpp -psGenerationCounters.hpp perfData.hpp -psGenerationCounters.hpp psVirtualspace.hpp - -psMarkSweep.cpp psAdaptiveSizePolicy.hpp -psMarkSweep.cpp biasedLocking.hpp -psMarkSweep.cpp codeCache.hpp -psMarkSweep.cpp events.hpp -psMarkSweep.cpp fprofiler.hpp -psMarkSweep.cpp gcCause.hpp -psMarkSweep.cpp gcLocker.inline.hpp -psMarkSweep.cpp generationSizer.hpp -psMarkSweep.cpp isGCActiveMark.hpp -psMarkSweep.cpp oop.inline.hpp -psMarkSweep.cpp memoryService.hpp -psMarkSweep.cpp management.hpp -psMarkSweep.cpp parallelScavengeHeap.hpp -psMarkSweep.cpp psMarkSweep.hpp -psMarkSweep.cpp psMarkSweepDecorator.hpp -psMarkSweep.cpp psOldGen.hpp -psMarkSweep.cpp psPermGen.hpp -psMarkSweep.cpp psScavenge.hpp -psMarkSweep.cpp psYoungGen.hpp -psMarkSweep.cpp referencePolicy.hpp -psMarkSweep.cpp referenceProcessor.hpp -psMarkSweep.cpp safepoint.hpp -psMarkSweep.cpp spaceDecorator.hpp -psMarkSweep.cpp stack.inline.hpp -psMarkSweep.cpp symbolTable.hpp -psMarkSweep.cpp systemDictionary.hpp -psMarkSweep.cpp vmThread.hpp - -psMarkSweep.hpp markSweep.inline.hpp -psMarkSweep.hpp collectorCounters.hpp -psMarkSweep.hpp stack.hpp - -psMarkSweepDecorator.cpp liveRange.hpp -psMarkSweepDecorator.cpp markSweep.inline.hpp -psMarkSweepDecorator.cpp objectStartArray.hpp -psMarkSweepDecorator.cpp oop.inline.hpp -psMarkSweepDecorator.cpp parallelScavengeHeap.hpp -psMarkSweepDecorator.cpp psMarkSweep.hpp -psMarkSweepDecorator.cpp psMarkSweepDecorator.hpp -psMarkSweepDecorator.cpp spaceDecorator.hpp -psMarkSweepDecorator.cpp systemDictionary.hpp - -psMarkSweepDecorator.hpp mutableSpace.hpp - -psParallelCompact.cpp psAdaptiveSizePolicy.hpp -psParallelCompact.cpp codeCache.hpp -psParallelCompact.cpp events.hpp -psParallelCompact.cpp fprofiler.hpp -psParallelCompact.cpp gcCause.hpp -psParallelCompact.cpp gcLocker.inline.hpp -psParallelCompact.cpp gcTaskManager.hpp -psParallelCompact.cpp generationSizer.hpp -psParallelCompact.cpp isGCActiveMark.hpp -psParallelCompact.cpp management.hpp -psParallelCompact.cpp memoryService.hpp -psParallelCompact.cpp methodDataOop.hpp -psParallelCompact.cpp oop.inline.hpp -psParallelCompact.cpp oop.pcgc.inline.hpp -psParallelCompact.cpp parallelScavengeHeap.inline.hpp -psParallelCompact.cpp pcTasks.hpp -psParallelCompact.cpp psMarkSweep.hpp -psParallelCompact.cpp psMarkSweepDecorator.hpp -psParallelCompact.cpp psCompactionManager.inline.hpp -psParallelCompact.cpp psPromotionManager.inline.hpp -psParallelCompact.cpp psOldGen.hpp -psParallelCompact.cpp psParallelCompact.hpp -psParallelCompact.cpp psPermGen.hpp -psParallelCompact.cpp psScavenge.hpp -psParallelCompact.cpp psYoungGen.hpp -psParallelCompact.cpp referencePolicy.hpp -psParallelCompact.cpp referenceProcessor.hpp -psParallelCompact.cpp safepoint.hpp -psParallelCompact.cpp stack.inline.hpp -psParallelCompact.cpp symbolTable.hpp -psParallelCompact.cpp systemDictionary.hpp -psParallelCompact.cpp vmThread.hpp - -psParallelCompact.hpp collectorCounters.hpp -psParallelCompact.hpp markSweep.hpp -psParallelCompact.hpp mutableSpace.hpp -psParallelCompact.hpp objectStartArray.hpp -psParallelCompact.hpp oop.hpp -psParallelCompact.hpp parMarkBitMap.hpp -psParallelCompact.hpp psCompactionManager.hpp -psParallelCompact.hpp sharedHeap.hpp - -psOldGen.cpp psAdaptiveSizePolicy.hpp -psOldGen.cpp cardTableModRefBS.hpp -psOldGen.cpp gcLocker.inline.hpp -psOldGen.cpp java.hpp -psOldGen.cpp oop.inline.hpp -psOldGen.cpp parallelScavengeHeap.hpp -psOldGen.cpp psMarkSweepDecorator.hpp -psOldGen.cpp psOldGen.hpp -psOldGen.cpp spaceDecorator.hpp - -psOldGen.hpp psGenerationCounters.hpp -psOldGen.hpp mutableSpace.hpp -psOldGen.hpp objectStartArray.hpp -psOldGen.hpp psVirtualspace.hpp -psOldGen.hpp safepoint.hpp -psOldGen.hpp spaceCounters.hpp - -psPermGen.cpp gcUtil.hpp -psPermGen.cpp markOop.inline.hpp -psPermGen.cpp markSweep.inline.hpp -psPermGen.cpp parallelScavengeHeap.hpp -psPermGen.cpp psMarkSweepDecorator.hpp -psPermGen.cpp psParallelCompact.hpp -psPermGen.cpp psPermGen.hpp - -psPermGen.hpp psOldGen.hpp - -psPromotionManager.cpp memRegion.hpp -psPromotionManager.cpp mutableSpace.hpp -psPromotionManager.cpp oop.inline.hpp -psPromotionManager.cpp oop.psgc.inline.hpp -psPromotionManager.cpp parallelScavengeHeap.hpp -psPromotionManager.cpp psOldGen.hpp -psPromotionManager.cpp psPromotionManager.inline.hpp -psPromotionManager.cpp psScavenge.inline.hpp - -psPromotionManager.hpp allocation.hpp -psPromotionManager.hpp psPromotionLAB.hpp -psPromotionManager.hpp taskqueue.hpp - -psPromotionManager.inline.hpp psPromotionManager.hpp -psPromotionManager.inline.hpp psScavenge.hpp - -psPromotionLAB.cpp mutableSpace.hpp -psPromotionLAB.cpp oop.inline.hpp -psPromotionLAB.cpp parallelScavengeHeap.hpp -psPromotionLAB.cpp psPromotionLAB.hpp - -psPromotionLAB.hpp allocation.hpp -psPromotionLAB.hpp objectStartArray.hpp - -psScavenge.cpp psAdaptiveSizePolicy.hpp -psScavenge.cpp biasedLocking.hpp -psScavenge.cpp cardTableExtension.hpp -psScavenge.cpp collectorPolicy.hpp -psScavenge.cpp fprofiler.hpp -psScavenge.cpp gcCause.hpp -psScavenge.cpp gcLocker.inline.hpp -psScavenge.cpp gcTaskManager.hpp -psScavenge.cpp generationSizer.hpp -psScavenge.cpp handles.inline.hpp -psScavenge.cpp isGCActiveMark.hpp -psScavenge.cpp oop.inline.hpp -psScavenge.cpp oop.psgc.inline.hpp -psScavenge.cpp memoryService.hpp -psScavenge.cpp parallelScavengeHeap.hpp -psScavenge.cpp psMarkSweep.hpp -psScavenge.cpp psParallelCompact.hpp -psScavenge.cpp psScavenge.inline.hpp -psScavenge.cpp psTasks.hpp -psScavenge.cpp referencePolicy.hpp -psScavenge.cpp referenceProcessor.hpp -psScavenge.cpp resourceArea.hpp -psScavenge.cpp spaceDecorator.hpp -psScavenge.cpp stack.inline.hpp -psScavenge.cpp threadCritical.hpp -psScavenge.cpp vmThread.hpp -psScavenge.cpp vm_operations.hpp - -psScavenge.hpp allocation.hpp -psScavenge.hpp cardTableExtension.hpp -psScavenge.hpp collectorCounters.hpp -psScavenge.hpp oop.hpp -psScavenge.hpp psVirtualspace.hpp -psScavenge.hpp stack.hpp - -psScavenge.inline.hpp cardTableExtension.hpp -psScavenge.inline.hpp parallelScavengeHeap.hpp -psScavenge.inline.hpp psPromotionManager.hpp -psScavenge.inline.hpp psScavenge.hpp - -pcTasks.cpp codeCache.hpp -pcTasks.cpp collectedHeap.hpp -pcTasks.cpp fprofiler.hpp -pcTasks.cpp jniHandles.hpp -pcTasks.cpp jvmtiExport.hpp -pcTasks.cpp management.hpp -pcTasks.cpp objArrayKlass.inline.hpp -pcTasks.cpp psParallelCompact.hpp -pcTasks.cpp pcTasks.hpp -pcTasks.cpp oop.inline.hpp -pcTasks.cpp oop.pcgc.inline.hpp -pcTasks.cpp systemDictionary.hpp -pcTasks.cpp thread.hpp -pcTasks.cpp universe.hpp -pcTasks.cpp vmThread.hpp - -pcTasks.hpp gcTaskManager.hpp -pcTasks.hpp psTasks.hpp - -psTasks.cpp cardTableExtension.hpp -psTasks.cpp codeCache.hpp -psTasks.cpp fprofiler.hpp -psTasks.cpp gcTaskManager.hpp -psTasks.cpp iterator.hpp -psTasks.cpp management.hpp -psTasks.cpp oop.inline.hpp -psTasks.cpp oop.psgc.inline.hpp -psTasks.cpp psMarkSweep.hpp -psTasks.cpp psPromotionManager.hpp -psTasks.cpp psPromotionManager.inline.hpp -psTasks.cpp psScavenge.hpp -psTasks.cpp psTasks.hpp -psTasks.cpp systemDictionary.hpp -psTasks.cpp taskqueue.hpp -psTasks.cpp thread.hpp -psTasks.cpp universe.hpp -psTasks.cpp vmThread.hpp - -psTasks.hpp allocation.hpp -psTasks.hpp growableArray.hpp - -psVirtualspace.hpp virtualspace.hpp - -psVirtualspace.cpp os.hpp -psVirtualspace.cpp os_.inline.hpp -psVirtualspace.cpp psVirtualspace.hpp -psVirtualspace.cpp virtualspace.hpp - -psYoungGen.cpp gcUtil.hpp -psYoungGen.cpp java.hpp -psYoungGen.cpp oop.inline.hpp -psYoungGen.cpp parallelScavengeHeap.hpp -psYoungGen.cpp psMarkSweepDecorator.hpp -psYoungGen.cpp psScavenge.hpp -psYoungGen.cpp psYoungGen.hpp -psYoungGen.cpp mutableNUMASpace.hpp -psYoungGen.cpp spaceDecorator.hpp - -psYoungGen.hpp psGenerationCounters.hpp -psYoungGen.hpp mutableSpace.hpp -psYoungGen.hpp objectStartArray.hpp -psYoungGen.hpp spaceCounters.hpp -psYoungGen.hpp psVirtualspace.hpp - -vmPSOperations.cpp dtrace.hpp -vmPSOperations.cpp parallelScavengeHeap.inline.hpp -vmPSOperations.cpp gcLocker.inline.hpp -vmPSOperations.cpp psMarkSweep.hpp -vmPSOperations.cpp psScavenge.hpp -vmPSOperations.cpp psScavenge.inline.hpp -vmPSOperations.cpp vmPSOperations.hpp - -vmPSOperations.hpp gcCause.hpp -vmPSOperations.hpp parallelScavengeHeap.hpp -vmPSOperations.hpp vmGCOperations.hpp diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_serial b/hotspot/src/share/vm/gc_implementation/includeDB_gc_serial deleted file mode 100644 index df6272f68c7..00000000000 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_serial +++ /dev/null @@ -1,127 +0,0 @@ -// -// Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -adaptiveSizePolicy.hpp collectedHeap.hpp -adaptiveSizePolicy.hpp gcCause.hpp -adaptiveSizePolicy.hpp gcUtil.hpp -adaptiveSizePolicy.hpp allocation.hpp -adaptiveSizePolicy.hpp universe.hpp - -adaptiveSizePolicy.cpp adaptiveSizePolicy.hpp -adaptiveSizePolicy.cpp collectorPolicy.hpp -adaptiveSizePolicy.cpp gcCause.hpp -adaptiveSizePolicy.cpp ostream.hpp -adaptiveSizePolicy.cpp timer.hpp - -ageTable.cpp ageTable.hpp -ageTable.cpp collectorPolicy.hpp -ageTable.cpp copy.hpp -ageTable.cpp gcPolicyCounters.hpp -ageTable.cpp resourceArea.hpp -ageTable.cpp sharedHeap.hpp - -ageTable.hpp markOop.hpp -ageTable.hpp oop.hpp -ageTable.hpp perfData.hpp - -collectorCounters.cpp collectorCounters.hpp -collectorCounters.cpp resourceArea.hpp - -collectorCounters.hpp perfData.hpp - -cSpaceCounters.cpp resourceArea.hpp -cSpaceCounters.cpp cSpaceCounters.hpp - -cSpaceCounters.hpp space.inline.hpp -cSpaceCounters.hpp perfData.hpp -cSpaceCounters.hpp generationCounters.hpp - -gcPolicyCounters.cpp resourceArea.hpp -gcPolicyCounters.cpp gcPolicyCounters.hpp - -gcPolicyCounters.hpp perfData.hpp - -gcStats.cpp gcStats.hpp -gcStats.cpp gcUtil.hpp - -gcStats.hpp gcUtil.hpp - -gcUtil.cpp gcUtil.hpp - -gcUtil.hpp allocation.hpp -gcUtil.hpp debug.hpp -gcUtil.hpp globalDefinitions.hpp -gcUtil.hpp ostream.hpp -gcUtil.hpp timer.hpp - -generationCounters.cpp generationCounters.hpp -generationCounters.cpp resourceArea.hpp - -generationCounters.hpp perfData.hpp -generationCounters.hpp virtualspace.hpp - -immutableSpace.hpp iterator.hpp - -liveRange.hpp copy.hpp -liveRange.hpp memRegion.hpp - -markSweep.cpp collectedHeap.inline.hpp -markSweep.cpp markSweep.inline.hpp -markSweep.cpp oop.inline.hpp - -markSweep.hpp growableArray.hpp -markSweep.hpp markOop.hpp -markSweep.hpp oop.hpp -markSweep.hpp stack.hpp -markSweep.hpp timer.hpp -markSweep.hpp universe.hpp - -markSweep.inline.hpp collectedHeap.hpp -markSweep.inline.hpp markSweep.hpp -markSweep.inline.hpp stack.inline.hpp - -mutableSpace.hpp immutableSpace.hpp -mutableSpace.hpp memRegion.hpp -mutableSpace.hpp copy.hpp - -vmGCOperations.cpp vmGCOperations.hpp -vmGCOperations.cpp dtrace.hpp -vmGCOperations.cpp classLoader.hpp -vmGCOperations.cpp gcLocker.inline.hpp -vmGCOperations.cpp genCollectedHeap.hpp -vmGCOperations.cpp handles.inline.hpp -vmGCOperations.cpp init.hpp -vmGCOperations.cpp instanceKlass.hpp -vmGCOperations.cpp instanceRefKlass.hpp -vmGCOperations.cpp interfaceSupport.hpp -vmGCOperations.cpp javaClasses.hpp -vmGCOperations.cpp jvmtiExport.hpp -vmGCOperations.cpp oopFactory.hpp -vmGCOperations.cpp preserveException.hpp - -vmGCOperations.hpp vm_operations.hpp -vmGCOperations.hpp heapInspection.hpp -vmGCOperations.hpp handles.hpp -vmGCOperations.hpp jniHandles.hpp -vmGCOperations.hpp synchronizer.hpp diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared b/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared deleted file mode 100644 index 91e5876b8fe..00000000000 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared +++ /dev/null @@ -1,90 +0,0 @@ -// -// Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -concurrentGCThread.cpp concurrentGCThread.hpp -concurrentGCThread.cpp init.hpp -concurrentGCThread.cpp instanceRefKlass.hpp -concurrentGCThread.cpp interfaceSupport.hpp -concurrentGCThread.cpp java.hpp -concurrentGCThread.cpp javaCalls.hpp -concurrentGCThread.cpp oop.inline.hpp -concurrentGCThread.cpp systemDictionary.hpp - -concurrentGCThread.hpp thread.hpp - -allocationStats.cpp allocationStats.hpp -allocationStats.cpp ostream.hpp - -allocationStats.hpp allocation.hpp -allocationStats.hpp gcUtil.hpp -allocationStats.hpp globalDefinitions.hpp - -gcAdaptivePolicyCounters.hpp adaptiveSizePolicy.hpp -gcAdaptivePolicyCounters.hpp gcPolicyCounters.hpp - -gcAdaptivePolicyCounters.cpp resourceArea.hpp -gcAdaptivePolicyCounters.cpp gcAdaptivePolicyCounters.hpp - -gSpaceCounters.cpp generation.hpp -gSpaceCounters.cpp resourceArea.hpp -gSpaceCounters.cpp gSpaceCounters.hpp - -gSpaceCounters.hpp generation.hpp -gSpaceCounters.hpp perfData.hpp -gSpaceCounters.hpp generationCounters.hpp - -immutableSpace.cpp immutableSpace.hpp -immutableSpace.cpp oop.inline.hpp -immutableSpace.cpp universe.hpp - -isGCActiveMark.hpp parallelScavengeHeap.hpp - -markSweep.inline.hpp psParallelCompact.hpp - -mutableNUMASpace.cpp mutableNUMASpace.hpp -mutableNUMASpace.cpp oop.inline.hpp -mutableNUMASpace.cpp sharedHeap.hpp -mutableNUMASpace.cpp spaceDecorator.hpp -mutableNUMASpace.cpp thread_.inline.hpp - -mutableNUMASpace.hpp mutableSpace.hpp -mutableNUMASpace.hpp gcUtil.hpp - -mutableSpace.cpp mutableSpace.hpp -mutableSpace.cpp oop.inline.hpp -mutableSpace.cpp safepoint.hpp -mutableSpace.cpp spaceDecorator.hpp -mutableSpace.cpp thread.hpp - -spaceCounters.cpp resourceArea.hpp -spaceCounters.cpp spaceCounters.hpp - -spaceCounters.hpp immutableSpace.hpp -spaceCounters.hpp mutableSpace.hpp -spaceCounters.hpp perfData.hpp -spaceCounters.hpp generationCounters.hpp - -vmGCOperations.cpp g1CollectedHeap.inline.hpp diff --git a/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp index 868ff816575..a18933356a7 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,17 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_asParNewGeneration.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsAdaptiveSizePolicy.hpp" +#include "gc_implementation/concurrentMarkSweep/cmsGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parNew/asParNewGeneration.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/defNewGeneration.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "oops/markOop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" ASParNewGeneration::ASParNewGeneration(ReservedSpace rs, size_t initial_byte_size, diff --git a/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp b/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp index 2a8a24a0e33..70646fe9b08 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_ASPARNEWGENERATION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_ASPARNEWGENERATION_HPP + +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" + // A Generation that does parallel young-gen collection extended // for adaptive size policy. @@ -88,3 +94,5 @@ class ASParNewGeneration: public ParNewGeneration { // Space boundary invariant checker void space_invariants() PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_ASPARNEWGENERATION_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp index 77e6a757d46..d3b054c59ac 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parCardTableModRefBS.cpp.incl" +#include "precompiled.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/cardTableRS.hpp" +#include "memory/sharedHeap.hpp" +#include "memory/space.inline.hpp" +#include "memory/universe.hpp" +#include "runtime/java.hpp" +#include "runtime/mutexLocker.hpp" +#include "runtime/virtualspace.hpp" void CardTableModRefBS::par_non_clean_card_iterate_work(Space* sp, MemRegion mr, DirtyCardToOopClosure* dcto_cl, diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp index ef5c22c79bf..466d2f63225 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parGCAllocBuffer.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "memory/sharedHeap.hpp" +#include "oops/arrayOop.hpp" +#include "oops/oop.inline.hpp" ParGCAllocBuffer::ParGCAllocBuffer(size_t desired_plab_sz_) : _word_sz(desired_plab_sz_), _bottom(NULL), _top(NULL), diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp index b4a5b0a625f..be7abd60655 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARGCALLOCBUFFER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARGCALLOCBUFFER_HPP + +#include "memory/allocation.hpp" +#include "memory/threadLocalAllocBuffer.hpp" +#include "utilities/globalDefinitions.hpp" + // Forward decl. class PLABStats; @@ -237,3 +244,5 @@ public: return MemRegion(_top, _true_end); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARGCALLOCBUFFER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp index 12064fa7aa0..2b63c9382f4 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @@ -22,8 +22,33 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parNewGeneration.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp" +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/parNew/parOopClosures.inline.hpp" +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_implementation/shared/ageTable.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/defNewGeneration.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/genOopClosures.inline.hpp" +#include "memory/generation.hpp" +#include "memory/generation.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/resourceArea.hpp" +#include "memory/sharedHeap.hpp" +#include "memory/space.hpp" +#include "oops/objArrayOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "runtime/handles.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/thread.hpp" +#include "utilities/copy.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/workgroup.hpp" #ifdef _MSC_VER #pragma warning( push ) diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp index c10531f4f1d..296eb8254b9 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARNEWGENERATION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARNEWGENERATION_HPP + +#include "gc_implementation/parNew/parGCAllocBuffer.hpp" +#include "memory/defNewGeneration.hpp" +#include "utilities/taskqueue.hpp" + class ChunkArray; class ParScanWithoutBarrierClosure; class ParScanWithBarrierClosure; @@ -422,3 +429,5 @@ class ParNewGeneration: public DefNewGeneration { DEBUG_ONLY(static bool is_legal_forward_ptr(oop p);) }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PARNEWGENERATION_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.hpp index c6a2543d0f5..747868fc5f5 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_HPP + +#include "memory/genOopClosures.hpp" + // Closures for ParNewGeneration class ParScanThreadState; @@ -141,3 +146,5 @@ class ParEvacuateFollowersClosure: public VoidClosure { ParallelTaskTerminator* terminator_); virtual void do_void(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp index a540321fffa..c9c50b3f6a3 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_INLINE_HPP + +#include "gc_implementation/parNew/parNewGeneration.hpp" +#include "gc_implementation/parNew/parOopClosures.hpp" +#include "memory/cardTableRS.hpp" + template inline void ParScanWeakRefClosure::do_oop_work(T* p) { assert (!oopDesc::is_null(*p), "null weak reference?"); oop obj = oopDesc::load_decode_heap_oop_not_null(p); @@ -107,3 +114,5 @@ inline void ParScanWithBarrierClosure::do_oop_nv(narrowOop* p) { ParScanClosure: inline void ParScanWithoutBarrierClosure::do_oop_nv(oop* p) { ParScanClosure::do_oop_work(p, false, false); } inline void ParScanWithoutBarrierClosure::do_oop_nv(narrowOop* p) { ParScanClosure::do_oop_work(p, false, false); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_PAROOPCLOSURES_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp b/hotspot/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp index 2e198c689d8..c07f084c0e4 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/vmStructs_parNew.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARNEW_VMSTRUCTS_PARNEW_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARNEW_VMSTRUCTS_PARNEW_HPP + #define VM_TYPES_PARNEW(declare_type) \ declare_type(ParNewGeneration, DefNewGeneration) #define VM_INT_CONSTANTS_PARNEW(declare_constant) \ declare_constant(Generation::ParNew) + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARNEW_VMSTRUCTS_PARNEW_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp index ab94cf21930..06f0f34e0de 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_adjoiningGenerations.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/adjoiningGenerations.hpp" +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" // If boundary moving is being used, create the young gen and old // gen with ASPSYoungGen and ASPSOldGen, respectively. Revert to diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp index aec8430d839..77fe9e022e5 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningGenerations.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGGENERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGGENERATIONS_HPP + +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/asPSOldGen.hpp" +#include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" + // Contains two generations that both use an AdjoiningVirtualSpaces. // The two generations are adjacent in the reserved space for the @@ -75,3 +83,5 @@ class AdjoiningGenerations : public CHeapObj { // for the adjoining generations. size_t reserved_byte_size(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGGENERATIONS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp index 7a3baf407b0..e21f7a7a6e4 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_adjoiningVirtualSpaces.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "runtime/java.hpp" AdjoiningVirtualSpaces::AdjoiningVirtualSpaces(ReservedSpace rs, size_t min_low_byte_size, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp index a8ff87acd91..ed860c204a0 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGVIRTUALSPACES_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGVIRTUALSPACES_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" + // Contains two virtual spaces that each can individually span // most of the reserved region but committed parts of which @@ -106,3 +111,5 @@ class AdjoiningVirtualSpaces { size_t init_low_byte_size, size_t init_high_byte_size); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ADJOININGVIRTUALSPACES_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp index 2edd3025864..0c12e98bea4 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_asPSOldGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/asPSOldGen.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" // Whereas PSOldGen takes the maximum size of the generation // (which doesn't change in the case of PSOldGen) as a parameter, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp index 60ed93cd8fd..3de4f9793a6 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSOldGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSOLDGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSOLDGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" + class ASPSOldGen : public PSOldGen { friend class VMStructs; size_t _gen_size_limit; // Largest size the generation's reserved size @@ -55,3 +65,5 @@ class ASPSOldGen : public PSOldGen { // Debugging support virtual const char* short_name() const { return "ASPSOldGen"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSOLDGEN_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp index 8edd351fc8c..73b63043b71 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_asPSYoungGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/asPSYoungGen.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" ASPSYoungGen::ASPSYoungGen(size_t init_byte_size, size_t minimum_byte_size, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp index 6f56c3d60aa..6f5409239c7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,17 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSYOUNGGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSYOUNGGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" + class ASPSYoungGen : public PSYoungGen { friend class VMStructs; private: @@ -62,3 +73,5 @@ class ASPSYoungGen : public PSYoungGen { // Printing support virtual const char* short_name() const { return "ASPSYoungGen"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_ASPSYOUNGGEN_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp index e9da8d5fa66..5b06d3126f6 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cardTableExtension.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" // Checks an individual oop for missing precise marks. Mark // may be either dirty or newgen. diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp index 90243a72106..00d6673e1b0 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_CARDTABLEEXTENSION_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_CARDTABLEEXTENSION_HPP + +#include "memory/cardTableModRefBS.hpp" + class MutableSpace; class ObjectStartArray; class PSPromotionManager; @@ -108,3 +113,5 @@ class CardTableExtension : public CardTableModRefBS { #endif // ASSERT }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_CARDTABLEEXTENSION_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp index 9b596d84134..c4c5120410f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_gcTaskManager.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/gcTaskThread.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/mutex.hpp" +#include "runtime/mutexLocker.hpp" // // GCTask diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp index 6976bf4b182..3bd3af1e306 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKMANAGER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKMANAGER_HPP + +#include "runtime/mutex.hpp" +#include "utilities/growableArray.hpp" + // // The GCTaskManager is a queue of GCTasks, and accessors // to allow the queue to be accessed from many threads. @@ -636,3 +642,5 @@ private: return _freelist; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKMANAGER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp index 28651a15bce..41c90f9ece7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_gcTaskThread.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/gcTaskThread.hpp" +#include "memory/allocation.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/handles.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/os.hpp" +#include "runtime/thread.hpp" GCTaskThread::GCTaskThread(GCTaskManager* manager, uint which, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp index 6968a6d9698..7fc907bf0c7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKTHREAD_HPP + +#include "runtime/thread.hpp" + // Forward declarations of classes defined here. class GCTaskThread; class GCTaskTimeStamp; @@ -97,3 +102,5 @@ class GCTaskTimeStamp : public CHeapObj void set_exit_time(jlong time) { _exit_time = time; } void set_name(char* name) { _name = name; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GCTASKTHREAD_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp index 9aa85924281..854b09ac5be 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP + +#include "memory/collectorPolicy.hpp" + // There is a nice batch of tested generation sizing code in // TwoGenerationCollectorPolicy. Lets reuse it! @@ -67,3 +72,5 @@ class GenerationSizer : public TwoGenerationCollectorPolicy { size_t perm_gen_size() { return PermSize; } size_t max_perm_gen_size() { return MaxPermSize; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_GENERATIONSIZER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp index e697b31a0cd..1b80839213d 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_objectStartArray.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "memory/allocation.inline.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" void ObjectStartArray::initialize(MemRegion reserved_region) { // We're based on the assumption that we use the same diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp index dcf6fc35535..cea680b58b1 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_OBJECTSTARTARRAY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_OBJECTSTARTARRAY_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "memory/allocation.hpp" +#include "memory/memRegion.hpp" +#include "oops/oop.hpp" + // // This class can be used to locate the beginning of an object in the // covered region. @@ -160,3 +168,5 @@ class ObjectStartArray : public CHeapObj { // "start", the method will return true. bool object_starts_in_range(HeapWord* start_addr, HeapWord* end_addr) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_OBJECTSTARTARRAY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp index e8963cb8eb7..f43fffce1b7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,22 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parMarkBitMap.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/os.hpp" +#include "utilities/bitMap.inline.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif bool ParMarkBitMap::initialize(MemRegion covered_region) diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp index 02376bf2a4a..9f8c2042bd6 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "utilities/bitMap.inline.hpp" + class oopDesc; class ParMarkBitMapClosure; @@ -426,3 +432,5 @@ inline void ParMarkBitMap::verify_addr(HeapWord* addr) const { assert(addr <= region_start() + region_size(), "addr too big"); } #endif // #ifdef ASSERT + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp index aea032efb19..e94f75c6e27 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_INLINE_HPP + inline bool ParMarkBitMap::mark_obj(oop obj) { return mark_obj(obj, obj->size()); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARMARKBITMAP_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp index f3506296d37..5eebf243751 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp @@ -22,8 +22,25 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_parallelScavengeHeap.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/adjoiningGenerations.hpp" +#include "gc_implementation/parallelScavenge/adjoiningVirtualSpaces.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/vmPSOperations.hpp" +#include "memory/gcLocker.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/java.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/vmError.hpp" PSYoungGen* ParallelScavengeHeap::_young_gen = NULL; PSOldGen* ParallelScavengeHeap::_old_gen = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp index e8f25be68fe..44f6640d0ae 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "utilities/ostream.hpp" + class AdjoiningGenerations; class GCTaskManager; class PSAdaptiveSizePolicy; @@ -263,3 +275,5 @@ inline size_t ParallelScavengeHeap::set_alignment(size_t& var, size_t val) var = round_to(val, intra_heap_alignment()); return var; } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp index 182b5054565..092a0392d3b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_INLINE_HPP + +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" + inline size_t ParallelScavengeHeap::total_invocations() { return UseParallelOldGC ? PSParallelCompact::total_invocations() : @@ -49,3 +57,5 @@ inline bool ParallelScavengeHeap::is_in_young(oop p) { inline bool ParallelScavengeHeap::is_in_old_or_perm(oop p) { return old_gen()->is_in_reserved(p) || perm_gen()->is_in_reserved(p); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PARALLELSCAVENGEHEAP_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp index 27b67627309..2054dc4a36c 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,22 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_pcTasks.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/pcTasks.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "memory/universe.hpp" +#include "oops/objArrayKlass.inline.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/thread.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" // // ThreadRootsMarkingTask diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp index 3bc4f1b6f94..fd6ee5e76e8 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PCTASKS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PCTASKS_HPP + +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" + // Tasks for parallel compaction of the old generation // @@ -250,3 +257,5 @@ class DrainStacksCompactionTask : public GCTask { char* name() { return (char *)"drain-region-task"; } virtual void do_it(GCTaskManager* manager, uint which); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PCTASKS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp index 643129e8a3c..1ac281813a5 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp @@ -22,8 +22,16 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psAdaptiveSizePolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/collectorPolicy.hpp" +#include "runtime/timer.hpp" +#include "utilities/top.hpp" #include diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp index a178ee06a27..e5e4e4ce9a9 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSADAPTIVESIZEPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSADAPTIVESIZEPOLICY_HPP + +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_interface/gcCause.hpp" + // This class keeps statistical information and computes the // optimal free space for both the young and old generation // based on current application characteristics (based on gc cost @@ -384,3 +392,5 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy { // Printing support virtual bool print_adaptive_size_policy_on(outputStream* st) const; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSADAPTIVESIZEPOLICY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp index 1ce20cdbf2b..24b9ddea001 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp @@ -22,8 +22,20 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psCompactionManager.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psCompactionManager.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "oops/objArrayKlass.inline.hpp" +#include "oops/oop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "utilities/stack.inline.hpp" PSOldGen* ParCompactionManager::_old_gen = NULL; ParCompactionManager** ParCompactionManager::_manager_array = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp index 24723c9e7bb..cbf1b7d0301 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_HPP + +#include "memory/allocation.hpp" +#include "utilities/stack.hpp" +#include "utilities/taskqueue.hpp" + // Move to some global location #define HAS_BEEN_MOVED 0x1501d01d // End move to some global location @@ -167,3 +174,5 @@ inline ParCompactionManager* ParCompactionManager::manager_array(int index) { bool ParCompactionManager::marking_stacks_empty() const { return _marking_stack.is_empty() && _objarray_stack.is_empty(); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp index 1894cb5e7f5..6cf76353d9c 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP + +#include "gc_implementation/parallelScavenge/psCompactionManager.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" + void ParCompactionManager::push_objarray(oop obj, size_t index) { ObjArrayTask task(obj, index); @@ -39,3 +45,5 @@ void ParCompactionManager::push_region(size_t index) #endif region_stack()->push(index); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSCOMPACTIONMANAGER_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp index 092c8fbf135..7e5bc9aab9a 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.cpp @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psGCAdaptivePolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/arguments.hpp" diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp index 53ea94417e8..c6839705625 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGCADAPTIVEPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGCADAPTIVEPOLICYCOUNTERS_HPP + +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcAdaptivePolicyCounters.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" + // PSGCAdaptivePolicyCounters is a holder class for performance counters // that track the data and decisions for the ergonomics policy for the // parallel scavenge collector. @@ -200,3 +207,5 @@ class PSGCAdaptivePolicyCounters : public GCAdaptivePolicyCounters { return GCPolicyCounters::PSGCAdaptivePolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGCADAPTIVEPOLICYCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp index 85438c88d38..67378de145e 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psGenerationCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/psGenerationCounters.hpp" +#include "memory/resourceArea.hpp" PSGenerationCounters::PSGenerationCounters(const char* name, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp index 065129d327a..a86677956a8 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psGenerationCounters.hpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,6 +23,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGENERATIONCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGENERATIONCOUNTERS_HPP + +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "runtime/perfData.hpp" + // A PSGenerationCounter is a holder class for performance counters // that track a generation @@ -41,3 +48,5 @@ class PSGenerationCounters: public GenerationCounters { _current_size->set_value(_ps_virtual_space->committed_size()); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSGENERATIONCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp index 9905cfe82ed..3efa4ceaeae 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp @@ -22,8 +22,34 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psMarkSweep.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/referenceProcessor.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" +#include "services/memoryService.hpp" +#include "utilities/events.hpp" +#include "utilities/stack.inline.hpp" elapsedTimer PSMarkSweep::_accumulated_time; unsigned int PSMarkSweep::_total_invocations = 0; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp index 551a63f6f4d..832b1674203 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEP_HPP + +#include "gc_implementation/shared/collectorCounters.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "utilities/stack.hpp" + class PSAdaptiveSizePolicy; class PSYoungGen; class PSOldGen; @@ -83,3 +90,5 @@ class PSMarkSweep : public MarkSweep { // Time since last full gc (in milliseconds) static jlong millis_since_last_gc(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp index 8cdad2a7004..ade35fa4a6c 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psMarkSweepDecorator.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/shared/liveRange.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" PSMarkSweepDecorator* PSMarkSweepDecorator::_destination_decorator = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp index 45a9d96eeb0..9d721d61bc4 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEPDECORATOR_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEPDECORATOR_HPP + +#include "gc_implementation/shared/mutableSpace.hpp" + // // A PSMarkSweepDecorator is used to add "ParallelScavenge" style mark sweep operations // to a MutableSpace. @@ -73,3 +78,5 @@ class PSMarkSweepDecorator: public CHeapObj { void precompact(); void compact(bool mangle_free_space); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSMARKSWEEPDECORATOR_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp index 3898e2a8d89..df0865ee392 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psOldGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/gcLocker.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" inline const char* PSOldGen::select_name() { return UseParallelOldGC ? "ParOldGen" : "PSOldGen"; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp index 27360a1cbc8..0d9cdd75ddd 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSOLDGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSOLDGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psGenerationCounters.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" +#include "runtime/safepoint.hpp" + class PSMarkSweepDecorator; class PSOldGen : public CHeapObj { @@ -190,3 +200,5 @@ class PSOldGen : public CHeapObj { // Save the tops of all spaces for later use during mangling. void record_spaces_top() PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSOLDGEN_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index 57ff986c3ec..79e269dc7f3 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -22,8 +22,39 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psParallelCompact.cpp.incl" +#include "precompiled.hpp" +#include "classfile/symbolTable.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" +#include "gc_implementation/parallelScavenge/pcTasks.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psCompactionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/referenceProcessor.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.pcgc.inline.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" +#include "services/memoryService.hpp" +#include "utilities/events.hpp" +#include "utilities/stack.inline.hpp" #include diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 1d3ade7794a..e69730202d5 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPARALLELCOMPACT_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPARALLELCOMPACT_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/parMarkBitMap.hpp" +#include "gc_implementation/parallelScavenge/psCompactionManager.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "gc_implementation/shared/markSweep.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "memory/sharedHeap.hpp" +#include "oops/oop.hpp" + class ParallelScavengeHeap; class PSAdaptiveSizePolicy; class PSYoungGen; @@ -1514,3 +1526,5 @@ public: private: ObjectStartArray* const _start_array; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPARALLELCOMPACT_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp index 1224f224516..60fea316595 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psPermGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psPermGen.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "oops/markOop.inline.hpp" PSPermGen::PSPermGen(ReservedSpace rs, size_t alignment, size_t initial_size, size_t min_size, size_t max_size, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp index 43eedc6dd3b..7a890fc8d14 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPERMGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPERMGEN_HPP + +#include "gc_implementation/parallelScavenge/psOldGen.hpp" + class AdaptivePaddedAverage; class PSPermGen : public PSOldGen { @@ -51,3 +56,5 @@ class PSPermGen : public PSOldGen { virtual const char* name() const { return "PSPermGen"; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPERMGEN_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp index 3331a1fcab1..3569ed7b63d 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psPromotionLAB.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psPromotionLAB.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "oops/oop.inline.hpp" size_t PSPromotionLAB::filler_header_size; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp index 6e7e05c593e..bed0c0cdeeb 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONLAB_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONLAB_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "memory/allocation.hpp" + // // PSPromotionLAB is a parallel scavenge promotion lab. This class acts very // much like a MutableSpace. We couldn't embed a MutableSpace, though, as @@ -140,3 +146,5 @@ class PSOldPromotionLAB : public PSPromotionLAB { debug_only(virtual bool lab_is_valid(MemRegion lab)); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONLAB_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp index 5a805786266..8379004f636 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp @@ -22,8 +22,15 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psPromotionManager.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psOldGen.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "memory/memRegion.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" PSPromotionManager** PSPromotionManager::_manager_array = NULL; OopStarTaskQueueSet* PSPromotionManager::_stack_array_depth = NULL; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp index aa14478d480..80c09d9131c 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP + +#include "gc_implementation/parallelScavenge/psPromotionLAB.hpp" +#include "memory/allocation.hpp" +#include "utilities/taskqueue.hpp" + // // psPromotionManager is used by a single thread to manage object survival // during a scavenge. The promotion manager contains thread local data only. @@ -191,3 +198,5 @@ class PSPromotionManager : public CHeapObj { TASKQUEUE_STATS_ONLY(inline void record_steal(StarTask& p);) }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp index decc5e99a46..eae7eaded83 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_INLINE_HPP + +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" + inline PSPromotionManager* PSPromotionManager::manager_array(int index) { assert(_manager_array != NULL, "access of NULL manager_array"); assert(index >= 0 && index <= (int)ParallelGCThreads, "out of range manager_array access"); @@ -77,3 +83,5 @@ void PSPromotionManager::record_steal(StarTask& p) { } } #endif // TASKQUEUE_STATS + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp index 96add27c729..9cf294eb97c 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp @@ -22,9 +22,35 @@ * */ +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/generationSizer.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" +#include "gc_implementation/shared/isGCActiveMark.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/referencePolicy.hpp" +#include "memory/referenceProcessor.hpp" +#include "memory/resourceArea.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" +#include "runtime/biasedLocking.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/threadCritical.hpp" +#include "runtime/vmThread.hpp" +#include "runtime/vm_operations.hpp" +#include "services/memoryService.hpp" +#include "utilities/stack.inline.hpp" -# include "incls/_precompiled.incl" -# include "incls/_psScavenge.cpp.incl" HeapWord* PSScavenge::_to_space_top_before_gc = NULL; int PSScavenge::_consecutive_skipped_scavenges = 0; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp index 836106d8a5c..f3e65a16689 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP + +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "memory/allocation.hpp" +#include "oops/oop.hpp" +#include "utilities/stack.hpp" + class GCTaskManager; class GCTaskQueue; class OopStack; @@ -135,3 +145,5 @@ class PSScavenge: AllStatic { return result; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp index 3de87882fa5..5e67cf061ea 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_INLINE_HPP + +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" + inline void PSScavenge::save_to_space_top_before_gc() { ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); _to_space_top_before_gc = heap->young_gen()->to_space()->top(); @@ -77,3 +85,5 @@ inline void PSScavenge::copy_and_push_safe_barrier(PSPromotionManager* pm, } } } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSSCAVENGE_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp index 11774d941f1..5b38abb59f3 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp @@ -22,8 +22,25 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psTasks.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "code/codeCache.hpp" +#include "gc_implementation/parallelScavenge/cardTableExtension.hpp" +#include "gc_implementation/parallelScavenge/gcTaskManager.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.hpp" +#include "gc_implementation/parallelScavenge/psPromotionManager.inline.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psTasks.hpp" +#include "memory/iterator.hpp" +#include "memory/universe.hpp" +#include "oops/oop.inline.hpp" +#include "oops/oop.psgc.inline.hpp" +#include "runtime/fprofiler.hpp" +#include "runtime/thread.hpp" +#include "runtime/vmThread.hpp" +#include "services/management.hpp" +#include "utilities/taskqueue.hpp" // // ScavengeRootsTask diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp index 3e60cc4f1b3..7ae5b21cb38 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSTASKS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSTASKS_HPP + +#include "memory/allocation.hpp" +#include "utilities/growableArray.hpp" + // // psTasks.hpp is a collection of GCTasks used by the // parallelScavenge collector. @@ -144,3 +150,5 @@ class OldToYoungRootsTask : public GCTask { virtual void do_it(GCTaskManager* manager, uint which); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSTASKS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp index 0368449dabb..8eba8939764 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,19 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_psVirtualspace.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "runtime/os.hpp" +#include "runtime/virtualspace.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "os_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "os_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "os_windows.inline.hpp" +#endif // PSVirtualSpace diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp index 583cc2558e1..da452cab0dc 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psVirtualspace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSVIRTUALSPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSVIRTUALSPACE_HPP + +#include "runtime/virtualspace.hpp" + // VirtualSpace for the parallel scavenge collector. // // VirtualSpace is data structure for committing a previously reserved address @@ -173,3 +178,5 @@ inline void PSVirtualSpace::set_committed(char* low_addr, char* high_addr) { _committed_low_addr = low_addr; _committed_high_addr = high_addr; } + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSVIRTUALSPACE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp index 4fda98889e8..b5e6462e746 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,16 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_psYoungGen.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psYoungGen.hpp" +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/mutableNUMASpace.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/java.hpp" PSYoungGen::PSYoungGen(size_t initial_size, size_t min_size, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp index 20809b39925..3d4c566378e 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSYOUNGGEN_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSYOUNGGEN_HPP + +#include "gc_implementation/parallelScavenge/objectStartArray.hpp" +#include "gc_implementation/parallelScavenge/psGenerationCounters.hpp" +#include "gc_implementation/parallelScavenge/psVirtualspace.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceCounters.hpp" + class PSMarkSweepDecorator; class PSYoungGen : public CHeapObj { @@ -188,3 +197,5 @@ class PSYoungGen : public CHeapObj { void record_spaces_top() PRODUCT_RETURN; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSYOUNGGEN_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp index 1b86df65083..453c791621b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_vmPSOperations.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.inline.hpp" +#include "gc_implementation/parallelScavenge/psMarkSweep.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.hpp" +#include "gc_implementation/parallelScavenge/psScavenge.inline.hpp" +#include "gc_implementation/parallelScavenge/vmPSOperations.hpp" +#include "memory/gcLocker.inline.hpp" +#include "utilities/dtrace.hpp" // The following methods are used by the parallel scavenge collector VM_ParallelGCFailedAllocation::VM_ParallelGCFailedAllocation(size_t size, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp index e408a4e64c7..500a0db071a 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMPSOPERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMPSOPERATIONS_HPP + +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "gc_interface/gcCause.hpp" + class VM_ParallelGCFailedAllocation: public VM_GC_Operation { private: size_t _size; @@ -63,3 +70,5 @@ class VM_ParallelGCSystemGC: public VM_GC_Operation { virtual VMOp_Type type() const { return VMOp_ParallelGCSystemGC; } virtual void doit(); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMPSOPERATIONS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp index 37090149550..bd8a393da18 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/vmStructs_parallelgc.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,9 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMSTRUCTS_PARALLELGC_HPP +#define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMSTRUCTS_PARALLELGC_HPP + #define VM_STRUCTS_PARALLELGC(nonstatic_field, \ static_field) \ \ @@ -93,3 +96,5 @@ declare_toplevel_type(ASPSOldGen*) \ declare_toplevel_type(PSPermGen*) \ declare_toplevel_type(ParallelScavengeHeap*) + +#endif // SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_VMSTRUCTS_PARALLELGC_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp b/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp index 60f2f1fd6da..4c933f85b09 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.cpp @@ -21,9 +21,13 @@ * questions. * */ -#include "incls/_precompiled.incl" -#include "incls/_adaptiveSizePolicy.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/collectorPolicy.hpp" +#include "runtime/timer.hpp" +#include "utilities/ostream.hpp" elapsedTimer AdaptiveSizePolicy::_minor_timer; elapsedTimer AdaptiveSizePolicy::_major_timer; diff --git a/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp b/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp index 6bf9da53b72..4822eb4bf89 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/adaptiveSizePolicy.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_ADAPTIVESIZEPOLICY_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_ADAPTIVESIZEPOLICY_HPP + +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "gc_interface/gcCause.hpp" +#include "memory/allocation.hpp" +#include "memory/universe.hpp" + // This class keeps statistical information and computes the // size of the heap. @@ -503,3 +512,5 @@ class AdaptiveSizePolicyOutput : StackObj { } } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_ADAPTIVESIZEPOLICY_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/ageTable.cpp b/hotspot/src/share/vm/gc_implementation/shared/ageTable.cpp index 189be92e80e..bc74db8f777 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/ageTable.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/ageTable.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,12 +22,17 @@ * */ +#include "precompiled.hpp" +#include "gc_implementation/shared/ageTable.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "memory/collectorPolicy.hpp" +#include "memory/resourceArea.hpp" +#include "memory/sharedHeap.hpp" +#include "utilities/copy.hpp" + /* Copyright (c) 1992-2009 Oracle and/or its affiliates, and Stanford University. See the LICENSE file for license information. */ -# include "incls/_precompiled.incl" -# include "incls/_ageTable.cpp.incl" - ageTable::ageTable(bool global) { clear(); diff --git a/hotspot/src/share/vm/gc_implementation/shared/ageTable.hpp b/hotspot/src/share/vm/gc_implementation/shared/ageTable.hpp index 5343e884405..d763157e4f2 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/ageTable.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/ageTable.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_AGETABLE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_AGETABLE_HPP + +#include "oops/markOop.hpp" +#include "oops/oop.hpp" +#include "runtime/perfData.hpp" + /* Copyright (c) 1992-2009 Oracle and/or its affiliates, and Stanford University. See the LICENSE file for license information. */ @@ -64,3 +71,5 @@ class ageTable VALUE_OBJ_CLASS_SPEC { private: PerfVariable* _perf_sizes[table_size]; }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_AGETABLE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp index 67dcac43b9a..c24fc3bbf1a 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_allocationStats.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/allocationStats.hpp" +#include "utilities/ostream.hpp" +#endif // Technically this should be derived from machine speed, and // ideally it would be dynamically adjusted. diff --git a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp index 0ecf83e4cc8..b2d410ad617 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_ALLOCATIONSTATS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_ALLOCATIONSTATS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/gcUtil.hpp" +#include "memory/allocation.hpp" +#include "utilities/globalDefinitions.hpp" +#endif + class AllocationStats VALUE_OBJ_CLASS_SPEC { // A duration threshold (in ms) used to filter // possibly unreliable samples. @@ -157,3 +166,5 @@ class AllocationStats VALUE_OBJ_CLASS_SPEC { void set_returnedBytes(size_t v) { _returnedBytes = v; } ) }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_ALLOCATIONSTATS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp index e947845a782..e6820723007 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_cSpaceCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/cSpaceCounters.hpp" +#include "memory/resourceArea.hpp" CSpaceCounters::CSpaceCounters(const char* name, int ordinal, size_t max_size, ContiguousSpace* s, GenerationCounters* gc) : diff --git a/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp index 202968c61b6..d4a860eb842 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/cSpaceCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_CSPACECOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_CSPACECOUNTERS_HPP + +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/space.inline.hpp" +#include "runtime/perfData.hpp" + // A CSpaceCounters is a holder class for performance counters // that track a space; @@ -75,3 +82,5 @@ class ContiguousSpaceUsedHelper : public PerfLongSampleHelper { return _space->used(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CSPACECOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.cpp index 83549a1919a..91dad5e66e1 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_collectorCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/collectorCounters.hpp" +#include "memory/resourceArea.hpp" CollectorCounters::CollectorCounters(const char* name, int ordinal) { diff --git a/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.hpp index 8713c8ff254..b793f7b24db 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/collectorCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_COLLECTORCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_COLLECTORCOUNTERS_HPP + +#include "runtime/perfData.hpp" + // CollectorCounters is a holder class for performance counters // that track a collector @@ -78,3 +83,5 @@ class TraceCollectorStats: public PerfTraceTimedEvent { if (UsePerfData) _c->last_exit_counter()->set_value(os::elapsed_counter()); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_COLLECTORCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp index 6b81ed95f1b..594e70abaa3 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,10 +22,17 @@ * */ -// CopyrightVersion 1.2 +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/shared/concurrentGCThread.hpp" +#include "oops/instanceRefKlass.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/java.hpp" +#include "runtime/javaCalls.hpp" -# include "incls/_precompiled.incl" -# include "incls/_concurrentGCThread.cpp.incl" +// CopyrightVersion 1.2 int ConcurrentGCThread::_CGC_flag = CGC_nil; diff --git a/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp index f1cf29a8d3e..4f347b64fe7 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/concurrentGCThread.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP + +#ifndef SERIALGC +#include "runtime/thread.hpp" +#endif + class VoidClosure; // A SuspendibleThreadSet is (obviously) a set of threads that can be @@ -165,3 +172,5 @@ class SurrogateLockerThread: public JavaThread { void manipulatePLL(SLT_msg_type msg); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp index bc9561e44d7..3d95950e834 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gSpaceCounters.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/gSpaceCounters.hpp" +#include "memory/generation.hpp" +#include "memory/resourceArea.hpp" +#endif GSpaceCounters::GSpaceCounters(const char* name, int ordinal, size_t max_size, Generation* g, GenerationCounters* gc, diff --git a/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp index ed06ba75b61..85764c4f743 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gSpaceCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GSPACECOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GSPACECOUNTERS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/generation.hpp" +#include "runtime/perfData.hpp" +#endif + // A GSpaceCounter is a holder class for performance counters // that track a space; @@ -100,3 +109,5 @@ class GenerationUsedHelper : public PerfLongSampleHelper { return _gen->used(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GSPACECOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp index 4a86761f7d6..fe4e8c35f62 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcAdaptivePolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcAdaptivePolicyCounters.hpp" +#include "memory/resourceArea.hpp" // This class keeps statistical information and computes the // size of the heap. diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp index 927caa43f0f..30e78244ac4 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/adaptiveSizePolicy.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#endif + // This class keeps statistical information and computes the // size of the heap. @@ -222,3 +230,5 @@ class GCAdaptivePolicyCounters : public GCPolicyCounters { return GCPolicyCounters::GCAdaptivePolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCADAPTIVEPOLICYCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp index 00d15d38b28..23a710b97a6 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcPolicyCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcPolicyCounters.hpp" +#include "memory/resourceArea.hpp" GCPolicyCounters::GCPolicyCounters(const char* name, int collectors, int generations) { diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp index 9c0670b3920..6d4494c0f4d 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcPolicyCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCPOLICYCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCPOLICYCOUNTERS_HPP + +#include "runtime/perfData.hpp" + // GCPolicyCounters is a holder class for performance counters // that track a generation @@ -69,3 +74,5 @@ class GCPolicyCounters: public CHeapObj { return GCPolicyCounters::GCPolicyCountersKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCPOLICYCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcStats.cpp b/hotspot/src/share/vm/gc_implementation/shared/gcStats.cpp index ef65825e96a..faef280f632 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcStats.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcStats.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_gcStats.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcStats.hpp" +#include "gc_implementation/shared/gcUtil.hpp" GCStats::GCStats() { _avg_promoted = new AdaptivePaddedNoZeroDevAverage( diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcStats.hpp b/hotspot/src/share/vm/gc_implementation/shared/gcStats.hpp index d99c84f958a..070300e9b1a 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcStats.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcStats.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCSTATS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCSTATS_HPP + +#include "gc_implementation/shared/gcUtil.hpp" + class GCStats : public CHeapObj { protected: // Avg amount promoted; used for avoiding promotion undo @@ -61,3 +66,5 @@ class CMSGCStats : public GCStats { return CMSGCStatsKind; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCSTATS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcUtil.cpp b/hotspot/src/share/vm/gc_implementation/shared/gcUtil.cpp index 4380641f3d5..267f73d3b99 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcUtil.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcUtil.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcUtil.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/gcUtil.hpp" // Catch-all file for utility classes diff --git a/hotspot/src/share/vm/gc_implementation/shared/gcUtil.hpp b/hotspot/src/share/vm/gc_implementation/shared/gcUtil.hpp index 97bd68313f8..8dd3258de0a 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/gcUtil.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/gcUtil.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GCUTIL_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCUTIL_HPP + +#include "memory/allocation.hpp" +#include "runtime/timer.hpp" +#include "utilities/debug.hpp" +#include "utilities/globalDefinitions.hpp" +#include "utilities/ostream.hpp" + // Catch-all file for utility classes // A weighted average maintains a running, weighted average @@ -206,3 +215,5 @@ class GCPauseTimer : StackObj { _timer->start(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GCUTIL_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/generationCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/generationCounters.cpp index 143bf5b9680..4548189335c 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/generationCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/generationCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,9 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_generationCounters.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/generationCounters.hpp" +#include "memory/resourceArea.hpp" GenerationCounters::GenerationCounters(const char* name, diff --git a/hotspot/src/share/vm/gc_implementation/shared/generationCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/generationCounters.hpp index 4b1479945f2..4fd05e493dc 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/generationCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/generationCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP + +#include "runtime/perfData.hpp" +#include "runtime/virtualspace.hpp" + // A GenerationCounter is a holder class for performance counters // that track a generation @@ -60,3 +66,5 @@ class GenerationCounters: public CHeapObj { const char* name_space() const { return _name_space; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_GENERATIONCOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp index b09e7ef26b1..de081655685 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,12 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_immutableSpace.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/immutableSpace.hpp" +#include "memory/universe.hpp" +#include "oops/oop.inline.hpp" +#endif void ImmutableSpace::initialize(MemRegion mr) { HeapWord* bottom = mr.start(); diff --git a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp index 0c71e8e983b..bc5c1bd13b0 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP + +#include "memory/iterator.hpp" + // An ImmutableSpace is a viewport into a contiguous range // (or subrange) of previously allocated objects. @@ -62,3 +67,5 @@ class ImmutableSpace: public CHeapObj { virtual void print_short() const PRODUCT_RETURN; virtual void verify(bool allow_dirty); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_IMMUTABLESPACE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp b/hotspot/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp index e7354d3767f..4d36417244c 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/isGCActiveMark.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_ISGCACTIVEMARK_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_ISGCACTIVEMARK_HPP + +#ifndef SERIALGC +#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp" +#endif + // This class provides a method for block structured setting of the // _is_gc_active state without requiring accessors in CollectedHeap @@ -39,3 +46,5 @@ class IsGCActiveMark : public StackObj { heap->_is_gc_active = false; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_ISGCACTIVEMARK_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/liveRange.hpp b/hotspot/src/share/vm/gc_implementation/shared/liveRange.hpp index d876f2467cf..1cf300a620a 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/liveRange.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/liveRange.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_LIVERANGE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_LIVERANGE_HPP + +#include "memory/memRegion.hpp" +#include "utilities/copy.hpp" + // This is a shared helper class used during phase 3 and 4 to move all the objects // Dead regions in a Space are linked together to keep track of the live regions // so that the live data can be traversed quickly without having to look at each @@ -46,3 +52,5 @@ public: Copy::aligned_conjoint_words(start(), destination, word_size()); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_LIVERANGE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp b/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp index 5ddfbf039ab..a72c715c0e3 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,13 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_markSweep.cpp.incl" +#include "precompiled.hpp" +#include "compiler/compileBroker.hpp" +#include "gc_implementation/shared/markSweep.inline.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/objArrayKlass.inline.hpp" +#include "oops/oop.inline.hpp" Stack MarkSweep::_marking_stack; Stack MarkSweep::_revisit_mdo_stack; diff --git a/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp b/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp index a4939080bf3..b9aa6354748 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,18 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP + +#include "gc_interface/collectedHeap.hpp" +#include "memory/universe.hpp" +#include "oops/markOop.hpp" +#include "oops/oop.hpp" +#include "runtime/timer.hpp" +#include "utilities/growableArray.hpp" +#include "utilities/stack.hpp" +#include "utilities/taskqueue.hpp" + class ReferenceProcessor; class DataLayout; @@ -248,3 +260,5 @@ public: _obj->set_mark(_mark); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp b/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp index 933e3baad3e..3381f8cb80a 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_INLINE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_INLINE_HPP + +#include "gc_implementation/shared/markSweep.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "utilities/stack.inline.hpp" +#ifndef SERIALGC +#include "gc_implementation/parallelScavenge/psParallelCompact.hpp" +#endif + inline void MarkSweep::mark_object(oop obj) { // some marks may contain information we need to preserve so we store them away // and overwrite the mark. We'll restore it at the end of markSweep. @@ -115,3 +125,5 @@ template inline void MarkSweep::KeepAliveClosure::do_oop_work(T* p) { #endif mark_and_push(p); } + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MARKSWEEP_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp index 22cace7a2ab..aacaf3553ad 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,8 +23,20 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutableNUMASpace.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/mutableNUMASpace.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/sharedHeap.hpp" +#include "oops/oop.inline.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif MutableNUMASpace::MutableNUMASpace(size_t alignment) : MutableSpace(alignment) { diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp index fed86886c26..7b70e6e29d9 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,14 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/gcUtil.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#endif + /* * The NUMA-aware allocator (MutableNUMASpace) is basically a modification * of MutableSpace which preserves interfaces but implements different @@ -221,3 +229,5 @@ class MutableNUMASpace : public MutableSpace { virtual void set_top(HeapWord* value); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLENUMASPACE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp index 4fc51132a7c..41f63658252 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,14 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_mutableSpace.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/mutableSpace.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/thread.hpp" +#endif MutableSpace::MutableSpace(size_t alignment): ImmutableSpace(), _top(NULL), _alignment(alignment) { assert(MutableSpace::alignment() >= 0 && diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp index 25f6ae63c6d..01fb23f050f 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP + +#include "gc_implementation/shared/immutableSpace.hpp" +#include "memory/memRegion.hpp" +#include "utilities/copy.hpp" + // A MutableSpace is a subtype of ImmutableSpace that supports the // concept of allocation. This includes the concepts that a space may // be only partially full, and the querry methods that go with such @@ -136,3 +143,5 @@ class MutableSpace: public ImmutableSpace { virtual void print_short_on(outputStream* st) const; virtual void verify(bool allow_dirty); }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_MUTABLESPACE_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.cpp b/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.cpp index 0cd25818658..a5815c921cd 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_spaceCounters.cpp.incl" +#include "precompiled.hpp" +#ifndef SERIALGC +#include "gc_implementation/shared/spaceCounters.hpp" +#include "memory/resourceArea.hpp" +#endif SpaceCounters::SpaceCounters(const char* name, int ordinal, size_t max_size, MutableSpace* m, GenerationCounters* gc) : diff --git a/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.hpp b/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.hpp index 0f032bdf6f3..f75a9f26c1e 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/spaceCounters.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACECOUNTERS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACECOUNTERS_HPP + +#ifndef SERIALGC +#include "gc_implementation/shared/generationCounters.hpp" +#include "gc_implementation/shared/immutableSpace.hpp" +#include "gc_implementation/shared/mutableSpace.hpp" +#include "runtime/perfData.hpp" +#endif + // A SpaceCounter is a holder class for performance counters // that track a space; @@ -75,3 +85,5 @@ class MutableSpaceUsedHelper: public PerfLongSampleHelper { return _m->used_in_bytes(); } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACECOUNTERS_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.cpp b/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.cpp index 83addff319a..2de5846ab1b 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,10 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_spaceDecorator.cpp.incl" +#include "precompiled.hpp" +#include "gc_implementation/shared/spaceDecorator.hpp" +#include "memory/space.inline.hpp" +#include "utilities/copy.hpp" // Catch-all file for utility classes diff --git a/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.hpp b/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.hpp index e5b923038a0..c41a5eb591b 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/spaceDecorator.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,13 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACEDECORATOR_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACEDECORATOR_HPP + +#include "gc_implementation/shared/mutableSpace.hpp" +#include "memory/space.hpp" +#include "utilities/globalDefinitions.hpp" + class SpaceDecorator: public AllStatic { public: // Initialization flags. @@ -139,3 +146,5 @@ class MutableSpaceMangler: public SpaceMangler { public: MutableSpaceMangler(MutableSpace* sp) : SpaceMangler(), _sp(sp) {} }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_SPACEDECORATOR_HPP diff --git a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp index 7575e03ac43..350d6dbacb6 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -21,9 +21,25 @@ * questions. * */ -# include "incls/_precompiled.incl" -# include "incls/_vmGCOperations.cpp.incl" +#include "precompiled.hpp" +#include "classfile/classLoader.hpp" +#include "classfile/javaClasses.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "memory/gcLocker.inline.hpp" +#include "memory/genCollectedHeap.hpp" +#include "memory/oopFactory.hpp" +#include "oops/instanceKlass.hpp" +#include "oops/instanceRefKlass.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/init.hpp" +#include "runtime/interfaceSupport.hpp" +#include "utilities/dtrace.hpp" +#include "utilities/preserveException.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1CollectedHeap.inline.hpp" +#endif HS_DTRACE_PROBE_DECL1(hotspot, gc__begin, bool); HS_DTRACE_PROBE_DECL(hotspot, gc__end); diff --git a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp index b3a202902a5..93611bdaf61 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp @@ -22,6 +22,15 @@ * */ +#ifndef SHARE_VM_GC_IMPLEMENTATION_SHARED_VMGCOPERATIONS_HPP +#define SHARE_VM_GC_IMPLEMENTATION_SHARED_VMGCOPERATIONS_HPP + +#include "memory/heapInspection.hpp" +#include "runtime/handles.hpp" +#include "runtime/jniHandles.hpp" +#include "runtime/synchronizer.hpp" +#include "runtime/vm_operations.hpp" + // The following class hierarchy represents // a set of operations (VM_Operation) related to GC. // @@ -199,3 +208,5 @@ class VM_GenCollectForPermanentAllocation: public VM_GC_Operation { virtual void doit(); HeapWord* result() const { return _res; } }; + +#endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_VMGCOPERATIONS_HPP diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp index ad13d8bb4d5..83a6777b7e2 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp @@ -22,8 +22,23 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_collectedHeap.cpp.incl" +#include "precompiled.hpp" +#include "classfile/systemDictionary.hpp" +#include "gc_implementation/shared/vmGCOperations.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "gc_interface/collectedHeap.inline.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/init.hpp" +#include "services/heapDumper.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif #ifdef ASSERT diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp index c737eb1da66..c6070afb63c 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp @@ -22,6 +22,16 @@ * */ +#ifndef SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_HPP +#define SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_HPP + +#include "gc_interface/gcCause.hpp" +#include "memory/allocation.hpp" +#include "memory/barrierSet.hpp" +#include "runtime/handles.hpp" +#include "runtime/perfData.hpp" +#include "runtime/safepoint.hpp" + // A "CollectedHeap" is an implementation of a java heap for HotSpot. This // is an abstract class: there may be many different kinds of heaps. This // class defines the functions that a heap must implement, and contains @@ -644,3 +654,5 @@ class GCCauseSetter : StackObj { _heap->set_gc_cause(_previous_cause); } }; + +#endif // SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_HPP diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp index 630ad4232b7..c9f5f011126 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,28 @@ * */ +#ifndef SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_INLINE_HPP +#define SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_INLINE_HPP + +#include "gc_interface/collectedHeap.hpp" +#include "memory/threadLocalAllocBuffer.inline.hpp" +#include "memory/universe.hpp" +#include "oops/arrayOop.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/thread.hpp" +#include "services/lowMemoryDetector.hpp" +#include "utilities/copy.hpp" +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif + // Inline allocation implementations. void CollectedHeap::post_allocation_setup_common(KlassHandle klass, @@ -368,3 +390,5 @@ inline void CollectedHeap::reset_promotion_should_fail() { reset_promotion_should_fail(&_promotion_failure_alot_count); } #endif // #ifndef PRODUCT + +#endif // SHARE_VM_GC_INTERFACE_COLLECTEDHEAP_INLINE_HPP diff --git a/hotspot/src/share/vm/gc_interface/gcCause.cpp b/hotspot/src/share/vm/gc_interface/gcCause.cpp index e96f55a86ee..5868cd9c958 100644 --- a/hotspot/src/share/vm/gc_interface/gcCause.cpp +++ b/hotspot/src/share/vm/gc_interface/gcCause.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,8 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_gcCause.cpp.incl" +#include "precompiled.hpp" +#include "gc_interface/gcCause.hpp" const char* GCCause::to_string(GCCause::Cause cause) { switch (cause) { diff --git a/hotspot/src/share/vm/gc_interface/gcCause.hpp b/hotspot/src/share/vm/gc_interface/gcCause.hpp index 6734afcb73b..af40d989350 100644 --- a/hotspot/src/share/vm/gc_interface/gcCause.hpp +++ b/hotspot/src/share/vm/gc_interface/gcCause.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,11 @@ * */ +#ifndef SHARE_VM_GC_INTERFACE_GCCAUSE_HPP +#define SHARE_VM_GC_INTERFACE_GCCAUSE_HPP + +#include "memory/allocation.hpp" + // // This class exposes implementation details of the various // collector(s), and we need to be very careful with it. If @@ -83,3 +88,5 @@ class GCCause : public AllStatic { // Return true if the GCCause is for a full collection. static bool is_for_full_collection(GCCause::Cause cause) PRODUCT_RETURN0; }; + +#endif // SHARE_VM_GC_INTERFACE_GCCAUSE_HPP diff --git a/hotspot/src/share/vm/includeDB_compiler1 b/hotspot/src/share/vm/includeDB_compiler1 deleted file mode 100644 index 71fbea13d56..00000000000 --- a/hotspot/src/share/vm/includeDB_compiler1 +++ /dev/null @@ -1,454 +0,0 @@ -// -// Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -allocation.hpp c1_globals.hpp - -c1_CFGPrinter.cpp c1_CFGPrinter.hpp -c1_CFGPrinter.cpp c1_IR.hpp -c1_CFGPrinter.cpp c1_InstructionPrinter.hpp -c1_CFGPrinter.cpp c1_LIR.hpp -c1_CFGPrinter.cpp c1_LinearScan.hpp -c1_CFGPrinter.cpp c1_ValueStack.hpp - -c1_CFGPrinter.hpp c1_Compilation.hpp -c1_CFGPrinter.hpp c1_Instruction.hpp - -cardTableModRefBS.cpp c1_LIR.hpp -cardTableModRefBS.cpp c1_LIRGenerator.hpp - -c1_Canonicalizer.cpp c1_Canonicalizer.hpp -c1_Canonicalizer.cpp c1_InstructionPrinter.hpp -c1_Canonicalizer.cpp ciArray.hpp -c1_Canonicalizer.cpp sharedRuntime.hpp - -c1_Canonicalizer.hpp c1_Instruction.hpp - -c1_CodeStubs.hpp array.hpp -c1_CodeStubs.hpp c1_FrameMap.hpp -c1_CodeStubs.hpp c1_IR.hpp -c1_CodeStubs.hpp c1_Instruction.hpp -c1_CodeStubs.hpp c1_LIR.hpp -c1_CodeStubs.hpp c1_Runtime1.hpp - -c1_CodeStubs_.cpp c1_CodeStubs.hpp -c1_CodeStubs_.cpp c1_FrameMap.hpp -c1_CodeStubs_.cpp c1_LIRAssembler.hpp -c1_CodeStubs_.cpp c1_MacroAssembler.hpp -c1_CodeStubs_.cpp c1_Runtime1.hpp -c1_CodeStubs_.cpp g1SATBCardTableModRefBS.hpp -c1_CodeStubs_.cpp nativeInst_.hpp -c1_CodeStubs_.cpp sharedRuntime.hpp -c1_CodeStubs_.cpp vmreg_.inline.hpp - -c1_Compilation.cpp c1_CFGPrinter.hpp -c1_Compilation.cpp c1_Compilation.hpp -c1_Compilation.cpp c1_IR.hpp -c1_Compilation.cpp c1_LIRAssembler.hpp -c1_Compilation.cpp c1_LinearScan.hpp -c1_Compilation.cpp c1_MacroAssembler.hpp -c1_Compilation.cpp c1_ValueMap.hpp -c1_Compilation.cpp c1_ValueStack.hpp -c1_Compilation.cpp debugInfoRec.hpp -c1_Compilation.hpp ciEnv.hpp -c1_Compilation.hpp exceptionHandlerTable.hpp -c1_Compilation.hpp resourceArea.hpp - -c1_Compiler.cpp allocation.hpp -c1_Compiler.cpp allocation.inline.hpp -c1_Compiler.cpp arguments.hpp -c1_Compiler.cpp c1_Compilation.hpp -c1_Compiler.cpp c1_Compiler.hpp -c1_Compiler.cpp c1_FrameMap.hpp -c1_Compiler.cpp c1_GraphBuilder.hpp -c1_Compiler.cpp c1_LinearScan.hpp -c1_Compiler.cpp c1_MacroAssembler.hpp -c1_Compiler.cpp c1_Runtime1.hpp -c1_Compiler.cpp c1_ValueType.hpp -c1_Compiler.cpp compileBroker.hpp -c1_Compiler.cpp compilerOracle.hpp -c1_Compiler.cpp interfaceSupport.hpp -c1_Compiler.cpp linkResolver.hpp -c1_Compiler.cpp nativeLookup.hpp -c1_Compiler.cpp resourceArea.hpp -c1_Compiler.cpp sharedRuntime.hpp - -c1_Compiler.hpp abstractCompiler.hpp - -c1_Defs.cpp c1_Defs.hpp - -c1_Defs.hpp globalDefinitions.hpp -c1_Defs.hpp register_.hpp - -c1_Defs_.hpp generate_platform_dependent_include - -c1_FpuStackSim.hpp allocation.hpp -c1_FpuStackSim.hpp c1_FrameMap.hpp - -c1_FpuStackSim_.cpp array.hpp -c1_FpuStackSim_.cpp c1_FpuStackSim.hpp -c1_FpuStackSim_.cpp c1_FrameMap.hpp -c1_FpuStackSim_.cpp ostream.hpp - -c1_FpuStackSim_.hpp generate_platform_dependent_include - -c1_FrameMap.cpp c1_FrameMap.hpp -c1_FrameMap.cpp c1_LIR.hpp -c1_FrameMap.cpp sharedRuntime.hpp -c1_FrameMap.cpp vmreg_.inline.hpp - -c1_FrameMap.hpp allocation.hpp -c1_FrameMap.hpp assembler.hpp -c1_FrameMap.hpp c1_Defs.hpp -c1_FrameMap.hpp c1_LIR.hpp -c1_FrameMap.hpp frame.hpp -c1_FrameMap.hpp globalDefinitions.hpp -c1_FrameMap.hpp synchronizer.hpp -c1_FrameMap.hpp vmreg.hpp - -c1_FrameMap_.cpp c1_FrameMap.hpp -c1_FrameMap_.cpp c1_LIR.hpp -c1_FrameMap_.cpp sharedRuntime.hpp -c1_FrameMap_.cpp vmreg_.inline.hpp - -c1_FrameMap_.hpp generate_platform_dependent_include - -c1_globals.cpp c1_globals.hpp - -c1_globals.hpp c1_globals_.hpp -c1_globals.hpp c1_globals_.hpp -c1_globals.hpp globals.hpp - -c1_globals_.hpp globalDefinitions.hpp -c1_globals_.hpp macros.hpp - -c1_globals_.hpp globalDefinitions.hpp -c1_globals_.hpp macros.hpp - -c1_GraphBuilder.cpp bitMap.inline.hpp -c1_GraphBuilder.cpp bytecode.hpp -c1_GraphBuilder.cpp c1_CFGPrinter.hpp -c1_GraphBuilder.cpp c1_Canonicalizer.hpp -c1_GraphBuilder.cpp c1_Compilation.hpp -c1_GraphBuilder.cpp c1_GraphBuilder.hpp -c1_GraphBuilder.cpp c1_InstructionPrinter.hpp -c1_GraphBuilder.cpp ciField.hpp -c1_GraphBuilder.cpp ciKlass.hpp -c1_GraphBuilder.cpp sharedRuntime.hpp - -c1_GraphBuilder.hpp c1_IR.hpp -c1_GraphBuilder.hpp c1_Instruction.hpp -c1_GraphBuilder.hpp c1_ValueMap.hpp -c1_GraphBuilder.hpp c1_ValueStack.hpp -c1_GraphBuilder.hpp ciMethodData.hpp -c1_GraphBuilder.hpp ciStreams.hpp - -c1_IR.cpp bitMap.inline.hpp -c1_IR.cpp c1_Compilation.hpp -c1_IR.cpp c1_FrameMap.hpp -c1_IR.cpp c1_GraphBuilder.hpp -c1_IR.cpp c1_IR.hpp -c1_IR.cpp c1_InstructionPrinter.hpp -c1_IR.cpp c1_Optimizer.hpp - -c1_IR.hpp allocation.hpp -c1_IR.hpp c1_Instruction.hpp -c1_IR.hpp ciExceptionHandler.hpp -c1_IR.hpp ciMethod.hpp -c1_IR.hpp ciStreams.hpp - -c1_Instruction.cpp c1_IR.hpp -c1_Instruction.cpp c1_Instruction.hpp -c1_Instruction.cpp c1_InstructionPrinter.hpp -c1_Instruction.cpp c1_ValueStack.hpp -c1_Instruction.cpp ciObjArrayKlass.hpp -c1_Instruction.cpp ciTypeArrayKlass.hpp - -c1_Instruction.hpp c1_Compilation.hpp -c1_Instruction.hpp c1_LIR.hpp -c1_Instruction.hpp c1_ValueType.hpp -c1_Instruction.hpp ciField.hpp - -c1_InstructionPrinter.cpp c1_InstructionPrinter.hpp -c1_InstructionPrinter.cpp c1_ValueStack.hpp -c1_InstructionPrinter.cpp ciArray.hpp -c1_InstructionPrinter.cpp ciInstance.hpp -c1_InstructionPrinter.cpp ciObject.hpp - -c1_InstructionPrinter.hpp c1_IR.hpp -c1_InstructionPrinter.hpp c1_Instruction.hpp -c1_InstructionPrinter.hpp c1_Runtime1.hpp - -c1_LIR.cpp c1_InstructionPrinter.hpp -c1_LIR.cpp c1_LIR.hpp -c1_LIR.cpp c1_LIRAssembler.hpp -c1_LIR.cpp ciInstance.hpp -c1_LIR.cpp sharedRuntime.hpp - -c1_LIR.hpp c1_ValueType.hpp - -c1_LIRAssembler.cpp c1_Compilation.hpp -c1_LIRAssembler.cpp c1_Instruction.hpp -c1_LIRAssembler.cpp c1_InstructionPrinter.hpp -c1_LIRAssembler.cpp c1_LIRAssembler.hpp -c1_LIRAssembler.cpp c1_MacroAssembler.hpp -c1_LIRAssembler.cpp c1_ValueStack.hpp -c1_LIRAssembler.cpp ciInstance.hpp -c1_LIRAssembler.cpp nativeInst_.hpp -c1_LIRAssembler.cpp vmreg_.inline.hpp - -c1_LIRAssembler.hpp c1_CodeStubs.hpp -c1_LIRAssembler.hpp ciMethodData.hpp -c1_LIRAssembler.hpp methodDataOop.hpp -c1_LIRAssembler.hpp top.hpp - -c1_LIRAssembler_.cpp barrierSet.hpp -c1_LIRAssembler_.cpp c1_Compilation.hpp -c1_LIRAssembler_.cpp c1_LIRAssembler.hpp -c1_LIRAssembler_.cpp c1_MacroAssembler.hpp -c1_LIRAssembler_.cpp c1_Runtime1.hpp -c1_LIRAssembler_.cpp c1_ValueStack.hpp -c1_LIRAssembler_.cpp cardTableModRefBS.hpp -c1_LIRAssembler_.cpp ciArrayKlass.hpp -c1_LIRAssembler_.cpp ciInstance.hpp -c1_LIRAssembler_.cpp collectedHeap.hpp -c1_LIRAssembler_.cpp nativeInst_.hpp -c1_LIRAssembler_.cpp objArrayKlass.hpp -c1_LIRAssembler_.cpp sharedRuntime.hpp - -c1_LIRAssembler_.hpp generate_platform_dependent_include - -c1_LIRGenerator.cpp bitMap.inline.hpp -c1_LIRGenerator.cpp c1_Compilation.hpp -c1_LIRGenerator.cpp c1_FrameMap.hpp -c1_LIRGenerator.cpp c1_Instruction.hpp -c1_LIRGenerator.cpp c1_LIRAssembler.hpp -c1_LIRGenerator.cpp c1_LIRGenerator.hpp -c1_LIRGenerator.cpp c1_ValueStack.hpp -c1_LIRGenerator.cpp ciArrayKlass.hpp -c1_LIRGenerator.cpp ciCPCache.hpp -c1_LIRGenerator.cpp ciInstance.hpp -c1_LIRGenerator.cpp heapRegion.hpp -c1_LIRGenerator.cpp sharedRuntime.hpp -c1_LIRGenerator.cpp stubRoutines.hpp - -c1_LIRGenerator.hpp c1_Instruction.hpp -c1_LIRGenerator.hpp c1_LIR.hpp -c1_LIRGenerator.hpp ciMethodData.hpp -c1_LIRGenerator.hpp sizes.hpp - -c1_LIRGenerator_.cpp c1_Compilation.hpp -c1_LIRGenerator_.cpp c1_FrameMap.hpp -c1_LIRGenerator_.cpp c1_Instruction.hpp -c1_LIRGenerator_.cpp c1_LIRAssembler.hpp -c1_LIRGenerator_.cpp c1_LIRGenerator.hpp -c1_LIRGenerator_.cpp c1_Runtime1.hpp -c1_LIRGenerator_.cpp c1_ValueStack.hpp -c1_LIRGenerator_.cpp ciArray.hpp -c1_LIRGenerator_.cpp ciObjArrayKlass.hpp -c1_LIRGenerator_.cpp ciTypeArrayKlass.hpp -c1_LIRGenerator_.cpp sharedRuntime.hpp -c1_LIRGenerator_.cpp vmreg_.inline.hpp -c1_LIRGenerator_.cpp stubRoutines.hpp - - -c1_LinearScan.cpp bitMap.inline.hpp -c1_LinearScan.cpp c1_CFGPrinter.hpp -c1_LinearScan.cpp c1_CodeStubs.hpp -c1_LinearScan.cpp c1_Compilation.hpp -c1_LinearScan.cpp c1_FrameMap.hpp -c1_LinearScan.cpp c1_IR.hpp -c1_LinearScan.cpp c1_LIRGenerator.hpp -c1_LinearScan.cpp c1_LinearScan.hpp -c1_LinearScan.cpp c1_ValueStack.hpp -c1_LinearScan.cpp vmreg_.inline.hpp - -c1_LinearScan.hpp c1_FpuStackSim.hpp -c1_LinearScan.hpp c1_FrameMap.hpp -c1_LinearScan.hpp c1_IR.hpp -c1_LinearScan.hpp c1_Instruction.hpp -c1_LinearScan.hpp c1_LIR.hpp -c1_LinearScan.hpp c1_LIRGenerator.hpp - -c1_LinearScan_.cpp bitMap.inline.hpp -c1_LinearScan_.cpp c1_Instruction.hpp -c1_LinearScan_.cpp c1_LinearScan.hpp - -c1_LinearScan_.hpp generate_platform_dependent_include - -c1_MacroAssembler.hpp assembler.hpp -c1_MacroAssembler.hpp assembler_.inline.hpp - -c1_MacroAssembler_.cpp arrayOop.hpp -c1_MacroAssembler_.cpp basicLock.hpp -c1_MacroAssembler_.cpp biasedLocking.hpp -c1_MacroAssembler_.cpp c1_MacroAssembler.hpp -c1_MacroAssembler_.cpp c1_Runtime1.hpp -c1_MacroAssembler_.cpp collectedHeap.hpp -c1_MacroAssembler_.cpp interpreter.hpp -c1_MacroAssembler_.cpp markOop.hpp -c1_MacroAssembler_.cpp os.hpp -c1_MacroAssembler_.cpp stubRoutines.hpp -c1_MacroAssembler_.cpp systemDictionary.hpp - -c1_MacroAssembler_.hpp generate_platform_dependent_include - -c1_Optimizer.cpp bitMap.inline.hpp -c1_Optimizer.cpp c1_Canonicalizer.hpp -c1_Optimizer.cpp c1_Optimizer.hpp -c1_Optimizer.cpp c1_ValueMap.hpp -c1_Optimizer.cpp c1_ValueSet.hpp -c1_Optimizer.cpp c1_ValueStack.hpp - -c1_Optimizer.hpp allocation.hpp -c1_Optimizer.hpp c1_IR.hpp -c1_Optimizer.hpp c1_Instruction.hpp - -c1_Runtime1.cpp allocation.inline.hpp -c1_Runtime1.cpp barrierSet.hpp -c1_Runtime1.cpp biasedLocking.hpp -c1_Runtime1.cpp bytecode.hpp -c1_Runtime1.cpp c1_CodeStubs.hpp -c1_Runtime1.cpp c1_Defs.hpp -c1_Runtime1.cpp c1_FrameMap.hpp -c1_Runtime1.cpp c1_LIRAssembler.hpp -c1_Runtime1.cpp c1_MacroAssembler.hpp -c1_Runtime1.cpp c1_Runtime1.hpp -c1_Runtime1.cpp codeBlob.hpp -c1_Runtime1.cpp codeBuffer.hpp -c1_Runtime1.cpp collectedHeap.hpp -c1_Runtime1.cpp compilationPolicy.hpp -c1_Runtime1.cpp compiledIC.hpp -c1_Runtime1.cpp copy.hpp -c1_Runtime1.cpp disassembler.hpp -c1_Runtime1.cpp events.hpp -c1_Runtime1.cpp interfaceSupport.hpp -c1_Runtime1.cpp interpreter.hpp -c1_Runtime1.cpp javaCalls.hpp -c1_Runtime1.cpp objArrayKlass.hpp -c1_Runtime1.cpp oop.inline.hpp -c1_Runtime1.cpp oopFactory.hpp -c1_Runtime1.cpp pcDesc.hpp -c1_Runtime1.cpp resourceArea.hpp -c1_Runtime1.cpp scopeDesc.hpp -c1_Runtime1.cpp sharedRuntime.hpp -c1_Runtime1.cpp systemDictionary.hpp -c1_Runtime1.cpp threadCritical.hpp -c1_Runtime1.cpp vframe.hpp -c1_Runtime1.cpp vframeArray.hpp -c1_Runtime1.cpp vmSymbols.hpp -c1_Runtime1.cpp vtableStubs.hpp - -c1_Runtime1.hpp allocation.hpp -c1_Runtime1.hpp c1_FrameMap.hpp -c1_Runtime1.hpp deoptimization.hpp -c1_Runtime1.hpp interpreter.hpp -c1_Runtime1.hpp stubs.hpp - -c1_Runtime1_.cpp c1_Defs.hpp -c1_Runtime1_.cpp c1_MacroAssembler.hpp -c1_Runtime1_.cpp c1_Runtime1.hpp -c1_Runtime1_.cpp compiledICHolderOop.hpp -c1_Runtime1_.cpp interpreter.hpp -c1_Runtime1_.cpp jvmtiExport.hpp -c1_Runtime1_.cpp nativeInst_.hpp -c1_Runtime1_.cpp oop.inline.hpp -c1_Runtime1_.cpp register_.hpp -c1_Runtime1_.cpp sharedRuntime.hpp -c1_Runtime1_.cpp signature.hpp -c1_Runtime1_.cpp vframeArray.hpp -c1_Runtime1_.cpp vmreg_.inline.hpp - -c1_ValueMap.cpp bitMap.inline.hpp -c1_ValueMap.cpp c1_Canonicalizer.hpp -c1_ValueMap.cpp c1_IR.hpp -c1_ValueMap.cpp c1_ValueMap.hpp - -c1_ValueMap.hpp allocation.hpp -c1_ValueMap.hpp c1_Instruction.hpp -c1_ValueMap.hpp c1_ValueSet.hpp - -c1_ValueSet.cpp c1_ValueSet.hpp - -c1_ValueSet.hpp allocation.hpp -c1_ValueSet.hpp bitMap.inline.hpp -c1_ValueSet.hpp c1_Instruction.hpp - -c1_ValueStack.cpp c1_IR.hpp -c1_ValueStack.cpp c1_InstructionPrinter.hpp -c1_ValueStack.cpp c1_ValueStack.hpp - -c1_ValueStack.hpp c1_Instruction.hpp -c1_ValueType.cpp c1_ValueType.hpp -c1_ValueType.cpp ciArray.hpp -c1_ValueType.cpp ciInstance.hpp -c1_ValueType.cpp ciNullObject.hpp - -c1_ValueType.hpp c1_Compilation.hpp -c1_ValueType.hpp ciConstant.hpp - -ciEnv.cpp c1_Runtime1.hpp - -codeBlob.cpp c1_Runtime1.hpp - -compileBroker.cpp c1_Compiler.hpp - -frame_.cpp c1_Runtime1.hpp -frame_.cpp vframeArray.hpp - -globals.cpp c1_globals.hpp - -globals.hpp c1_globals_.hpp -globals.hpp c1_globals_.hpp - -instanceKlass.cpp c1_Compiler.hpp - -interpreter_.cpp c1_Runtime1.hpp - -java.cpp c1_Compiler.hpp -java.cpp c1_Runtime1.hpp - -nativeInst_.cpp c1_Runtime1.hpp - -oopMap.cpp c1_Defs.hpp - -os_.cpp c1_Runtime1.hpp - -os_.cpp c1_Runtime1.hpp - -safepoint.cpp c1_globals.hpp - -sharedRuntime.cpp c1_Runtime1.hpp - -sharedRuntime_.cpp c1_Runtime1.hpp - -thread.cpp c1_Compiler.hpp - -top.hpp c1_globals.hpp - -vmStructs.hpp c1_Runtime1.hpp - -c1_Canonicalizer.cpp c1_ValueStack.hpp - -c1_LIR.cpp c1_ValueStack.hpp diff --git a/hotspot/src/share/vm/includeDB_compiler2 b/hotspot/src/share/vm/includeDB_compiler2 deleted file mode 100644 index 59e1794a873..00000000000 --- a/hotspot/src/share/vm/includeDB_compiler2 +++ /dev/null @@ -1,1164 +0,0 @@ -// -// Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -ad_.cpp adGlobals_.hpp -ad_.cpp ad_.hpp -ad_.cpp allocation.inline.hpp -ad_.cpp assembler.hpp -ad_.cpp assembler_.inline.hpp -ad_.cpp biasedLocking.hpp -ad_.cpp cfgnode.hpp -ad_.cpp collectedHeap.inline.hpp -ad_.cpp compiledICHolderOop.hpp -ad_.cpp growableArray.hpp -ad_.cpp locknode.hpp -ad_.cpp markOop.hpp -ad_.cpp methodOop.hpp -ad_.cpp nativeInst_.hpp -ad_.cpp oop.inline.hpp -ad_.cpp oop.inline2.hpp -ad_.cpp opcodes.hpp -ad_.cpp regalloc.hpp -ad_.cpp regmask.hpp -ad_.cpp runtime.hpp -ad_.cpp sharedRuntime.hpp -ad_.cpp stubRoutines.hpp -ad_.cpp vmreg.hpp -ad_.cpp vmreg_.inline.hpp - -ad_.hpp addnode.hpp -ad_.hpp machnode.hpp -ad_.hpp matcher.hpp -ad_.hpp opcodes.hpp -ad_.hpp regalloc.hpp -ad_.hpp resourceArea.hpp -ad_.hpp subnode.hpp -ad_.hpp vectornode.hpp - -ad__clone.cpp ad_.hpp - -ad__expand.cpp ad_.hpp - -ad__format.cpp ad_.hpp - -ad__gen.cpp ad_.hpp -ad__gen.cpp cfgnode.hpp -ad__gen.cpp locknode.hpp - -ad__misc.cpp ad_.hpp - -ad__peephole.cpp ad_.hpp - -ad__pipeline.cpp ad_.hpp - -addnode.cpp addnode.hpp -addnode.cpp allocation.inline.hpp -addnode.cpp cfgnode.hpp -addnode.cpp connode.hpp -addnode.cpp machnode.hpp -addnode.cpp mulnode.hpp -addnode.cpp phaseX.hpp -addnode.cpp subnode.hpp - -addnode.hpp node.hpp -addnode.hpp opcodes.hpp -addnode.hpp type.hpp - -adlcVMDeps.hpp allocation.hpp - -allocation.hpp c2_globals.hpp - -bcEscapeAnalyzer.cpp bcEscapeAnalyzer.hpp -bcEscapeAnalyzer.cpp bitMap.inline.hpp -bcEscapeAnalyzer.cpp bytecode.hpp -bcEscapeAnalyzer.cpp ciConstant.hpp -bcEscapeAnalyzer.cpp ciField.hpp -bcEscapeAnalyzer.cpp ciMethodBlocks.hpp -bcEscapeAnalyzer.cpp ciStreams.hpp - -bcEscapeAnalyzer.hpp allocation.hpp -bcEscapeAnalyzer.hpp ciMethod.hpp -bcEscapeAnalyzer.hpp ciMethodData.hpp -bcEscapeAnalyzer.hpp dependencies.hpp -bcEscapeAnalyzer.hpp growableArray.hpp -bcEscapeAnalyzer.hpp vectset.hpp - -block.cpp allocation.inline.hpp -block.cpp block.hpp -block.cpp cfgnode.hpp -block.cpp chaitin.hpp -block.cpp copy.hpp -block.cpp loopnode.hpp -block.cpp machnode.hpp -block.cpp matcher.hpp -block.cpp opcodes.hpp -block.cpp rootnode.hpp -block.cpp vectset.hpp - -block.hpp multnode.hpp -block.hpp node.hpp -block.hpp phase.hpp - -buildOopMap.cpp addnode.hpp -buildOopMap.cpp callnode.hpp -buildOopMap.cpp compile.hpp -buildOopMap.cpp machnode.hpp -buildOopMap.cpp matcher.hpp -buildOopMap.cpp oopMap.hpp -buildOopMap.cpp phase.hpp -buildOopMap.cpp regalloc.hpp -buildOopMap.cpp rootnode.hpp -buildOopMap.cpp vmreg_.inline.hpp - -bytecodeInfo.cpp callGenerator.hpp -bytecodeInfo.cpp compileLog.hpp -bytecodeInfo.cpp handles.inline.hpp -bytecodeInfo.cpp linkResolver.hpp -bytecodeInfo.cpp objArrayKlass.hpp -bytecodeInfo.cpp parse.hpp -bytecodeInfo.cpp systemDictionary.hpp -bytecodeInfo.cpp vmSymbols.hpp - -bytecodeInterpreter.hpp methodDataOop.hpp - -c2_globals.cpp c2_globals.hpp - -c2_globals.hpp c2_globals_.hpp -c2_globals.hpp c2_globals_.hpp -c2_globals.hpp globals.hpp - -c2_globals_.hpp globalDefinitions.hpp -c2_globals_.hpp macros.hpp - -c2_globals_.hpp globalDefinitions.hpp -c2_globals_.hpp macros.hpp - -c2_init_.cpp compile.hpp -c2_init_.cpp node.hpp - -c2compiler.cpp ad_.hpp -c2compiler.cpp c2compiler.hpp -c2compiler.cpp runtime.hpp - -c2compiler.hpp abstractCompiler.hpp - -callGenerator.cpp addnode.hpp -callGenerator.cpp bcEscapeAnalyzer.hpp -callGenerator.cpp callGenerator.hpp -callGenerator.cpp callnode.hpp -callGenerator.cpp cfgnode.hpp -callGenerator.cpp compileLog.hpp -callGenerator.cpp connode.hpp -callGenerator.cpp ciCPCache.hpp -callGenerator.cpp ciMethodHandle.hpp -callGenerator.cpp javaClasses.hpp -callGenerator.cpp parse.hpp -callGenerator.cpp rootnode.hpp -callGenerator.cpp runtime.hpp -callGenerator.cpp subnode.hpp - -callGenerator.hpp callnode.hpp -callGenerator.hpp compile.hpp -callGenerator.hpp deoptimization.hpp -callGenerator.hpp type.hpp - -callnode.cpp callnode.hpp -callnode.cpp bcEscapeAnalyzer.hpp -callnode.cpp escape.hpp -callnode.cpp locknode.hpp -callnode.cpp machnode.hpp -callnode.cpp matcher.hpp -callnode.cpp oopMap.hpp -callnode.cpp parse.hpp -callnode.cpp regalloc.hpp -callnode.cpp regmask.hpp -callnode.cpp rootnode.hpp -callnode.cpp runtime.hpp - -callnode.hpp connode.hpp -callnode.hpp mulnode.hpp -callnode.hpp multnode.hpp -callnode.hpp opcodes.hpp -callnode.hpp phaseX.hpp -callnode.hpp type.hpp - -cfgnode.cpp addnode.hpp -cfgnode.cpp allocation.inline.hpp -cfgnode.cpp cfgnode.hpp -cfgnode.cpp connode.hpp -cfgnode.cpp loopnode.hpp -cfgnode.cpp machnode.hpp -cfgnode.cpp mulnode.hpp -cfgnode.cpp objArrayKlass.hpp -cfgnode.cpp phaseX.hpp -cfgnode.cpp regmask.hpp -cfgnode.cpp runtime.hpp -cfgnode.cpp subnode.hpp -cfgnode.cpp systemDictionary.hpp - -cfgnode.hpp multnode.hpp -cfgnode.hpp node.hpp -cfgnode.hpp opcodes.hpp -cfgnode.hpp type.hpp - -chaitin.cpp addnode.hpp -chaitin.cpp allocation.inline.hpp -chaitin.cpp block.hpp -chaitin.cpp callnode.hpp -chaitin.cpp cfgnode.hpp -chaitin.cpp chaitin.hpp -chaitin.cpp coalesce.hpp -chaitin.cpp compileLog.hpp -chaitin.cpp connode.hpp -chaitin.cpp indexSet.hpp -chaitin.cpp machnode.hpp -chaitin.cpp memnode.hpp -chaitin.cpp oopMap.hpp -chaitin.cpp opcodes.hpp -chaitin.cpp rootnode.hpp - -chaitin.hpp connode.hpp -chaitin.hpp live.hpp -chaitin.hpp matcher.hpp -chaitin.hpp phase.hpp -chaitin.hpp port.hpp -chaitin.hpp regalloc.hpp -chaitin.hpp regmask.hpp -chaitin.hpp resourceArea.hpp -chaitin.hpp vmreg.hpp - -chaitin_.cpp chaitin.hpp -chaitin_.cpp machnode.hpp - -ciEnv.cpp compileLog.hpp -ciEnv.cpp runtime.hpp - -ciMethod.cpp bcEscapeAnalyzer.hpp -ciMethod.cpp ciTypeFlow.hpp -ciMethod.cpp methodOop.hpp - -ciTypeFlow.cpp allocation.inline.hpp -ciTypeFlow.cpp bytecode.hpp -ciTypeFlow.cpp bytecodes.hpp -ciTypeFlow.cpp ciConstant.hpp -ciTypeFlow.cpp ciField.hpp -ciTypeFlow.cpp ciMethod.hpp -ciTypeFlow.cpp ciMethodData.hpp -ciTypeFlow.cpp ciObjArrayKlass.hpp -ciTypeFlow.cpp ciStreams.hpp -ciTypeFlow.cpp ciTypeArrayKlass.hpp -ciTypeFlow.cpp ciTypeFlow.hpp -ciTypeFlow.cpp compileLog.hpp -ciTypeFlow.cpp deoptimization.hpp -ciTypeFlow.cpp growableArray.hpp - -ciTypeFlow.hpp ciEnv.hpp -ciTypeFlow.hpp ciKlass.hpp -ciTypeFlow.hpp ciMethodBlocks.hpp - -classes.cpp addnode.hpp -classes.cpp callnode.hpp -classes.cpp cfgnode.hpp -classes.cpp connode.hpp -classes.cpp divnode.hpp -classes.cpp locknode.hpp -classes.cpp loopnode.hpp -classes.cpp machnode.hpp -classes.cpp memnode.hpp -classes.cpp mulnode.hpp -classes.cpp multnode.hpp -classes.cpp node.hpp -classes.cpp rootnode.hpp -classes.cpp subnode.hpp -classes.cpp vectornode.hpp - -classes.hpp top.hpp - -coalesce.cpp allocation.inline.hpp -coalesce.cpp block.hpp -coalesce.cpp cfgnode.hpp -coalesce.cpp chaitin.hpp -coalesce.cpp coalesce.hpp -coalesce.cpp connode.hpp -coalesce.cpp indexSet.hpp -coalesce.cpp machnode.hpp -coalesce.cpp matcher.hpp -coalesce.cpp regmask.hpp - -coalesce.hpp phase.hpp - -compile.cpp ad_.hpp -compile.cpp addnode.hpp -compile.cpp arguments.hpp -compile.cpp assembler.hpp -compile.cpp block.hpp -compile.cpp c2compiler.hpp -compile.cpp callGenerator.hpp -compile.cpp callnode.hpp -compile.cpp cfgnode.hpp -compile.cpp chaitin.hpp -compile.cpp compile.hpp -compile.cpp compileLog.hpp -compile.cpp connode.hpp -compile.cpp copy.hpp -compile.cpp divnode.hpp -compile.cpp escape.hpp -compile.cpp exceptionHandlerTable.hpp -compile.cpp loopnode.hpp -compile.cpp machnode.hpp -compile.cpp macro.hpp -compile.cpp matcher.hpp -compile.cpp memnode.hpp -compile.cpp mulnode.hpp -compile.cpp nmethod.hpp -compile.cpp node.hpp -compile.cpp oopMap.hpp -compile.cpp opcodes.hpp -compile.cpp output.hpp -compile.cpp parse.hpp -compile.cpp phaseX.hpp -compile.cpp rootnode.hpp -compile.cpp runtime.hpp -compile.cpp signature.hpp -compile.cpp stringopts.hpp -compile.cpp stubRoutines.hpp -compile.cpp systemDictionary.hpp -compile.cpp timer.hpp -compile.cpp type.hpp -compile.cpp vectornode.hpp - -compile.hpp codeBuffer.hpp -compile.hpp compilerInterface.hpp -compile.hpp compilerOracle.hpp -compile.hpp debugInfoRec.hpp -compile.hpp deoptimization.hpp -compile.hpp dict.hpp -compile.hpp exceptionHandlerTable.hpp -compile.hpp idealGraphPrinter.hpp -compile.hpp phase.hpp -compile.hpp port.hpp -compile.hpp regmask.hpp -compile.hpp resourceArea.hpp -compile.hpp vectset.hpp -compile.hpp vmThread.hpp - -compileBroker.cpp c2compiler.hpp - -connode.cpp addnode.hpp -connode.cpp allocation.inline.hpp -connode.cpp compile.hpp -connode.cpp connode.hpp -connode.cpp machnode.hpp -connode.cpp matcher.hpp -connode.cpp memnode.hpp -connode.cpp phaseX.hpp -connode.cpp sharedRuntime.hpp -connode.cpp subnode.hpp - -connode.hpp node.hpp -connode.hpp opcodes.hpp -connode.hpp type.hpp - -deoptimization.cpp ad_.hpp - -dfa_.cpp ad_.hpp -dfa_.cpp matcher.hpp -dfa_.cpp opcodes.hpp - -dict.cpp allocation.inline.hpp -dict.cpp dict.hpp -dict.cpp resourceArea.hpp -dict.cpp thread.hpp - -dict.hpp port.hpp - -divnode.cpp addnode.hpp -divnode.cpp allocation.inline.hpp -divnode.cpp connode.hpp -divnode.cpp divnode.hpp -divnode.cpp machnode.hpp -divnode.cpp matcher.hpp -divnode.cpp mulnode.hpp -divnode.cpp phaseX.hpp -divnode.cpp subnode.hpp - -divnode.hpp multnode.hpp -divnode.hpp node.hpp -divnode.hpp opcodes.hpp -divnode.hpp type.hpp - -doCall.cpp addnode.hpp -doCall.cpp callGenerator.hpp -doCall.cpp ciCallSite.hpp -doCall.cpp ciCPCache.hpp -doCall.cpp ciMethodHandle.hpp -doCall.cpp cfgnode.hpp -doCall.cpp compileLog.hpp -doCall.cpp linkResolver.hpp -doCall.cpp mulnode.hpp -doCall.cpp nativeLookup.hpp -doCall.cpp parse.hpp -doCall.cpp rootnode.hpp -doCall.cpp runtime.hpp -doCall.cpp sharedRuntime.hpp -doCall.cpp subnode.hpp -doCall.cpp vmSymbols.hpp - -domgraph.cpp allocation.hpp -domgraph.cpp block.hpp -domgraph.cpp machnode.hpp -domgraph.cpp phaseX.hpp -domgraph.cpp rootnode.hpp -domgraph.cpp vectset.hpp - -escape.cpp allocation.hpp -escape.cpp bcEscapeAnalyzer.hpp -escape.cpp c2compiler.hpp -escape.cpp callnode.hpp -escape.cpp cfgnode.hpp -escape.cpp compile.hpp -escape.cpp escape.hpp -escape.cpp phaseX.hpp -escape.cpp rootnode.hpp -escape.cpp vectset.hpp - -escape.hpp addnode.hpp -escape.hpp growableArray.hpp -escape.hpp node.hpp - -frame.hpp adGlobals_.hpp - -gcm.cpp ad_.hpp -gcm.cpp allocation.inline.hpp -gcm.cpp block.hpp -gcm.cpp c2compiler.hpp -gcm.cpp callnode.hpp -gcm.cpp cfgnode.hpp -gcm.cpp deoptimization.hpp -gcm.cpp machnode.hpp -gcm.cpp opcodes.hpp -gcm.cpp phaseX.hpp -gcm.cpp rootnode.hpp -gcm.cpp runtime.hpp -gcm.cpp vectset.hpp - -generateOptoStub.cpp addnode.hpp -generateOptoStub.cpp callnode.hpp -generateOptoStub.cpp cfgnode.hpp -generateOptoStub.cpp compile.hpp -generateOptoStub.cpp connode.hpp -generateOptoStub.cpp locknode.hpp -generateOptoStub.cpp memnode.hpp -generateOptoStub.cpp mulnode.hpp -generateOptoStub.cpp node.hpp -generateOptoStub.cpp parse.hpp -generateOptoStub.cpp phaseX.hpp -generateOptoStub.cpp rootnode.hpp -generateOptoStub.cpp runtime.hpp -generateOptoStub.cpp type.hpp - -globals.hpp c2_globals_.hpp -globals.hpp c2_globals_.hpp - -globals.cpp c2_globals.hpp - -graphKit.cpp addnode.hpp -graphKit.cpp barrierSet.hpp -graphKit.cpp cardTableModRefBS.hpp -graphKit.cpp g1SATBCardTableModRefBS.hpp -graphKit.cpp collectedHeap.hpp -graphKit.cpp compileLog.hpp -graphKit.cpp deoptimization.hpp -graphKit.cpp graphKit.hpp -graphKit.cpp heapRegion.hpp -graphKit.cpp idealKit.hpp -graphKit.cpp locknode.hpp -graphKit.cpp machnode.hpp -graphKit.cpp parse.hpp -graphKit.cpp rootnode.hpp -graphKit.cpp runtime.hpp -graphKit.cpp sharedRuntime.hpp - -graphKit.hpp addnode.hpp -graphKit.hpp callnode.hpp -graphKit.hpp cfgnode.hpp -graphKit.hpp ciEnv.hpp -graphKit.hpp ciMethodData.hpp -graphKit.hpp divnode.hpp -graphKit.hpp compile.hpp -graphKit.hpp deoptimization.hpp -graphKit.hpp phaseX.hpp -graphKit.hpp mulnode.hpp -graphKit.hpp subnode.hpp -graphKit.hpp type.hpp - -idealKit.cpp addnode.hpp -idealKit.cpp callnode.hpp -idealKit.cpp cfgnode.hpp -idealKit.cpp idealKit.hpp -idealKit.cpp runtime.hpp - -idealKit.hpp addnode.hpp -idealKit.hpp cfgnode.hpp -idealKit.hpp connode.hpp -idealKit.hpp divnode.hpp -idealKit.hpp mulnode.hpp -idealKit.hpp phaseX.hpp -idealKit.hpp subnode.hpp -idealKit.hpp type.hpp - -ifg.cpp addnode.hpp -ifg.cpp allocation.inline.hpp -ifg.cpp block.hpp -ifg.cpp callnode.hpp -ifg.cpp cfgnode.hpp -ifg.cpp chaitin.hpp -ifg.cpp coalesce.hpp -ifg.cpp connode.hpp -ifg.cpp indexSet.hpp -ifg.cpp machnode.hpp -ifg.cpp memnode.hpp -ifg.cpp oopMap.hpp -ifg.cpp opcodes.hpp - -ifnode.cpp addnode.hpp -ifnode.cpp allocation.inline.hpp -ifnode.cpp cfgnode.hpp -ifnode.cpp connode.hpp -ifnode.cpp phaseX.hpp -ifnode.cpp runtime.hpp -ifnode.cpp subnode.hpp - -indexSet.cpp allocation.inline.hpp -indexSet.cpp chaitin.hpp -indexSet.cpp compile.hpp -indexSet.cpp indexSet.hpp -indexSet.cpp regmask.hpp - -indexSet.hpp allocation.hpp -indexSet.hpp compile.hpp -indexSet.hpp regmask.hpp -indexSet.hpp resourceArea.hpp - -interpreterRuntime.cpp runtime.hpp - -java.cpp compile.hpp -java.cpp compiledIC.hpp -java.cpp indexSet.hpp -java.cpp methodLiveness.hpp -java.cpp runtime.hpp - -lcm.cpp ad_.hpp -lcm.cpp allocation.inline.hpp -lcm.cpp block.hpp -lcm.cpp c2compiler.hpp -lcm.cpp callnode.hpp -lcm.cpp cfgnode.hpp -lcm.cpp machnode.hpp -lcm.cpp runtime.hpp - -library_call.cpp addnode.hpp -library_call.cpp callGenerator.hpp -library_call.cpp cfgnode.hpp -library_call.cpp compileLog.hpp -library_call.cpp idealKit.hpp -library_call.cpp mulnode.hpp -library_call.cpp nativeLookup.hpp -library_call.cpp objArrayKlass.hpp -library_call.cpp parse.hpp -library_call.cpp runtime.hpp -library_call.cpp sharedRuntime.hpp -library_call.cpp subnode.hpp -library_call.cpp systemDictionary.hpp -library_call.cpp vmSymbols.hpp - -live.cpp allocation.inline.hpp -live.cpp callnode.hpp -live.cpp chaitin.hpp -live.cpp live.hpp -live.cpp machnode.hpp - -live.hpp block.hpp -live.hpp indexSet.hpp -live.hpp phase.hpp -live.hpp port.hpp -live.hpp regmask.hpp -live.hpp vectset.hpp - -locknode.cpp locknode.hpp -locknode.cpp parse.hpp -locknode.cpp rootnode.hpp -locknode.cpp runtime.hpp - -locknode.hpp ad_.hpp -locknode.hpp node.hpp -locknode.hpp opcodes.hpp -locknode.hpp subnode.hpp - -loopTransform.cpp addnode.hpp -loopTransform.cpp allocation.inline.hpp -loopTransform.cpp callnode.hpp -loopTransform.cpp connode.hpp -loopTransform.cpp compileLog.hpp -loopTransform.cpp divnode.hpp -loopTransform.cpp loopnode.hpp -loopTransform.cpp mulnode.hpp -loopTransform.cpp rootnode.hpp -loopTransform.cpp runtime.hpp -loopTransform.cpp subnode.hpp - -loopUnswitch.cpp allocation.inline.hpp -loopUnswitch.cpp connode.hpp -loopUnswitch.cpp loopnode.hpp -loopUnswitch.cpp rootnode.hpp - -loopnode.cpp addnode.hpp -loopnode.cpp allocation.inline.hpp -loopnode.cpp callnode.hpp -loopnode.cpp ciMethodData.hpp -loopnode.cpp compileLog.hpp -loopnode.cpp connode.hpp -loopnode.cpp divnode.hpp -loopnode.cpp loopnode.hpp -loopnode.cpp mulnode.hpp -loopnode.cpp rootnode.hpp -loopnode.cpp superword.hpp -loopnode.cpp vectset.hpp - -loopnode.hpp cfgnode.hpp -loopnode.hpp multnode.hpp -loopnode.hpp phaseX.hpp -loopnode.hpp subnode.hpp -loopnode.hpp type.hpp - -loopopts.cpp addnode.hpp -loopopts.cpp allocation.inline.hpp -loopopts.cpp connode.hpp -loopopts.cpp divnode.hpp -loopopts.cpp loopnode.hpp -loopopts.cpp mulnode.hpp -loopopts.cpp rootnode.hpp -loopopts.cpp subnode.hpp - -machnode.cpp collectedHeap.hpp -machnode.cpp machnode.hpp -machnode.cpp regalloc.hpp - -machnode.hpp callnode.hpp -machnode.hpp matcher.hpp -machnode.hpp multnode.hpp -machnode.hpp node.hpp -machnode.hpp regmask.hpp - -macro.cpp addnode.hpp -macro.cpp callnode.hpp -macro.cpp cfgnode.hpp -macro.cpp compile.hpp -macro.cpp compileLog.hpp -macro.cpp connode.hpp -macro.cpp locknode.hpp -macro.cpp loopnode.hpp -macro.cpp macro.hpp -macro.cpp memnode.hpp -macro.cpp node.hpp -macro.cpp phaseX.hpp -macro.cpp rootnode.hpp -macro.cpp runtime.hpp -macro.cpp sharedRuntime.hpp -macro.cpp subnode.hpp -macro.cpp type.hpp -macro.cpp vectset.hpp -macro.hpp phase.hpp - -matcher.cpp ad_.hpp -matcher.cpp addnode.hpp -matcher.cpp allocation.inline.hpp -matcher.cpp atomic.hpp -matcher.cpp callnode.hpp -matcher.cpp connode.hpp -matcher.cpp hpi.hpp -matcher.cpp matcher.hpp -matcher.cpp memnode.hpp -matcher.cpp opcodes.hpp -matcher.cpp os.hpp -matcher.cpp regmask.hpp -matcher.cpp rootnode.hpp -matcher.cpp runtime.hpp -matcher.cpp type.hpp - -matcher.hpp node.hpp -matcher.hpp phaseX.hpp -matcher.hpp regmask.hpp -matcher.hpp resourceArea.hpp -matcher.hpp vectset.hpp - -memnode.cpp addnode.hpp -memnode.cpp allocation.inline.hpp -memnode.cpp cfgnode.hpp -memnode.cpp compile.hpp -memnode.cpp compileLog.hpp -memnode.cpp connode.hpp -memnode.cpp loopnode.hpp -memnode.cpp machnode.hpp -memnode.cpp matcher.hpp -memnode.cpp memnode.hpp -memnode.cpp mulnode.hpp -memnode.cpp objArrayKlass.hpp -memnode.cpp phaseX.hpp -memnode.cpp regmask.hpp -memnode.cpp systemDictionary.hpp - -memnode.hpp multnode.hpp -memnode.hpp node.hpp -memnode.hpp opcodes.hpp -memnode.hpp type.hpp - -methodLiveness.cpp allocation.inline.hpp -methodLiveness.cpp bytecode.hpp -methodLiveness.cpp bytecodes.hpp -methodLiveness.cpp ciStreams.hpp -methodLiveness.cpp methodLiveness.hpp - -methodLiveness.hpp bitMap.hpp -methodLiveness.hpp growableArray.hpp - -mulnode.cpp addnode.hpp -mulnode.cpp allocation.inline.hpp -mulnode.cpp connode.hpp -mulnode.cpp memnode.hpp -mulnode.cpp mulnode.hpp -mulnode.cpp phaseX.hpp -mulnode.cpp subnode.hpp - -mulnode.hpp node.hpp -mulnode.hpp opcodes.hpp -mulnode.hpp type.hpp - -multnode.cpp matcher.hpp -multnode.cpp multnode.hpp -multnode.cpp opcodes.hpp -multnode.cpp phaseX.hpp -multnode.cpp regmask.hpp -multnode.cpp type.hpp - -multnode.hpp node.hpp - -node.cpp allocation.inline.hpp -node.cpp cfgnode.hpp -node.cpp connode.hpp -node.cpp copy.hpp -node.cpp machnode.hpp -node.cpp matcher.hpp -node.cpp node.hpp -node.cpp opcodes.hpp -node.cpp regmask.hpp -node.cpp type.hpp -node.cpp vectset.hpp - -node.hpp compile.hpp -node.hpp port.hpp -node.hpp type.hpp -node.hpp vectset.hpp - -opcodes.cpp classes.hpp -opcodes.cpp globalDefinitions.hpp -opcodes.cpp no_precompiled_headers - -os_.cpp runtime.hpp - -os_.cpp runtime.hpp - -output.cpp allocation.inline.hpp -output.cpp assembler.inline.hpp -output.cpp callnode.hpp -output.cpp cfgnode.hpp -output.cpp compileBroker.hpp -output.cpp debugInfo.hpp -output.cpp debugInfoRec.hpp -output.cpp handles.inline.hpp -output.cpp locknode.hpp -output.cpp machnode.hpp -output.cpp oopMap.hpp -output.cpp output.hpp -output.cpp regalloc.hpp -output.cpp runtime.hpp -output.cpp subnode.hpp -output.cpp type.hpp -output.cpp xmlstream.hpp - -output.hpp ad_.hpp -output.hpp block.hpp -output.hpp node.hpp - -parse.hpp ciMethodData.hpp -parse.hpp ciTypeFlow.hpp -parse.hpp generateOopMap.hpp -parse.hpp graphKit.hpp -parse.hpp methodLiveness.hpp -parse.hpp subnode.hpp -parse.hpp vectset.hpp - -parse1.cpp addnode.hpp -parse1.cpp arguments.hpp -parse1.cpp compileLog.hpp -parse1.cpp copy.hpp -parse1.cpp handles.inline.hpp -parse1.cpp linkResolver.hpp -parse1.cpp locknode.hpp -parse1.cpp memnode.hpp -parse1.cpp methodOop.hpp -parse1.cpp parse.hpp -parse1.cpp rootnode.hpp -parse1.cpp runtime.hpp -parse1.cpp sharedRuntime.hpp - -parse2.cpp addnode.hpp -parse2.cpp ciMethodData.hpp -parse2.cpp compileLog.hpp -parse2.cpp deoptimization.hpp -parse2.cpp divnode.hpp -parse2.cpp linkResolver.hpp -parse2.cpp matcher.hpp -parse2.cpp memnode.hpp -parse2.cpp mulnode.hpp -parse2.cpp parse.hpp -parse2.cpp runtime.hpp -parse2.cpp sharedRuntime.hpp -parse2.cpp systemDictionary.hpp -parse2.cpp universe.inline.hpp -parse2.cpp vmSymbols.hpp - -parse3.cpp addnode.hpp -parse3.cpp compileLog.hpp -parse3.cpp deoptimization.hpp -parse3.cpp handles.inline.hpp -parse3.cpp linkResolver.hpp -parse3.cpp memnode.hpp -parse3.cpp objArrayKlass.hpp -parse3.cpp parse.hpp -parse3.cpp rootnode.hpp -parse3.cpp runtime.hpp -parse3.cpp subnode.hpp -parse3.cpp universe.inline.hpp - -parseHelper.cpp addnode.hpp -parseHelper.cpp compileLog.hpp -parseHelper.cpp memnode.hpp -parseHelper.cpp mulnode.hpp -parseHelper.cpp objArrayKlass.hpp -parseHelper.cpp parse.hpp -parseHelper.cpp rootnode.hpp -parseHelper.cpp runtime.hpp -parseHelper.cpp sharedRuntime.hpp -parseHelper.cpp systemDictionary.hpp - -phase.cpp compile.hpp -phase.cpp compileBroker.hpp -phase.cpp nmethod.hpp -phase.cpp node.hpp -phase.cpp phase.hpp - -phase.hpp port.hpp -phase.hpp timer.hpp - -phaseX.cpp allocation.inline.hpp -phaseX.cpp block.hpp -phaseX.cpp callnode.hpp -phaseX.cpp cfgnode.hpp -phaseX.cpp connode.hpp -phaseX.cpp loopnode.hpp -phaseX.cpp machnode.hpp -phaseX.cpp opcodes.hpp -phaseX.cpp phaseX.hpp -phaseX.cpp regalloc.hpp -phaseX.cpp rootnode.hpp - -phaseX.hpp dict.hpp -phaseX.hpp memnode.hpp -phaseX.hpp node.hpp -phaseX.hpp phase.hpp -phaseX.hpp resourceArea.hpp -phaseX.hpp type.hpp -phaseX.hpp vectset.hpp - -port.cpp port.hpp - -port.hpp top.hpp - -postaloc.cpp allocation.inline.hpp -postaloc.cpp chaitin.hpp -postaloc.cpp machnode.hpp - -reg_split.cpp addnode.hpp -reg_split.cpp allocation.inline.hpp -reg_split.cpp callnode.hpp -reg_split.cpp c2compiler.hpp -reg_split.cpp cfgnode.hpp -reg_split.cpp chaitin.hpp -reg_split.cpp loopnode.hpp -reg_split.cpp machnode.hpp -reg_split.cpp vectset.hpp - -regalloc.cpp regalloc.hpp - -regalloc.hpp block.hpp -regalloc.hpp matcher.hpp -regalloc.hpp phase.hpp -regalloc.hpp vmreg.hpp - -regmask.cpp ad_.hpp -regmask.cpp compile.hpp -regmask.cpp regmask.hpp - -regmask.hpp adGlobals_.hpp -regmask.hpp optoreg.hpp -regmask.hpp port.hpp -regmask.hpp vmreg.hpp - -rootnode.cpp allocation.inline.hpp -rootnode.cpp callnode.hpp -rootnode.cpp cfgnode.hpp -rootnode.cpp phaseX.hpp -rootnode.cpp regmask.hpp -rootnode.cpp rootnode.hpp -rootnode.cpp subnode.hpp -rootnode.cpp type.hpp - -rootnode.hpp loopnode.hpp - -runtime.cpp ad_.hpp -runtime.cpp addnode.hpp -runtime.cpp barrierSet.hpp -runtime.cpp bytecode.hpp -runtime.cpp callnode.hpp -runtime.cpp cfgnode.hpp -runtime.cpp collectedHeap.hpp -runtime.cpp compileBroker.hpp -runtime.cpp compiledIC.hpp -runtime.cpp compilerOracle.hpp -runtime.cpp connode.hpp -runtime.cpp copy.hpp -runtime.cpp fprofiler.hpp -runtime.cpp g1SATBCardTableModRefBS.hpp -runtime.cpp gcLocker.inline.hpp -runtime.cpp graphKit.hpp -runtime.cpp handles.inline.hpp -runtime.cpp heapRegion.hpp -runtime.cpp icBuffer.hpp -runtime.cpp interfaceSupport.hpp -runtime.cpp interpreter.hpp -runtime.cpp javaCalls.hpp -runtime.cpp linkResolver.hpp -runtime.cpp machnode.hpp -runtime.cpp matcher.hpp -runtime.cpp memnode.hpp -runtime.cpp mulnode.hpp -runtime.cpp nmethod.hpp -runtime.cpp objArrayKlass.hpp -runtime.cpp oop.inline.hpp -runtime.cpp oopFactory.hpp -runtime.cpp oopMap.hpp -runtime.cpp pcDesc.hpp -runtime.cpp preserveException.hpp -runtime.cpp runtime.hpp -runtime.cpp scopeDesc.hpp -runtime.cpp sharedRuntime.hpp -runtime.cpp signature.hpp -runtime.cpp subnode.hpp -runtime.cpp systemDictionary.hpp -runtime.cpp threadCritical.hpp -runtime.cpp vframe.hpp -runtime.cpp vframeArray.hpp -runtime.cpp vframe_hp.hpp -runtime.cpp vmSymbols.hpp -runtime.cpp vtableStubs.hpp - -runtime.hpp biasedLocking.hpp -runtime.hpp codeBlob.hpp -runtime.hpp deoptimization.hpp -runtime.hpp machnode.hpp -runtime.hpp type.hpp -runtime.hpp vframe.hpp - -runtime_.cpp adGlobals_.hpp -runtime_.cpp ad_.hpp -runtime_.cpp assembler.hpp -runtime_.cpp assembler_.inline.hpp -runtime_.cpp globalDefinitions.hpp -runtime_.cpp interfaceSupport.hpp -runtime_.cpp interpreter.hpp -runtime_.cpp nativeInst_.hpp -runtime_.cpp runtime.hpp -runtime_.cpp sharedRuntime.hpp -runtime_.cpp stubRoutines.hpp -runtime_.cpp systemDictionary.hpp -runtime_.cpp vframeArray.hpp -runtime_.cpp vmreg.hpp -runtime_.cpp vmreg_.inline.hpp - -set.cpp allocation.inline.hpp -set.cpp set.hpp - -set.hpp allocation.hpp -set.hpp port.hpp - -sharedRuntime_.cpp runtime.hpp - -split_if.cpp allocation.inline.hpp -split_if.cpp callnode.hpp -split_if.cpp connode.hpp -split_if.cpp loopnode.hpp - -stringopts.hpp phaseX.hpp -stringopts.hpp node.hpp - -stringopts.cpp addnode.hpp -stringopts.cpp callnode.hpp -stringopts.cpp callGenerator.hpp -stringopts.cpp compileLog.hpp -stringopts.cpp divnode.hpp -stringopts.cpp idealKit.hpp -stringopts.cpp graphKit.hpp -stringopts.cpp rootnode.hpp -stringopts.cpp runtime.hpp -stringopts.cpp subnode.hpp -stringopts.cpp stringopts.hpp - -stubGenerator_.cpp runtime.hpp - -stubRoutines.cpp runtime.hpp - -subnode.cpp addnode.hpp -subnode.cpp allocation.inline.hpp -subnode.cpp callnode.hpp -subnode.cpp cfgnode.hpp -subnode.cpp compileLog.hpp -subnode.cpp connode.hpp -subnode.cpp loopnode.hpp -subnode.cpp matcher.hpp -subnode.cpp mulnode.hpp -subnode.cpp opcodes.hpp -subnode.cpp phaseX.hpp -subnode.cpp sharedRuntime.hpp -subnode.cpp subnode.hpp - -subnode.hpp node.hpp -subnode.hpp opcodes.hpp -subnode.hpp type.hpp - -superword.cpp addnode.hpp -superword.cpp allocation.inline.hpp -superword.cpp callnode.hpp -superword.cpp compileLog.hpp -superword.cpp divnode.hpp -superword.cpp matcher.hpp -superword.cpp memnode.hpp -superword.cpp mulnode.hpp -superword.cpp opcodes.hpp -superword.cpp superword.hpp -superword.cpp vectornode.hpp -superword.cpp vectset.hpp - -superword.hpp connode.hpp -superword.hpp growableArray.hpp -superword.hpp loopnode.hpp -superword.hpp node.hpp -superword.hpp phaseX.hpp -superword.hpp vectornode.hpp - -thread.cpp c2compiler.hpp - -top.hpp c2_globals.hpp - -type.cpp ciTypeFlow.hpp -type.cpp compileLog.hpp -type.cpp dict.hpp -type.cpp gcLocker.hpp -type.cpp instanceKlass.hpp -type.cpp klassKlass.hpp -type.cpp matcher.hpp -type.cpp node.hpp -type.cpp objArrayKlass.hpp -type.cpp oopFactory.hpp -type.cpp opcodes.hpp -type.cpp resourceArea.hpp -type.cpp symbolTable.hpp -type.cpp systemDictionary.hpp -type.cpp type.hpp -type.cpp typeArrayKlass.hpp - -type.hpp adlcVMDeps.hpp -type.hpp handles.hpp -type.hpp port.hpp - -vectornode.cpp allocation.inline.hpp -vectornode.cpp connode.hpp -vectornode.cpp vectornode.hpp - -vectornode.hpp matcher.hpp -vectornode.hpp memnode.hpp -vectornode.hpp node.hpp -vectornode.hpp opcodes.hpp - -vectset.cpp allocation.inline.hpp -vectset.cpp vectset.hpp - -vectset.hpp set.hpp - -vframeArray.cpp runtime.hpp - -vframe_hp.cpp matcher.hpp - -vmStructs.cpp adGlobals_.hpp -vmStructs.cpp matcher.hpp - -vmreg.hpp adGlobals_.hpp -vmreg.hpp adlcVMDeps.hpp -vmreg.hpp ostream.hpp - -vtableStubs.cpp matcher.hpp - -vtableStubs_.cpp ad_.hpp -vtableStubs_.cpp runtime.hpp - -idealGraphPrinter.hpp dict.hpp -idealGraphPrinter.hpp vectset.hpp -idealGraphPrinter.hpp growableArray.hpp -idealGraphPrinter.hpp ostream.hpp -idealGraphPrinter.hpp xmlstream.hpp - -idealGraphPrinter.cpp idealGraphPrinter.hpp -idealGraphPrinter.cpp chaitin.hpp -idealGraphPrinter.cpp machnode.hpp -idealGraphPrinter.cpp parse.hpp -idealGraphPrinter.cpp threadCritical.hpp - -compile.cpp idealGraphPrinter.hpp -thread.cpp idealGraphPrinter.hpp -phaseX.cpp idealGraphPrinter.hpp -parse2.cpp idealGraphPrinter.hpp -parse1.cpp idealGraphPrinter.hpp -matcher.cpp idealGraphPrinter.hpp -loopnode.cpp idealGraphPrinter.hpp -chaitin.cpp idealGraphPrinter.hpp diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core deleted file mode 100644 index 3d0901b22c1..00000000000 --- a/hotspot/src/share/vm/includeDB_core +++ /dev/null @@ -1,4788 +0,0 @@ -// -// Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - - -// includeDB format: -// a comment starts with '// ' and goes to the end of the line -// anything else is a pair of filenames. The line "x.cpp y.hpp" means -// "x.cpp must include y.hpp". Similarly, "y.hpp z.hpp" means "any file including -// y.hpp must also include z.hpp, and z.hpp must be included before y.hpp". -// -// Style hint: we try to keep the entries ordered alphabetically, both -// globally (left-hand sides) and within a given file (right-hand sides) -// -// To avoid unnecessary conflicts with the work of other programmers, -// do not delete, move, or reformat pre-existing lines. Do not attempt -// to "optimize" this file incrementally. -// -// ============ Platform dependent include files =========== -// -// Some header files occur in clusters. Header files which depend -// on the token "generate_platform_dependent_include" are included -// directly by other header files, and should not be explicitly declared -// as dependencies. Header files named H.inline.hpp generally contain -// bodies for inline functions declared in H.hpp. -// -// NOTE: Files that use the token "generate_platform_dependent_include" -// are expected to contain macro references like , , ... and -// makedeps has a dependency on these platform files looking like: -// foo_.trailing_string -// (where "trailing_string" can be any legal filename strings but typically -// is "hpp" or "inline.hpp"). -// -// The dependency in makedeps (and enforced) is that an underscore -// will precedure the macro invocation. Note that this restriction -// is only enforced on filenames that have the dependency token -// "generate_platform_dependent_include" so other files using macro -// expansion (typically .cpp files) have no requirement to have -// an underscore precede the macro although this is encouraged for -// readibility. -// -// ======= Circular dependencies and inline functions ========== -// -// (Sometimes, circular dependencies prevent complex function bodies -// from being defined directly in H.hpp. In such cases, a client S.cpp -// of H.hpp must always declare a dependency on H.inline.hpp, which in -// turn will declare a dependency on H.hpp. If by some mischance S.cpp -// declares a dependency on H.hpp, the compiler may complain about missing -// inline function bodies, or (perhaps) the program may fail to link. -// The solution is to have S.cpp depend on H.inline.hpp instead of H.hpp. -// -// Generally, if in response to a source code change the compiler -// issues an error in a file F (which may be either a header or a -// source file), you should consider if the error arises from a missing -// class definition C. If that is the case, find the header file H which -// contains C (often, H=C.hpp, but you may have to search for C's definition). -// Then, add a line to the includeDB file as appropriate. -// -// -// Here are some typical compiler errors that may require changes to includeDB. -// (Messages are taken from Sun's SPARC compiler.) -// -// "klassVtable.cpp", line 96: Error: No_GC_Verifier is not defined. -// Source code: -// No_GC_Verifier no_gc; -// -// The problem is that the class name No_GC_Verifier is not declared, -// so the compiler is confused by the syntax. The solution: -// klassVtable.cpp gcLocker.hpp -// -// Sometimes the compiler has only partial knowledge about a class: -// "privilegedStack.cpp", line 60: Error: cast is not a member of instanceKlass. -// Source code: -// if (_protection_domain != instanceKlass::cast(method->method_holder())->protection_domain()) return false; -// -// Here, instanceKlass is known to the compiler as a type, because of a -// forward declaration somewhere ("class instanceKlass;"). The problem -// is that the compiler has not seen the body of instanceKlass, and so it -// complains that it does not know about "instanceKlass::cast". Solution: -// privilegedStack.cpp instanceKlass.hpp -// -// Here's another example of a missing declaration: -// "privilegedStack.cpp", line 111: Error: The function AllocateHeap must have a prototype. -// Source code: -// _array = NEW_C_HEAP_ARRAY(PrivilegedElement, initial_size); -// -// The problem is that the macro call expands to use a heap function -// which is defined (for technical reasons) in a different file. Solution: -// privilegedStack.cpp allocation.inline.hpp -// The macro is defined in allocation.hpp, while the function is -// defined (as an inline) in allocation.inline.hpp. Generally, if you -// find you need a header H.hpp, and there is also a header -// H.inline.hpp use the latter, because it contains inline definitions -// you will require. - -abstractCompiler.cpp abstractCompiler.hpp -abstractCompiler.cpp mutexLocker.hpp - -abstractCompiler.hpp compilerInterface.hpp - -abstractInterpreter.hpp bytecodes.hpp -abstractInterpreter.hpp interp_masm_.hpp -abstractInterpreter.hpp stubs.hpp -abstractInterpreter.hpp thread_.inline.hpp -abstractInterpreter.hpp top.hpp -abstractInterpreter.hpp vmThread.hpp - -accessFlags.cpp accessFlags.hpp -accessFlags.cpp oop.inline.hpp -accessFlags.cpp os_.inline.hpp - -accessFlags.hpp jvm.h -accessFlags.hpp top.hpp - -allocation.cpp allocation.hpp -allocation.cpp allocation.inline.hpp -allocation.cpp os.hpp -allocation.cpp os_.inline.hpp -allocation.cpp ostream.hpp -allocation.cpp resourceArea.hpp -allocation.cpp task.hpp -allocation.cpp threadCritical.hpp - -allocation.hpp globalDefinitions.hpp -allocation.hpp globals.hpp - -allocation.inline.hpp os.hpp - -aprofiler.cpp aprofiler.hpp -aprofiler.cpp collectedHeap.inline.hpp -aprofiler.cpp oop.inline.hpp -aprofiler.cpp oop.inline2.hpp -aprofiler.cpp permGen.hpp -aprofiler.cpp resourceArea.hpp -aprofiler.cpp space.hpp -aprofiler.cpp systemDictionary.hpp - -aprofiler.hpp allocation.hpp -aprofiler.hpp klass.hpp -aprofiler.hpp klassOop.hpp -aprofiler.hpp top.hpp -aprofiler.hpp universe.hpp - -arguments.cpp allocation.inline.hpp -arguments.cpp arguments.hpp -arguments.cpp cardTableRS.hpp -arguments.cpp compilerOracle.hpp -arguments.cpp defaultStream.hpp -arguments.cpp globals_extension.hpp -arguments.cpp java.hpp -arguments.cpp javaAssertions.hpp -arguments.cpp jvmtiExport.hpp -arguments.cpp management.hpp -arguments.cpp oop.inline.hpp -arguments.cpp os_.inline.hpp -arguments.cpp referenceProcessor.hpp -arguments.cpp taskqueue.hpp -arguments.cpp universe.inline.hpp -arguments.cpp vm_version_.hpp - -arguments.hpp java.hpp -arguments.hpp perfData.hpp -arguments.hpp top.hpp - -array.cpp array.hpp -array.cpp resourceArea.hpp -array.cpp thread_.inline.hpp - -array.hpp allocation.hpp -array.hpp allocation.inline.hpp - -arrayKlass.cpp arrayKlass.hpp -arrayKlass.cpp arrayKlassKlass.hpp -arrayKlass.cpp arrayOop.hpp -arrayKlass.cpp collectedHeap.inline.hpp -arrayKlass.cpp gcLocker.hpp -arrayKlass.cpp instanceKlass.hpp -arrayKlass.cpp javaClasses.hpp -arrayKlass.cpp jvmti.h -arrayKlass.cpp objArrayOop.hpp -arrayKlass.cpp oop.inline.hpp -arrayKlass.cpp systemDictionary.hpp -arrayKlass.cpp universe.inline.hpp -arrayKlass.cpp vmSymbols.hpp - -arrayKlass.hpp klass.hpp -arrayKlass.hpp klassOop.hpp -arrayKlass.hpp klassVtable.hpp -arrayKlass.hpp universe.hpp - -arrayKlassKlass.cpp arrayKlassKlass.hpp -arrayKlassKlass.cpp handles.inline.hpp -arrayKlassKlass.cpp javaClasses.hpp -arrayKlassKlass.cpp markSweep.inline.hpp -arrayKlassKlass.cpp oop.inline.hpp - -arrayKlassKlass.hpp arrayKlass.hpp -arrayKlassKlass.hpp klassKlass.hpp - -arrayOop.cpp arrayOop.hpp -arrayOop.cpp objArrayOop.hpp -arrayOop.cpp oop.inline.hpp -arrayOop.cpp symbolOop.hpp - -arrayOop.hpp oop.hpp -arrayOop.hpp universe.inline.hpp - -assembler.cpp assembler.hpp -assembler.cpp assembler.inline.hpp -assembler.cpp assembler_.inline.hpp -assembler.cpp codeBuffer.hpp -assembler.cpp icache.hpp -assembler.cpp os.hpp - -assembler.hpp allocation.hpp -assembler.hpp debug.hpp -assembler.hpp growableArray.hpp -assembler.hpp oopRecorder.hpp -assembler.hpp register_.hpp -assembler.hpp relocInfo.hpp -assembler.hpp top.hpp -assembler.hpp vm_version_.hpp - -assembler.inline.hpp assembler.hpp -assembler.inline.hpp codeBuffer.hpp -assembler.inline.hpp disassembler.hpp -assembler.inline.hpp threadLocalStorage.hpp - -assembler_.cpp assembler_.inline.hpp -assembler_.cpp biasedLocking.hpp -assembler_.cpp cardTableModRefBS.hpp -assembler_.cpp collectedHeap.inline.hpp -assembler_.cpp interfaceSupport.hpp -assembler_.cpp interpreter.hpp -assembler_.cpp methodHandles.hpp -assembler_.cpp objectMonitor.hpp -assembler_.cpp os.hpp -assembler_.cpp resourceArea.hpp -assembler_.cpp sharedRuntime.hpp -assembler_.cpp stubRoutines.hpp - -assembler_.hpp generate_platform_dependent_include - -assembler_.inline.hpp assembler.inline.hpp -assembler_.inline.hpp codeBuffer.hpp -assembler_.inline.hpp codeCache.hpp -assembler_.inline.hpp handles.inline.hpp - -assembler_.cpp assembler.hpp -assembler_.cpp assembler_.inline.hpp -assembler_.cpp os.hpp -assembler_.cpp threadLocalStorage.hpp - -atomic.cpp atomic.hpp -atomic.cpp atomic_.inline.hpp -atomic.cpp os_.inline.hpp - -atomic.hpp allocation.hpp - -atomic_.inline.hpp atomic.hpp -atomic_.inline.hpp os.hpp -atomic_.inline.hpp vm_version_.hpp -atomic_.inline.hpp orderAccess_.inline.hpp - -// attachListener is jck optional, put cpp deps in includeDB_features - -attachListener.hpp allocation.hpp -attachListener.hpp debug.hpp -attachListener.hpp ostream.hpp - -barrierSet.cpp barrierSet.inline.hpp -barrierSet.cpp collectedHeap.hpp -barrierSet.cpp universe.hpp - -barrierSet.hpp memRegion.hpp -barrierSet.hpp oopsHierarchy.hpp - -barrierSet.inline.hpp barrierSet.hpp -barrierSet.inline.hpp cardTableModRefBS.hpp - -basicLock.cpp basicLock.hpp -basicLock.cpp synchronizer.hpp - -basicLock.hpp handles.hpp -basicLock.hpp markOop.hpp -basicLock.hpp top.hpp - -biasedLocking.cpp basicLock.hpp -biasedLocking.cpp biasedLocking.hpp -biasedLocking.cpp klass.inline.hpp -biasedLocking.cpp markOop.hpp -biasedLocking.cpp task.hpp -biasedLocking.cpp vframe.hpp -biasedLocking.cpp vmThread.hpp -biasedLocking.cpp vm_operations.hpp - -biasedLocking.hpp growableArray.hpp -biasedLocking.hpp handles.hpp - -bitMap.cpp allocation.inline.hpp -bitMap.cpp bitMap.inline.hpp -bitMap.cpp copy.hpp -bitMap.cpp os_.inline.hpp - -bitMap.hpp allocation.hpp -bitMap.hpp top.hpp - -bitMap.inline.hpp atomic.hpp -bitMap.inline.hpp bitMap.hpp - -blockOffsetTable.cpp blockOffsetTable.inline.hpp -blockOffsetTable.cpp collectedHeap.inline.hpp -blockOffsetTable.cpp iterator.hpp -blockOffsetTable.cpp java.hpp -blockOffsetTable.cpp oop.inline.hpp -blockOffsetTable.cpp space.inline.hpp -blockOffsetTable.cpp universe.hpp - -blockOffsetTable.hpp globalDefinitions.hpp -blockOffsetTable.hpp memRegion.hpp -blockOffsetTable.hpp virtualspace.hpp - -blockOffsetTable.inline.hpp blockOffsetTable.hpp -blockOffsetTable.inline.hpp safepoint.hpp -blockOffsetTable.inline.hpp space.hpp - -bytecode.cpp bytecode.hpp -bytecode.cpp constantPoolOop.hpp -bytecode.cpp fieldType.hpp -bytecode.cpp handles.inline.hpp -bytecode.cpp linkResolver.hpp -bytecode.cpp oop.inline.hpp -bytecode.cpp safepoint.hpp -bytecode.cpp signature.hpp - -bytecode.hpp allocation.hpp -bytecode.hpp bytecodes.hpp -bytecode.hpp bytes_.hpp -bytecode.hpp methodOop.hpp - -bytecodeHistogram.cpp bytecodeHistogram.hpp -bytecodeHistogram.cpp growableArray.hpp -bytecodeHistogram.cpp os.hpp -bytecodeHistogram.cpp resourceArea.hpp - -bytecodeHistogram.hpp allocation.hpp -bytecodeHistogram.hpp bytecodes.hpp - -bytecodeInterpreter.cpp no_precompiled_headers -bytecodeInterpreter.cpp bytecodeHistogram.hpp -bytecodeInterpreter.cpp bytecodeInterpreter.hpp -bytecodeInterpreter.cpp bytecodeInterpreter.inline.hpp -bytecodeInterpreter.cpp cardTableModRefBS.hpp -bytecodeInterpreter.cpp collectedHeap.hpp -bytecodeInterpreter.cpp exceptions.hpp -bytecodeInterpreter.cpp frame.inline.hpp -bytecodeInterpreter.cpp handles.inline.hpp -bytecodeInterpreter.cpp interfaceSupport.hpp -bytecodeInterpreter.cpp interpreterRuntime.hpp -bytecodeInterpreter.cpp interpreter.hpp -bytecodeInterpreter.cpp jvmtiExport.hpp -bytecodeInterpreter.cpp objArrayKlass.hpp -bytecodeInterpreter.cpp oop.inline.hpp -bytecodeInterpreter.cpp orderAccess_.inline.hpp -bytecodeInterpreter.cpp resourceArea.hpp -bytecodeInterpreter.cpp sharedRuntime.hpp -bytecodeInterpreter.cpp threadCritical.hpp -bytecodeInterpreter.cpp vmSymbols.hpp - -bytecodeInterpreter_.cpp assembler.hpp -bytecodeInterpreter_.cpp bytecodeInterpreter.hpp -bytecodeInterpreter_.cpp bytecodeInterpreter.inline.hpp -bytecodeInterpreter_.cpp debug.hpp -bytecodeInterpreter_.cpp deoptimization.hpp -bytecodeInterpreter_.cpp frame.inline.hpp -bytecodeInterpreter_.cpp interp_masm_.hpp -bytecodeInterpreter_.cpp interpreterRuntime.hpp -bytecodeInterpreter_.cpp interpreter.hpp -bytecodeInterpreter_.cpp jvmtiExport.hpp -bytecodeInterpreter_.cpp jvmtiThreadState.hpp -bytecodeInterpreter_.cpp methodDataOop.hpp -bytecodeInterpreter_.cpp methodOop.hpp -bytecodeInterpreter_.cpp oop.inline.hpp -bytecodeInterpreter_.cpp sharedRuntime.hpp -bytecodeInterpreter_.cpp stubRoutines.hpp -bytecodeInterpreter_.cpp synchronizer.hpp -bytecodeInterpreter_.cpp vframeArray.hpp - -bytecodeInterpreterWithChecks.cpp bytecodeInterpreter.cpp - -bytecodeInterpreter.hpp allocation.hpp -bytecodeInterpreter.hpp basicLock.hpp -bytecodeInterpreter.hpp bytes_.hpp -bytecodeInterpreter.hpp frame.hpp -bytecodeInterpreter.hpp globalDefinitions.hpp -bytecodeInterpreter.hpp globals.hpp -bytecodeInterpreter.hpp methodDataOop.hpp -bytecodeInterpreter.hpp methodOop.hpp - -bytecodeInterpreter.inline.hpp bytecodeInterpreter.hpp -bytecodeInterpreter.inline.hpp stubRoutines.hpp - -bytecodeInterpreter_.hpp generate_platform_dependent_include - -bytecodeInterpreter_.inline.hpp generate_platform_dependent_include - -bytecodeStream.cpp bytecodeStream.hpp -bytecodeStream.cpp bytecodes.hpp - -bytecodeStream.hpp allocation.hpp -bytecodeStream.hpp bytecode.hpp -bytecodeStream.hpp bytes_.hpp -bytecodeStream.hpp methodOop.hpp - -bytecodeTracer.cpp bytecodeHistogram.hpp -bytecodeTracer.cpp bytecodeTracer.hpp -bytecodeTracer.cpp bytecodes.hpp -bytecodeTracer.cpp interpreter.hpp -bytecodeTracer.cpp interpreterRuntime.hpp -bytecodeTracer.cpp methodDataOop.hpp -bytecodeTracer.cpp methodOop.hpp -bytecodeTracer.cpp mutexLocker.hpp -bytecodeTracer.cpp resourceArea.hpp -bytecodeTracer.cpp timer.hpp - -bytecodeTracer.hpp allocation.hpp - -bytecodes.cpp bytecodes.hpp -bytecodes.cpp bytes_.hpp -bytecodes.cpp methodOop.hpp -bytecodes.cpp resourceArea.hpp - -bytecodes.hpp allocation.hpp -bytecodes.hpp top.hpp - -bytecodes_.cpp bytecodes.hpp - -bytecodes_.hpp generate_platform_dependent_include - -bytes_.hpp allocation.hpp - -bytes_.inline.hpp generate_platform_dependent_include - -cardTableModRefBS.cpp allocation.inline.hpp -cardTableModRefBS.cpp cardTableModRefBS.hpp -cardTableModRefBS.cpp cardTableRS.hpp -cardTableModRefBS.cpp java.hpp -cardTableModRefBS.cpp mutexLocker.hpp -cardTableModRefBS.cpp sharedHeap.hpp -cardTableModRefBS.cpp space.hpp -cardTableModRefBS.cpp space.inline.hpp -cardTableModRefBS.cpp universe.hpp -cardTableModRefBS.cpp virtualspace.hpp - -cardTableModRefBS.hpp modRefBarrierSet.hpp -cardTableModRefBS.hpp oop.hpp -cardTableModRefBS.hpp oop.inline2.hpp - -cardTableRS.cpp allocation.inline.hpp -cardTableRS.cpp cardTableRS.hpp -cardTableRS.cpp genCollectedHeap.hpp -cardTableRS.cpp generation.hpp -cardTableRS.cpp java.hpp -cardTableRS.cpp oop.inline.hpp -cardTableRS.cpp os.hpp -cardTableRS.cpp space.hpp - -cardTableRS.hpp cardTableModRefBS.hpp -cardTableRS.hpp genRemSet.hpp -cardTableRS.hpp memRegion.hpp - -ciArray.cpp ciArray.hpp -ciArray.cpp ciKlass.hpp -ciArray.cpp ciUtilities.hpp - -ciArray.hpp arrayOop.hpp -ciArray.hpp ciObject.hpp -ciArray.hpp objArrayOop.hpp -ciArray.hpp typeArrayOop.hpp - -ciArrayKlass.cpp ciArrayKlass.hpp -ciArrayKlass.cpp ciObjArrayKlass.hpp -ciArrayKlass.cpp ciTypeArrayKlass.hpp -ciArrayKlass.cpp ciUtilities.hpp - -ciArrayKlass.hpp ciKlass.hpp - -ciArrayKlassKlass.hpp ciKlassKlass.hpp - -ciCallProfile.hpp ciClassList.hpp - -ciCallSite.cpp ciCallSite.hpp -ciCallSite.cpp ciUtilities.hpp - -ciCallSite.hpp ciInstance.hpp - -ciConstant.cpp allocation.hpp -ciConstant.cpp allocation.inline.hpp -ciConstant.cpp ciConstant.hpp -ciConstant.cpp ciUtilities.hpp - -ciConstant.hpp ciClassList.hpp -ciConstant.hpp ciNullObject.hpp - -ciConstantPoolCache.cpp allocation.hpp -ciConstantPoolCache.cpp allocation.inline.hpp -ciConstantPoolCache.cpp ciConstantPoolCache.hpp -ciConstantPoolCache.cpp ciUtilities.hpp - -ciConstantPoolCache.hpp growableArray.hpp -ciConstantPoolCache.hpp resourceArea.hpp - -ciCPCache.cpp cpCacheOop.hpp -ciCPCache.cpp ciCPCache.hpp -ciCPCache.cpp ciUtilities.hpp - -ciCPCache.hpp ciClassList.hpp -ciCPCache.hpp ciObject.hpp -ciCPCache.hpp cpCacheOop.hpp - -ciEnv.cpp allocation.inline.hpp -ciEnv.cpp ciConstant.hpp -ciEnv.cpp ciEnv.hpp -ciEnv.cpp ciField.hpp -ciEnv.cpp ciInstance.hpp -ciEnv.cpp ciInstanceKlass.hpp -ciEnv.cpp ciInstanceKlassKlass.hpp -ciEnv.cpp ciMethod.hpp -ciEnv.cpp ciNullObject.hpp -ciEnv.cpp ciObjArrayKlassKlass.hpp -ciEnv.cpp ciTypeArrayKlassKlass.hpp -ciEnv.cpp ciUtilities.hpp -ciEnv.cpp collectedHeap.inline.hpp -ciEnv.cpp compileBroker.hpp -ciEnv.cpp compileLog.hpp -ciEnv.cpp compilerOracle.hpp -ciEnv.cpp dtrace.hpp -ciEnv.cpp init.hpp -ciEnv.cpp jvmtiExport.hpp -ciEnv.cpp linkResolver.hpp -ciEnv.cpp methodDataOop.hpp -ciEnv.cpp objArrayKlass.hpp -ciEnv.cpp oop.inline.hpp -ciEnv.cpp oop.inline2.hpp -ciEnv.cpp oopFactory.hpp -ciEnv.cpp reflection.hpp -ciEnv.cpp scopeDesc.hpp -ciEnv.cpp sharedRuntime.hpp -ciEnv.cpp systemDictionary.hpp -ciEnv.cpp universe.inline.hpp -ciEnv.cpp vmSymbols.hpp - -ciEnv.hpp ciClassList.hpp -ciEnv.hpp ciObjectFactory.hpp -ciEnv.hpp debugInfoRec.hpp -ciEnv.hpp dependencies.hpp -ciEnv.hpp exceptionHandlerTable.hpp -ciEnv.hpp oopMap.hpp -ciEnv.hpp systemDictionary.hpp -ciEnv.hpp thread.hpp - -ciExceptionHandler.cpp ciExceptionHandler.hpp -ciExceptionHandler.cpp ciUtilities.hpp - -ciExceptionHandler.hpp ciClassList.hpp -ciExceptionHandler.hpp ciInstanceKlass.hpp - -ciField.cpp ciField.hpp -ciField.cpp ciInstanceKlass.hpp -ciField.cpp ciUtilities.hpp -ciField.cpp collectedHeap.inline.hpp -ciField.cpp fieldDescriptor.hpp -ciField.cpp linkResolver.hpp -ciField.cpp oop.inline.hpp -ciField.cpp oop.inline2.hpp -ciField.cpp systemDictionary.hpp -ciField.cpp universe.inline.hpp - -ciField.hpp ciClassList.hpp -ciField.hpp ciConstant.hpp -ciField.hpp ciFlags.hpp -ciField.hpp ciInstance.hpp - -ciFlags.cpp ciFlags.hpp - -ciFlags.hpp accessFlags.hpp -ciFlags.hpp allocation.hpp -ciFlags.hpp ciClassList.hpp -ciFlags.hpp jvm.h - -ciInstance.cpp ciConstant.hpp -ciInstance.cpp ciField.hpp -ciInstance.cpp ciInstance.hpp -ciInstance.cpp ciInstanceKlass.hpp -ciInstance.cpp ciUtilities.hpp -ciInstance.cpp oop.inline.hpp -ciInstance.cpp systemDictionary.hpp - -ciInstance.hpp ciObject.hpp -ciInstance.hpp instanceOop.hpp - -ciInstanceKlass.cpp allocation.hpp -ciInstanceKlass.cpp allocation.inline.hpp -ciInstanceKlass.cpp ciField.hpp -ciInstanceKlass.cpp ciInstance.hpp -ciInstanceKlass.cpp ciInstanceKlass.hpp -ciInstanceKlass.cpp ciUtilities.hpp -ciInstanceKlass.cpp fieldDescriptor.hpp -ciInstanceKlass.cpp oop.inline.hpp -ciInstanceKlass.cpp systemDictionary.hpp - -ciInstanceKlass.hpp ciConstantPoolCache.hpp -ciInstanceKlass.hpp ciFlags.hpp -ciInstanceKlass.hpp ciInstanceKlassKlass.hpp -ciInstanceKlass.hpp ciKlass.hpp -ciInstanceKlass.hpp ciSymbol.hpp - -ciInstanceKlassKlass.cpp ciInstanceKlassKlass.hpp -ciInstanceKlassKlass.cpp ciUtilities.hpp - -ciInstanceKlassKlass.hpp ciKlassKlass.hpp - -ciKlass.cpp ciKlass.hpp -ciKlass.cpp ciSymbol.hpp -ciKlass.cpp ciUtilities.hpp -ciKlass.cpp oop.inline.hpp - -ciKlass.hpp ciType.hpp -ciKlass.hpp klassOop.hpp - -ciKlassKlass.cpp ciKlassKlass.hpp -ciKlassKlass.cpp ciUtilities.hpp - -ciKlassKlass.hpp ciKlass.hpp -ciKlassKlass.hpp ciSymbol.hpp - -ciMethod.cpp abstractCompiler.hpp -ciMethod.cpp allocation.inline.hpp -ciMethod.cpp bitMap.inline.hpp -ciMethod.cpp ciCallProfile.hpp -ciMethod.cpp ciExceptionHandler.hpp -ciMethod.cpp ciInstanceKlass.hpp -ciMethod.cpp ciMethod.hpp -ciMethod.cpp ciMethodBlocks.hpp -ciMethod.cpp ciMethodData.hpp -ciMethod.cpp ciMethodKlass.hpp -ciMethod.cpp ciStreams.hpp -ciMethod.cpp ciSymbol.hpp -ciMethod.cpp ciUtilities.hpp -ciMethod.cpp compilerOracle.hpp -ciMethod.cpp deoptimization.hpp -ciMethod.cpp generateOopMap.hpp -ciMethod.cpp interpreter.hpp -ciMethod.cpp linkResolver.hpp -ciMethod.cpp methodLiveness.hpp -ciMethod.cpp nativeLookup.hpp -ciMethod.cpp oop.inline.hpp -ciMethod.cpp oopMapCache.hpp -ciMethod.cpp resourceArea.hpp -ciMethod.cpp systemDictionary.hpp -ciMethod.cpp xmlstream.hpp - -ciMethod.hpp bitMap.hpp -ciMethod.hpp ciFlags.hpp -ciMethod.hpp ciInstanceKlass.hpp -ciMethod.hpp ciObject.hpp -ciMethod.hpp ciSignature.hpp -ciMethod.hpp methodHandles.hpp -ciMethod.hpp methodLiveness.hpp - -ciMethodBlocks.cpp bytecode.hpp -ciMethodBlocks.cpp ciMethodBlocks.hpp -ciMethodBlocks.cpp ciStreams.hpp -ciMethodBlocks.cpp copy.hpp - -ciMethodBlocks.hpp ciMethod.hpp -ciMethodBlocks.hpp growableArray.hpp -ciMethodBlocks.hpp resourceArea.hpp - -ciMethodData.cpp allocation.inline.hpp -ciMethodData.cpp ciMethodData.hpp -ciMethodData.cpp ciUtilities.hpp -ciMethodData.cpp copy.hpp -ciMethodData.cpp deoptimization.hpp -ciMethodData.cpp resourceArea.hpp - -ciMethodData.hpp ciClassList.hpp -ciMethodData.hpp ciKlass.hpp -ciMethodData.hpp ciObject.hpp -ciMethodData.hpp ciUtilities.hpp -ciMethodData.hpp methodDataOop.hpp -ciMethodData.hpp oop.inline.hpp - -ciMethodKlass.cpp ciMethodKlass.hpp -ciMethodKlass.cpp ciUtilities.hpp - -ciMethodKlass.hpp ciKlass.hpp -ciMethodKlass.hpp ciSymbol.hpp - -ciMethodHandle.cpp ciClassList.hpp -ciMethodHandle.cpp ciInstance.hpp -ciMethodHandle.cpp ciMethodHandle.hpp -ciMethodHandle.cpp ciUtilities.hpp -ciMethodHandle.cpp methodHandles.hpp -ciMethodHandle.cpp methodHandleWalk.hpp - -ciMethodHandle.hpp methodHandles.hpp - -ciNullObject.cpp ciNullObject.hpp - -ciNullObject.hpp ciClassList.hpp -ciNullObject.hpp ciObject.hpp -ciNullObject.hpp ciUtilities.hpp - -ciObjArray.hpp ciArray.hpp -ciObjArray.hpp ciClassList.hpp -ciObjArray.hpp objArrayOop.hpp - -ciObjArray.cpp ciObjArray.hpp -ciObjArray.cpp ciNullObject.hpp -ciObjArray.cpp ciUtilities.hpp -ciObjArray.cpp objArrayOop.hpp - -ciObjArray.cpp ciObjArray.hpp -ciObjArray.cpp ciNullObject.hpp -ciObjArray.cpp ciUtilities.hpp -ciObjArray.cpp objArrayOop.hpp - -ciObjArrayKlass.cpp ciInstanceKlass.hpp -ciObjArrayKlass.cpp ciObjArrayKlass.hpp -ciObjArrayKlass.cpp ciObjArrayKlassKlass.hpp -ciObjArrayKlass.cpp ciSymbol.hpp -ciObjArrayKlass.cpp ciUtilities.hpp -ciObjArrayKlass.cpp objArrayKlass.hpp - -ciObjArrayKlass.hpp ciArrayKlass.hpp - -ciObjArrayKlassKlass.cpp ciObjArrayKlassKlass.hpp -ciObjArrayKlassKlass.cpp ciUtilities.hpp - -ciObjArrayKlassKlass.hpp ciArrayKlassKlass.hpp - -ciObject.cpp ciObject.hpp -ciObject.cpp ciUtilities.hpp -ciObject.cpp collectedHeap.inline.hpp -ciObject.cpp oop.inline2.hpp - -ciObject.hpp allocation.hpp -ciObject.hpp ciClassList.hpp -ciObject.hpp handles.hpp -ciObject.hpp jniHandles.hpp - -ciObjectFactory.cpp allocation.inline.hpp -ciObjectFactory.cpp ciCallSite.hpp -ciObjectFactory.cpp ciCPCache.hpp -ciObjectFactory.cpp ciInstance.hpp -ciObjectFactory.cpp ciInstanceKlass.hpp -ciObjectFactory.cpp ciInstanceKlassKlass.hpp -ciObjectFactory.cpp ciMethod.hpp -ciObjectFactory.cpp ciMethodData.hpp -ciObjectFactory.cpp ciMethodHandle.hpp -ciObjectFactory.cpp ciMethodKlass.hpp -ciObjectFactory.cpp ciNullObject.hpp -ciObjectFactory.cpp ciObjArray.hpp -ciObjectFactory.cpp ciObjArrayKlass.hpp -ciObjectFactory.cpp ciObjArrayKlassKlass.hpp -ciObjectFactory.cpp ciObjectFactory.hpp -ciObjectFactory.cpp ciSymbol.hpp -ciObjectFactory.cpp ciSymbolKlass.hpp -ciObjectFactory.cpp ciTypeArray.hpp -ciObjectFactory.cpp ciTypeArrayKlass.hpp -ciObjectFactory.cpp ciTypeArrayKlassKlass.hpp -ciObjectFactory.cpp ciUtilities.hpp -ciObjectFactory.cpp collectedHeap.inline.hpp -ciObjectFactory.cpp fieldType.hpp -ciObjectFactory.cpp oop.inline.hpp -ciObjectFactory.cpp oop.inline2.hpp -ciObjectFactory.cpp systemDictionary.hpp - -ciObjectFactory.hpp ciClassList.hpp -ciObjectFactory.hpp ciObject.hpp -ciObjectFactory.hpp growableArray.hpp - -ciSignature.cpp allocation.inline.hpp -ciSignature.cpp ciSignature.hpp -ciSignature.cpp ciUtilities.hpp -ciSignature.cpp oop.inline.hpp -ciSignature.cpp signature.hpp - -ciSignature.hpp ciClassList.hpp -ciSignature.hpp ciSymbol.hpp -ciSignature.hpp globalDefinitions.hpp -ciSignature.hpp growableArray.hpp - -ciStreams.cpp ciCallSite.hpp -ciStreams.cpp ciConstant.hpp -ciStreams.cpp ciCPCache.hpp -ciStreams.cpp ciField.hpp -ciStreams.cpp ciStreams.hpp -ciStreams.cpp ciUtilities.hpp - -ciStreams.hpp bytecode.hpp -ciStreams.hpp ciClassList.hpp -ciStreams.hpp ciExceptionHandler.hpp -ciStreams.hpp ciInstanceKlass.hpp -ciStreams.hpp ciMethod.hpp - -ciSymbol.cpp ciSymbol.hpp -ciSymbol.cpp ciUtilities.hpp -ciSymbol.cpp oopFactory.hpp - -ciSymbol.hpp ciObject.hpp -ciSymbol.hpp ciObjectFactory.hpp -ciSymbol.hpp symbolOop.hpp -ciSymbol.hpp vmSymbols.hpp - -ciSymbolKlass.cpp ciSymbolKlass.hpp -ciSymbolKlass.cpp ciUtilities.hpp - -ciSymbolKlass.hpp ciKlass.hpp -ciSymbolKlass.hpp ciSymbol.hpp - -ciType.cpp ciType.hpp -ciType.cpp ciUtilities.hpp -ciType.cpp oop.inline.hpp -ciType.cpp systemDictionary.hpp - -ciType.hpp ciObject.hpp -ciType.hpp klassOop.hpp - -ciTypeArray.cpp ciTypeArray.hpp -ciTypeArray.cpp ciUtilities.hpp - -ciTypeArray.hpp ciArray.hpp -ciTypeArray.hpp ciClassList.hpp -ciTypeArray.hpp typeArrayOop.hpp - -ciTypeArrayKlass.cpp ciTypeArrayKlass.hpp -ciTypeArrayKlass.cpp ciUtilities.hpp - -ciTypeArrayKlass.hpp ciArrayKlass.hpp - -ciTypeArrayKlassKlass.cpp ciTypeArrayKlassKlass.hpp -ciTypeArrayKlassKlass.cpp ciUtilities.hpp - -ciTypeArrayKlassKlass.hpp ciArrayKlassKlass.hpp - -ciUtilities.cpp ciUtilities.hpp - -ciUtilities.hpp ciEnv.hpp -ciUtilities.hpp interfaceSupport.hpp - -classFileError.cpp classFileParser.hpp -classFileError.cpp stackMapTable.hpp -classFileError.cpp verifier.hpp - -classFileParser.cpp allocation.hpp -classFileParser.cpp classFileParser.hpp -classFileParser.cpp classLoader.hpp -classFileParser.cpp classLoadingService.hpp -classFileParser.cpp constantPoolOop.hpp -classFileParser.cpp gcLocker.hpp -classFileParser.cpp instanceKlass.hpp -classFileParser.cpp javaCalls.hpp -classFileParser.cpp javaClasses.hpp -classFileParser.cpp jvmtiExport.hpp -classFileParser.cpp klass.inline.hpp -classFileParser.cpp klassOop.hpp -classFileParser.cpp klassVtable.hpp -classFileParser.cpp methodOop.hpp -classFileParser.cpp oopFactory.hpp -classFileParser.cpp perfData.hpp -classFileParser.cpp reflection.hpp -classFileParser.cpp signature.hpp -classFileParser.cpp symbolOop.hpp -classFileParser.cpp symbolTable.hpp -classFileParser.cpp systemDictionary.hpp -classFileParser.cpp threadService.hpp -classFileParser.cpp timer.hpp -classFileParser.cpp universe.inline.hpp -classFileParser.cpp verificationType.hpp -classFileParser.cpp verifier.hpp -classFileParser.cpp vmSymbols.hpp - -classFileParser.hpp accessFlags.hpp -classFileParser.hpp classFileStream.hpp -classFileParser.hpp handles.inline.hpp -classFileParser.hpp oop.inline.hpp -classFileParser.hpp resourceArea.hpp -classFileParser.hpp typeArrayOop.hpp - -classFileStream.cpp classFileStream.hpp -classFileStream.cpp vmSymbols.hpp - -classFileStream.hpp bytes_.hpp -classFileStream.hpp top.hpp - -classLoader.cpp allocation.inline.hpp -classLoader.cpp arguments.hpp -classLoader.cpp bytecodeStream.hpp -classLoader.cpp classFileParser.hpp -classLoader.cpp classFileStream.hpp -classLoader.cpp classLoader.hpp -classLoader.cpp collectedHeap.inline.hpp -classLoader.cpp compilationPolicy.hpp -classLoader.cpp compileBroker.hpp -classLoader.cpp constantPoolKlass.hpp -classLoader.cpp events.hpp -classLoader.cpp fprofiler.hpp -classLoader.cpp generation.hpp -classLoader.cpp handles.hpp -classLoader.cpp handles.inline.hpp -classLoader.cpp hashtable.hpp -classLoader.cpp hashtable.inline.hpp -classLoader.cpp hpi.hpp -classLoader.cpp hpi_.hpp -classLoader.cpp init.hpp -classLoader.cpp instanceKlass.hpp -classLoader.cpp instanceRefKlass.hpp -classLoader.cpp interfaceSupport.hpp -classLoader.cpp java.hpp -classLoader.cpp javaCalls.hpp -classLoader.cpp javaClasses.hpp -classLoader.cpp jvm_misc.hpp -classLoader.cpp management.hpp -classLoader.cpp oop.inline.hpp -classLoader.cpp oopFactory.hpp -classLoader.cpp oopMapCache.hpp -classLoader.cpp os_.inline.hpp -classLoader.cpp symbolOop.hpp -classLoader.cpp systemDictionary.hpp -classLoader.cpp threadCritical.hpp -classLoader.cpp threadService.hpp -classLoader.cpp timer.hpp -classLoader.cpp universe.inline.hpp -classLoader.cpp vmSymbols.hpp - -classLoader.hpp classFileParser.hpp -classLoader.hpp perfData.hpp - -classLoadingService.cpp allocation.hpp -classLoadingService.cpp classLoadingService.hpp -classLoadingService.cpp dtrace.hpp -classLoadingService.cpp memoryService.hpp -classLoadingService.cpp mutexLocker.hpp -classLoadingService.cpp oop.inline.hpp -classLoadingService.cpp systemDictionary.hpp -classLoadingService.cpp universe.hpp - -classLoadingService.hpp growableArray.hpp -classLoadingService.hpp handles.hpp -classLoadingService.hpp perfData.hpp - -classify.cpp classify.hpp -classify.cpp systemDictionary.hpp - -classify.hpp oop.inline.hpp - -codeBlob.cpp allocation.inline.hpp -codeBlob.cpp bytecode.hpp -codeBlob.cpp codeBlob.hpp -codeBlob.cpp codeCache.hpp -codeBlob.cpp disassembler.hpp -codeBlob.cpp forte.hpp -codeBlob.cpp handles.inline.hpp -codeBlob.cpp heap.hpp -codeBlob.cpp interfaceSupport.hpp -codeBlob.cpp memoryService.hpp -codeBlob.cpp mutexLocker.hpp -codeBlob.cpp nativeInst_.hpp -codeBlob.cpp oop.inline.hpp -codeBlob.cpp relocInfo.hpp -codeBlob.cpp safepoint.hpp -codeBlob.cpp sharedRuntime.hpp -codeBlob.cpp vframe.hpp - -codeBlob.hpp codeBuffer.hpp -codeBlob.hpp frame.hpp -codeBlob.hpp handles.hpp -codeBlob.hpp oopMap.hpp - -codeBuffer.cpp codeBuffer.hpp -codeBuffer.cpp copy.hpp -codeBuffer.cpp disassembler.hpp - -codeBuffer.hpp assembler.hpp -codeBuffer.hpp oopRecorder.hpp -codeBuffer.hpp relocInfo.hpp - -codeBuffer_.hpp generate_platform_dependent_include - -codeCache.cpp allocation.inline.hpp -codeCache.cpp codeBlob.hpp -codeCache.cpp codeCache.hpp -codeCache.cpp dependencies.hpp -codeCache.cpp gcLocker.hpp -codeCache.cpp handles.inline.hpp -codeCache.cpp icache.hpp -codeCache.cpp iterator.hpp -codeCache.cpp java.hpp -codeCache.cpp markSweep.hpp -codeCache.cpp memoryService.hpp -codeCache.cpp methodOop.hpp -codeCache.cpp mutexLocker.hpp -codeCache.cpp nmethod.hpp -codeCache.cpp objArrayOop.hpp -codeCache.cpp oop.inline.hpp -codeCache.cpp pcDesc.hpp -codeCache.cpp resourceArea.hpp -codeCache.cpp xmlstream.hpp - -codeCache.hpp allocation.hpp -codeCache.hpp codeBlob.hpp -codeCache.hpp heap.hpp -codeCache.hpp instanceKlass.hpp -codeCache.hpp oopsHierarchy.hpp - -collectorPolicy.cpp adaptiveSizePolicy.hpp -collectorPolicy.cpp arguments.hpp -collectorPolicy.cpp cardTableRS.hpp -collectorPolicy.cpp collectorPolicy.hpp -collectorPolicy.cpp gcLocker.inline.hpp -collectorPolicy.cpp genCollectedHeap.hpp -collectorPolicy.cpp gcPolicyCounters.hpp -collectorPolicy.cpp generationSpec.hpp -collectorPolicy.cpp globals_extension.hpp -collectorPolicy.cpp handles.inline.hpp -collectorPolicy.cpp java.hpp -collectorPolicy.cpp space.hpp -collectorPolicy.cpp thread_.inline.hpp -collectorPolicy.cpp universe.hpp -collectorPolicy.cpp vmGCOperations.hpp -collectorPolicy.cpp vmThread.hpp - -collectorPolicy.hpp barrierSet.hpp -collectorPolicy.hpp genRemSet.hpp -collectorPolicy.hpp permGen.hpp - -compactPermGen.hpp generation.hpp -compactPermGen.hpp permGen.hpp - -compactingPermGenGen.cpp compactingPermGenGen.hpp -compactingPermGenGen.cpp filemap.hpp -compactingPermGenGen.cpp genOopClosures.inline.hpp -compactingPermGenGen.cpp generation.inline.hpp -compactingPermGenGen.cpp generationSpec.hpp -compactingPermGenGen.cpp java.hpp -compactingPermGenGen.cpp oop.inline.hpp -compactingPermGenGen.cpp symbolTable.hpp -compactingPermGenGen.cpp systemDictionary.hpp - -compactingPermGenGen.hpp generationCounters.hpp -compactingPermGenGen.hpp space.hpp - -compilationPolicy.cpp compilationPolicy.hpp -compilationPolicy.cpp compiledIC.hpp -compilationPolicy.cpp compilerOracle.hpp -compilationPolicy.cpp events.hpp -compilationPolicy.cpp frame.hpp -compilationPolicy.cpp globalDefinitions.hpp -compilationPolicy.cpp handles.inline.hpp -compilationPolicy.cpp interpreter.hpp -compilationPolicy.cpp methodDataOop.hpp -compilationPolicy.cpp methodOop.hpp -compilationPolicy.cpp nativeLookup.hpp -compilationPolicy.cpp nmethod.hpp -compilationPolicy.cpp oop.inline.hpp -compilationPolicy.cpp rframe.hpp -compilationPolicy.cpp scopeDesc.hpp -compilationPolicy.cpp simpleThresholdPolicy.hpp -compilationPolicy.cpp stubRoutines.hpp -compilationPolicy.cpp thread.hpp -compilationPolicy.cpp timer.hpp -compilationPolicy.cpp vframe.hpp -compilationPolicy.cpp vm_operations.hpp - -compilationPolicy.hpp allocation.hpp -compilationPolicy.hpp compileBroker.hpp -compilationPolicy.hpp growableArray.hpp -compilationPolicy.hpp nmethod.hpp -compilationPolicy.hpp vm_operations.hpp - -compileBroker.cpp allocation.inline.hpp -compileBroker.cpp arguments.hpp -compileBroker.cpp codeCache.hpp -compileBroker.cpp compilationPolicy.hpp -compileBroker.cpp compileBroker.hpp -compileBroker.cpp compileLog.hpp -compileBroker.cpp compilerOracle.hpp -compileBroker.cpp dtrace.hpp -compileBroker.cpp init.hpp -compileBroker.cpp interfaceSupport.hpp -compileBroker.cpp javaCalls.hpp -compileBroker.cpp linkResolver.hpp -compileBroker.cpp methodDataOop.hpp -compileBroker.cpp methodOop.hpp -compileBroker.cpp nativeLookup.hpp -compileBroker.cpp oop.inline.hpp -compileBroker.cpp os.hpp -compileBroker.cpp sharedRuntime.hpp -compileBroker.cpp sweeper.hpp -compileBroker.cpp systemDictionary.hpp -compileBroker.cpp vmSymbols.hpp - -compileBroker.hpp abstractCompiler.hpp -compileBroker.hpp compilerInterface.hpp -compileBroker.hpp perfData.hpp - -compileLog.cpp allocation.inline.hpp -compileLog.cpp ciMethod.hpp -compileLog.cpp compileLog.hpp -compileLog.cpp methodOop.hpp -compileLog.cpp mutexLocker.hpp -compileLog.cpp os.hpp - -compileLog.hpp xmlstream.hpp - -compiledIC.cpp codeCache.hpp -compiledIC.cpp compiledIC.hpp -compiledIC.cpp events.hpp -compiledIC.cpp icBuffer.hpp -compiledIC.cpp icache.hpp -compiledIC.cpp interpreter.hpp -compiledIC.cpp linkResolver.hpp -compiledIC.cpp methodOop.hpp -compiledIC.cpp nmethod.hpp -compiledIC.cpp oop.inline.hpp -compiledIC.cpp oopFactory.hpp -compiledIC.cpp sharedRuntime.hpp -compiledIC.cpp stubRoutines.hpp -compiledIC.cpp symbolOop.hpp -compiledIC.cpp systemDictionary.hpp -compiledIC.cpp vtableStubs.hpp - -compiledIC.hpp compiledICHolderKlass.hpp -compiledIC.hpp compiledICHolderOop.hpp -compiledIC.hpp klassOop.hpp -compiledIC.hpp linkResolver.hpp -compiledIC.hpp nativeInst_.hpp - -compiledICHolderKlass.cpp collectedHeap.hpp -compiledICHolderKlass.cpp collectedHeap.inline.hpp -compiledICHolderKlass.cpp compiledICHolderKlass.hpp -compiledICHolderKlass.cpp handles.inline.hpp -compiledICHolderKlass.cpp javaClasses.hpp -compiledICHolderKlass.cpp markSweep.inline.hpp -compiledICHolderKlass.cpp oop.inline.hpp -compiledICHolderKlass.cpp oop.inline2.hpp -compiledICHolderKlass.cpp permGen.hpp -compiledICHolderKlass.cpp universe.inline.hpp - -compiledICHolderKlass.hpp compiledICHolderOop.hpp -compiledICHolderKlass.hpp klass.hpp -compiledICHolderKlass.hpp methodOop.hpp - -compiledICHolderOop.cpp compiledICHolderOop.hpp - -compiledICHolderOop.hpp oop.hpp - -compilerInterface.hpp ciArray.hpp -compilerInterface.hpp ciArrayKlass.hpp -compilerInterface.hpp ciArrayKlassKlass.hpp -compilerInterface.hpp ciCallProfile.hpp -compilerInterface.hpp ciConstant.hpp -compilerInterface.hpp ciEnv.hpp -compilerInterface.hpp ciExceptionHandler.hpp -compilerInterface.hpp ciField.hpp -compilerInterface.hpp ciFlags.hpp -compilerInterface.hpp ciInstance.hpp -compilerInterface.hpp ciInstanceKlass.hpp -compilerInterface.hpp ciInstanceKlassKlass.hpp -compilerInterface.hpp ciKlass.hpp -compilerInterface.hpp ciKlassKlass.hpp -compilerInterface.hpp ciMethod.hpp -compilerInterface.hpp ciMethodKlass.hpp -compilerInterface.hpp ciNullObject.hpp -compilerInterface.hpp ciObjArray.hpp -compilerInterface.hpp ciObjArrayKlass.hpp -compilerInterface.hpp ciObjArrayKlassKlass.hpp -compilerInterface.hpp ciObject.hpp -compilerInterface.hpp ciSignature.hpp -compilerInterface.hpp ciStreams.hpp -compilerInterface.hpp ciSymbol.hpp -compilerInterface.hpp ciSymbolKlass.hpp -compilerInterface.hpp ciTypeArray.hpp -compilerInterface.hpp ciTypeArrayKlass.hpp -compilerInterface.hpp ciTypeArrayKlassKlass.hpp - -compilerOracle.cpp allocation.inline.hpp -compilerOracle.cpp compilerOracle.hpp -compilerOracle.cpp handles.inline.hpp -compilerOracle.cpp jniHandles.hpp -compilerOracle.cpp klass.hpp -compilerOracle.cpp methodOop.hpp -compilerOracle.cpp oop.inline.hpp -compilerOracle.cpp oopFactory.hpp -compilerOracle.cpp resourceArea.hpp -compilerOracle.cpp symbolOop.hpp - -compilerOracle.hpp allocation.hpp -compilerOracle.hpp oopsHierarchy.hpp - -compressedStream.cpp compressedStream.hpp -compressedStream.cpp ostream.hpp - -compressedStream.hpp allocation.hpp - -constMethodKlass.cpp constMethodKlass.hpp -constMethodKlass.cpp constMethodOop.hpp -constMethodKlass.cpp gcLocker.hpp -constMethodKlass.cpp handles.inline.hpp -constMethodKlass.cpp interpreter.hpp -constMethodKlass.cpp markSweep.inline.hpp -constMethodKlass.cpp oop.inline.hpp -constMethodKlass.cpp oop.inline2.hpp -constMethodKlass.cpp resourceArea.hpp - -constMethodKlass.hpp oop.hpp -constMethodKlass.hpp klass.hpp -constMethodKlass.hpp orderAccess.hpp - -constMethodOop.cpp constMethodOop.hpp -constMethodOop.cpp methodOop.hpp - -constMethodOop.hpp oop.hpp -constMethodOop.hpp typeArrayOop.hpp - -constantPoolKlass.cpp collectedHeap.inline.hpp -constantPoolKlass.cpp constantPoolKlass.hpp -constantPoolKlass.cpp constantPoolOop.hpp -constantPoolKlass.cpp handles.inline.hpp -constantPoolKlass.cpp javaClasses.hpp -constantPoolKlass.cpp markSweep.inline.hpp -constantPoolKlass.cpp oop.inline.hpp -constantPoolKlass.cpp oop.inline2.hpp -constantPoolKlass.cpp oopFactory.hpp -constantPoolKlass.cpp permGen.hpp -constantPoolKlass.cpp symbolOop.hpp -constantPoolKlass.cpp thread_.inline.hpp -constantPoolKlass.cpp universe.inline.hpp - -constantPoolKlass.hpp arrayKlass.hpp -constantPoolKlass.hpp instanceKlass.hpp - -constantPoolOop.cpp constantPoolOop.hpp -constantPoolOop.cpp fieldType.hpp -constantPoolOop.cpp init.hpp -constantPoolOop.cpp instanceKlass.hpp -constantPoolOop.cpp javaClasses.hpp -constantPoolOop.cpp linkResolver.hpp -constantPoolOop.cpp objArrayKlass.hpp -constantPoolOop.cpp oop.inline.hpp -constantPoolOop.cpp oopFactory.hpp -constantPoolOop.cpp signature.hpp -constantPoolOop.cpp symbolTable.hpp -constantPoolOop.cpp systemDictionary.hpp -constantPoolOop.cpp universe.inline.hpp -constantPoolOop.cpp vframe.hpp -constantPoolOop.cpp vmSymbols.hpp - -constantPoolOop.hpp arrayOop.hpp -constantPoolOop.hpp bytes_.hpp -constantPoolOop.hpp constantTag.hpp -constantPoolOop.hpp cpCacheOop.hpp -constantPoolOop.hpp typeArrayOop.hpp - -constantTag.cpp constantTag.hpp - -constantTag.hpp jvm.h -constantTag.hpp top.hpp - -copy.cpp copy.hpp -copy.cpp sharedRuntime.hpp - -copy.hpp stubRoutines.hpp - -copy_.hpp generate_platform_dependent_include - -copy_.inline.hpp generate_platform_dependent_include - -cpCacheKlass.cpp bytecodes.hpp -cpCacheKlass.cpp collectedHeap.hpp -cpCacheKlass.cpp constantPoolOop.hpp -cpCacheKlass.cpp cpCacheKlass.hpp -cpCacheKlass.cpp genOopClosures.inline.hpp -cpCacheKlass.cpp handles.inline.hpp -cpCacheKlass.cpp javaClasses.hpp -cpCacheKlass.cpp markSweep.inline.hpp -cpCacheKlass.cpp oop.inline.hpp -cpCacheKlass.cpp permGen.hpp - -cpCacheKlass.hpp arrayKlass.hpp -cpCacheKlass.hpp cpCacheOop.hpp -cpCacheKlass.hpp instanceKlass.hpp - -cpCacheOop.cpp cpCacheOop.hpp -cpCacheOop.cpp handles.inline.hpp -cpCacheOop.cpp interpreter.hpp -cpCacheOop.cpp jvmtiRedefineClassesTrace.hpp -cpCacheOop.cpp markSweep.inline.hpp -cpCacheOop.cpp objArrayOop.hpp -cpCacheOop.cpp oop.inline.hpp -cpCacheOop.cpp rewriter.hpp -cpCacheOop.cpp universe.inline.hpp - -cpCacheOop.hpp allocation.hpp -cpCacheOop.hpp array.hpp -cpCacheOop.hpp arrayOop.hpp -cpCacheOop.hpp bytecodes.hpp - -cppInterpreter.cpp bytecodeInterpreter.hpp -cppInterpreter.cpp interpreter.hpp -cppInterpreter.cpp interpreterGenerator.hpp -cppInterpreter.cpp interpreterRuntime.hpp - -cppInterpreter.hpp abstractInterpreter.hpp - -cppInterpreter_.cpp arguments.hpp -cppInterpreter_.cpp arrayOop.hpp -cppInterpreter_.cpp assembler.hpp -cppInterpreter_.cpp bytecodeHistogram.hpp -cppInterpreter_.cpp debug.hpp -cppInterpreter_.cpp deoptimization.hpp -cppInterpreter_.cpp frame.inline.hpp -cppInterpreter_.cpp interfaceSupport.hpp -cppInterpreter_.cpp interpreterRuntime.hpp -cppInterpreter_.cpp interpreter.hpp -cppInterpreter_.cpp interpreterGenerator.hpp -cppInterpreter_.cpp jvmtiExport.hpp -cppInterpreter_.cpp jvmtiThreadState.hpp -cppInterpreter_.cpp methodDataOop.hpp -cppInterpreter_.cpp methodOop.hpp -cppInterpreter_.cpp oop.inline.hpp -cppInterpreter_.cpp sharedRuntime.hpp -cppInterpreter_.cpp stubRoutines.hpp -cppInterpreter_.cpp synchronizer.hpp -cppInterpreter_.cpp cppInterpreter.hpp -cppInterpreter_.cpp timer.hpp -cppInterpreter_.cpp vframeArray.hpp - -cppInterpreter_.hpp generate_platform_dependent_include - -cppInterpreterGenerator_.hpp generate_platform_dependent_include - -debug.cpp arguments.hpp -debug.cpp bytecodeHistogram.hpp -debug.cpp codeCache.hpp -debug.cpp collectedHeap.hpp -debug.cpp compileBroker.hpp -debug.cpp defaultStream.hpp -debug.cpp disassembler.hpp -debug.cpp events.hpp -debug.cpp frame.hpp -debug.cpp heapDumper.hpp -debug.cpp icBuffer.hpp -debug.cpp interpreter.hpp -debug.cpp java.hpp -debug.cpp markSweep.hpp -debug.cpp nmethod.hpp -debug.cpp oop.inline.hpp -debug.cpp os_.inline.hpp -debug.cpp privilegedStack.hpp -debug.cpp resourceArea.hpp -debug.cpp sharedRuntime.hpp -debug.cpp stubCodeGenerator.hpp -debug.cpp stubRoutines.hpp -debug.cpp systemDictionary.hpp -debug.cpp thread_.inline.hpp -debug.cpp top.hpp -debug.cpp universe.hpp -debug.cpp vframe.hpp -debug.cpp vmError.hpp -debug.cpp vtableStubs.hpp - -debug.hpp globalDefinitions.hpp - -debugInfo.cpp debugInfo.hpp -debugInfo.cpp debugInfoRec.hpp -debugInfo.cpp handles.inline.hpp -debugInfo.cpp nmethod.hpp - -debugInfo.hpp compressedStream.hpp -debugInfo.hpp growableArray.hpp -debugInfo.hpp location.hpp -debugInfo.hpp nmethod.hpp -debugInfo.hpp oopRecorder.hpp -debugInfo.hpp stackValue.hpp - -debugInfoRec.cpp debugInfoRec.hpp -debugInfoRec.cpp jvmtiExport.hpp -debugInfoRec.cpp scopeDesc.hpp - -debugInfoRec.hpp ciClassList.hpp -debugInfoRec.hpp ciInstanceKlass.hpp -debugInfoRec.hpp ciMethod.hpp -debugInfoRec.hpp debugInfo.hpp -debugInfoRec.hpp growableArray.hpp -debugInfoRec.hpp location.hpp -debugInfoRec.hpp oop.hpp -debugInfoRec.hpp oopMap.hpp -debugInfoRec.hpp pcDesc.hpp - -debug_.cpp codeCache.hpp -debug_.cpp debug.hpp -debug_.cpp frame.hpp -debug_.cpp init.hpp -debug_.cpp nmethod.hpp -debug_.cpp os.hpp -debug_.cpp top.hpp - -defNewGeneration.cpp collectorCounters.hpp -defNewGeneration.cpp copy.hpp -defNewGeneration.cpp defNewGeneration.inline.hpp -defNewGeneration.cpp gcLocker.inline.hpp -defNewGeneration.cpp gcPolicyCounters.hpp -defNewGeneration.cpp genCollectedHeap.hpp -defNewGeneration.cpp genOopClosures.inline.hpp -defNewGeneration.cpp generationSpec.hpp -defNewGeneration.cpp instanceRefKlass.hpp -defNewGeneration.cpp iterator.hpp -defNewGeneration.cpp java.hpp -defNewGeneration.cpp oop.inline.hpp -defNewGeneration.cpp referencePolicy.hpp -defNewGeneration.cpp space.inline.hpp -defNewGeneration.cpp spaceDecorator.hpp -defNewGeneration.cpp stack.inline.hpp -defNewGeneration.cpp thread_.inline.hpp - -defNewGeneration.hpp ageTable.hpp -defNewGeneration.hpp cSpaceCounters.hpp -defNewGeneration.hpp generation.inline.hpp -defNewGeneration.hpp generationCounters.hpp -defNewGeneration.hpp stack.hpp - -defNewGeneration.inline.hpp cardTableRS.hpp -defNewGeneration.inline.hpp defNewGeneration.hpp -defNewGeneration.inline.hpp space.hpp - -defaultStream.hpp xmlstream.hpp - -deoptimization.cpp allocation.inline.hpp -deoptimization.cpp biasedLocking.hpp -deoptimization.cpp bytecode.hpp -deoptimization.cpp compilationPolicy.hpp -deoptimization.cpp debugInfoRec.hpp -deoptimization.cpp deoptimization.hpp -deoptimization.cpp events.hpp -deoptimization.cpp interfaceSupport.hpp -deoptimization.cpp interpreter.hpp -deoptimization.cpp jvmtiThreadState.hpp -deoptimization.cpp methodOop.hpp -deoptimization.cpp nmethod.hpp -deoptimization.cpp oop.inline.hpp -deoptimization.cpp oopFactory.hpp -deoptimization.cpp oopMapCache.hpp -deoptimization.cpp pcDesc.hpp -deoptimization.cpp resourceArea.hpp -deoptimization.cpp scopeDesc.hpp -deoptimization.cpp sharedRuntime.hpp -deoptimization.cpp signature.hpp -deoptimization.cpp stubRoutines.hpp -deoptimization.cpp systemDictionary.hpp -deoptimization.cpp thread.hpp -deoptimization.cpp vframe.hpp -deoptimization.cpp vframeArray.hpp -deoptimization.cpp vframe_hp.hpp -deoptimization.cpp vmreg_.inline.hpp -deoptimization.cpp xmlstream.hpp - -deoptimization.hpp allocation.hpp -deoptimization.hpp frame.inline.hpp - -depChecker_.cpp depChecker_.hpp -depChecker_.cpp disassembler.hpp -depChecker_.cpp hpi.hpp - -dependencies.cpp ciArrayKlass.hpp -dependencies.cpp ciEnv.hpp -dependencies.cpp ciKlass.hpp -dependencies.cpp ciMethod.hpp -dependencies.cpp compileLog.hpp -dependencies.cpp copy.hpp -dependencies.cpp dependencies.hpp -dependencies.cpp handles.inline.hpp -dependencies.cpp oop.inline.hpp - -dependencies.hpp ciKlass.hpp -dependencies.hpp compressedStream.hpp -dependencies.hpp growableArray.hpp -dependencies.hpp nmethod.hpp - -dictionary.cpp classLoadingService.hpp -dictionary.cpp dictionary.hpp -dictionary.cpp hashtable.inline.hpp -dictionary.cpp jvmtiRedefineClassesTrace.hpp -dictionary.cpp oop.inline.hpp -dictionary.cpp systemDictionary.hpp - -dictionary.hpp hashtable.hpp -dictionary.hpp instanceKlass.hpp -dictionary.hpp oop.hpp -dictionary.hpp systemDictionary.hpp - -disassembler_.hpp generate_platform_dependent_include - -disassembler.cpp cardTableModRefBS.hpp -disassembler.cpp codeCache.hpp -disassembler.cpp collectedHeap.hpp -disassembler.cpp depChecker_.hpp -disassembler.cpp disassembler.hpp -disassembler.cpp fprofiler.hpp -disassembler.cpp handles.inline.hpp -disassembler.cpp hpi.hpp -disassembler.cpp javaClasses.hpp -disassembler.cpp stubCodeGenerator.hpp -disassembler.cpp stubRoutines.hpp - -disassembler.hpp globals.hpp -disassembler.hpp os_.inline.hpp - -dtraceAttacher.cpp codeCache.hpp -dtraceAttacher.cpp deoptimization.hpp -dtraceAttacher.cpp dtraceAttacher.hpp -dtraceAttacher.cpp resourceArea.hpp -dtraceAttacher.cpp vmThread.hpp -dtraceAttacher.cpp vm_operations.hpp - -dtraceJSDT.cpp allocation.hpp -dtraceJSDT.cpp codeBlob.hpp -dtraceJSDT.cpp dtraceJSDT.hpp -dtraceJSDT.cpp exceptions.hpp -dtraceJSDT.cpp globalDefinitions.hpp -dtraceJSDT.cpp javaClasses.hpp -dtraceJSDT.cpp jniHandles.hpp -dtraceJSDT.cpp jvm.h -dtraceJSDT.cpp os.hpp -dtraceJSDT.cpp utf8.hpp - -dtraceJSDT.hpp nativeInst_.hpp -dtraceJSDT.hpp nmethod.hpp - -dtraceJSDT_.cpp allocation.hpp -dtraceJSDT_.cpp codeBlob.hpp -dtraceJSDT_.cpp dtraceJSDT.hpp -dtraceJSDT_.cpp globalDefinitions.hpp -dtraceJSDT_.cpp javaClasses.hpp -dtraceJSDT_.cpp jniHandles.hpp -dtraceJSDT_.cpp jvm.h -dtraceJSDT_.cpp os.hpp -dtraceJSDT_.cpp signature.hpp - -// dump is jck optional, put cpp deps in includeDB_features - -events.cpp allocation.inline.hpp -events.cpp events.hpp -events.cpp mutexLocker.hpp -events.cpp osThread.hpp -events.cpp threadLocalStorage.hpp -events.cpp thread_.inline.hpp -events.cpp timer.hpp - -events.hpp allocation.hpp -events.hpp top.hpp - -evmCompat.cpp debug.hpp - -exceptionHandlerTable.cpp allocation.inline.hpp -exceptionHandlerTable.cpp exceptionHandlerTable.hpp -exceptionHandlerTable.cpp nmethod.hpp - -exceptionHandlerTable.hpp allocation.hpp -exceptionHandlerTable.hpp methodOop.hpp - -exceptions.cpp compileBroker.hpp -exceptions.cpp events.hpp -exceptions.cpp exceptions.hpp -exceptions.cpp init.hpp -exceptions.cpp java.hpp -exceptions.cpp javaCalls.hpp -exceptions.cpp oop.inline.hpp -exceptions.cpp systemDictionary.hpp -exceptions.cpp threadCritical.hpp -exceptions.cpp thread_.inline.hpp -exceptions.cpp vmSymbols.hpp - -exceptions.hpp allocation.hpp -exceptions.hpp oopsHierarchy.hpp -exceptions.hpp sizes.hpp - -fieldDescriptor.cpp fieldDescriptor.hpp -fieldDescriptor.cpp handles.inline.hpp -fieldDescriptor.cpp instanceKlass.hpp -fieldDescriptor.cpp resourceArea.hpp -fieldDescriptor.cpp signature.hpp -fieldDescriptor.cpp systemDictionary.hpp -fieldDescriptor.cpp universe.inline.hpp -fieldDescriptor.cpp vmSymbols.hpp - -fieldDescriptor.hpp accessFlags.hpp -fieldDescriptor.hpp constantPoolOop.hpp -fieldDescriptor.hpp constantTag.hpp -fieldDescriptor.hpp fieldType.hpp -fieldDescriptor.hpp klassOop.hpp -fieldDescriptor.hpp oop.inline.hpp -fieldDescriptor.hpp symbolOop.hpp - -fieldType.cpp fieldType.hpp -fieldType.cpp oop.inline.hpp -fieldType.cpp oopFactory.hpp -fieldType.cpp signature.hpp -fieldType.cpp systemDictionary.hpp -fieldType.cpp typeArrayKlass.hpp - -fieldType.hpp allocation.hpp -fieldType.hpp symbolOop.hpp - -filemap.cpp arguments.hpp -filemap.cpp classLoader.hpp -filemap.cpp defaultStream.hpp -filemap.cpp filemap.hpp -filemap.cpp hpi_.hpp -filemap.cpp java.hpp -filemap.cpp os.hpp -filemap.cpp symbolTable.hpp - -filemap.hpp compactingPermGenGen.hpp -filemap.hpp space.hpp - -// forte is jck optional, put cpp deps in includeDB_features -// fprofiler is jck optional, put cpp deps in includeDB_features - -fprofiler.hpp thread_.inline.hpp -fprofiler.hpp timer.hpp - -frame.cpp collectedHeap.inline.hpp -frame.cpp frame.inline.hpp -frame.cpp handles.inline.hpp -frame.cpp interpreter.hpp -frame.cpp javaCalls.hpp -frame.cpp markOop.hpp -frame.cpp methodDataOop.hpp -frame.cpp methodOop.hpp -frame.cpp monitorChunk.hpp -frame.cpp nativeInst_.hpp -frame.cpp oop.inline.hpp -frame.cpp oop.inline2.hpp -frame.cpp oopMapCache.hpp -frame.cpp resourceArea.hpp -frame.cpp sharedRuntime.hpp -frame.cpp signature.hpp -frame.cpp stubCodeGenerator.hpp -frame.cpp stubRoutines.hpp -frame.cpp universe.inline.hpp - -frame.hpp assembler.hpp -frame.hpp basicLock.hpp -frame.hpp methodOop.hpp -frame.hpp monitorChunk.hpp -frame.hpp registerMap.hpp -frame.hpp top.hpp - -frame.inline.hpp bytecodeInterpreter.hpp -frame.inline.hpp bytecodeInterpreter.inline.hpp -frame.inline.hpp frame.hpp -frame.inline.hpp interpreter.hpp -frame.inline.hpp jniTypes_.hpp -frame.inline.hpp methodOop.hpp -frame.inline.hpp signature.hpp - -frame_.cpp frame.inline.hpp -frame_.cpp handles.inline.hpp -frame_.cpp interpreter.hpp -frame_.cpp javaCalls.hpp -frame_.cpp markOop.hpp -frame_.cpp methodOop.hpp -frame_.cpp monitorChunk.hpp -frame_.cpp oop.inline.hpp -frame_.cpp resourceArea.hpp -frame_.cpp signature.hpp -frame_.cpp stubCodeGenerator.hpp -frame_.cpp stubRoutines.hpp -frame_.cpp vmreg_.inline.hpp - -frame_.hpp generate_platform_dependent_include -frame_.hpp synchronizer.hpp -frame_.hpp top.hpp - -frame_.inline.hpp generate_platform_dependent_include - -gcLocker.cpp gcLocker.inline.hpp -gcLocker.cpp sharedHeap.hpp -gcLocker.cpp resourceArea.hpp - -gcLocker.hpp collectedHeap.hpp -gcLocker.hpp genCollectedHeap.hpp -gcLocker.hpp oop.hpp -gcLocker.hpp os_.inline.hpp -gcLocker.hpp thread_.inline.hpp -gcLocker.hpp universe.hpp - -gcLocker.inline.hpp gcLocker.hpp - -genCollectedHeap.cpp aprofiler.hpp -genCollectedHeap.cpp biasedLocking.hpp -genCollectedHeap.cpp collectedHeap.inline.hpp -genCollectedHeap.cpp collectorCounters.hpp -genCollectedHeap.cpp compactPermGen.hpp -genCollectedHeap.cpp filemap.hpp -genCollectedHeap.cpp fprofiler.hpp -genCollectedHeap.cpp gcLocker.inline.hpp -genCollectedHeap.cpp genCollectedHeap.hpp -genCollectedHeap.cpp genOopClosures.inline.hpp -genCollectedHeap.cpp generation.inline.hpp -genCollectedHeap.cpp generationSpec.hpp -genCollectedHeap.cpp handles.hpp -genCollectedHeap.cpp handles.inline.hpp -genCollectedHeap.cpp icBuffer.hpp -genCollectedHeap.cpp java.hpp -genCollectedHeap.cpp memoryService.hpp -genCollectedHeap.cpp oop.inline.hpp -genCollectedHeap.cpp oop.inline2.hpp -genCollectedHeap.cpp permGen.hpp -genCollectedHeap.cpp resourceArea.hpp -genCollectedHeap.cpp sharedHeap.hpp -genCollectedHeap.cpp space.hpp -genCollectedHeap.cpp symbolTable.hpp -genCollectedHeap.cpp systemDictionary.hpp -genCollectedHeap.cpp vmError.hpp -genCollectedHeap.cpp vmGCOperations.hpp -genCollectedHeap.cpp vmSymbols.hpp -genCollectedHeap.cpp vmThread.hpp -genCollectedHeap.cpp workgroup.hpp - -genCollectedHeap.hpp adaptiveSizePolicy.hpp -genCollectedHeap.hpp collectorPolicy.hpp -genCollectedHeap.hpp generation.hpp -genCollectedHeap.hpp sharedHeap.hpp - -genMarkSweep.cpp codeCache.hpp -genMarkSweep.cpp collectedHeap.inline.hpp -genMarkSweep.cpp copy.hpp -genMarkSweep.cpp events.hpp -genMarkSweep.cpp fprofiler.hpp -genMarkSweep.cpp genCollectedHeap.hpp -genMarkSweep.cpp genMarkSweep.hpp -genMarkSweep.cpp genOopClosures.inline.hpp -genMarkSweep.cpp generation.inline.hpp -genMarkSweep.cpp handles.inline.hpp -genMarkSweep.cpp icBuffer.hpp -genMarkSweep.cpp instanceRefKlass.hpp -genMarkSweep.cpp javaClasses.hpp -genMarkSweep.cpp jvmtiExport.hpp -genMarkSweep.cpp modRefBarrierSet.hpp -genMarkSweep.cpp oop.inline.hpp -genMarkSweep.cpp referencePolicy.hpp -genMarkSweep.cpp space.hpp -genMarkSweep.cpp symbolTable.hpp -genMarkSweep.cpp synchronizer.hpp -genMarkSweep.cpp systemDictionary.hpp -genMarkSweep.cpp thread_.inline.hpp -genMarkSweep.cpp vmSymbols.hpp -genMarkSweep.cpp vmThread.hpp - -genMarkSweep.hpp markSweep.hpp - -genOopClosures.hpp iterator.hpp -genOopClosures.hpp oop.hpp - -genOopClosures.inline.hpp cardTableRS.hpp -genOopClosures.inline.hpp defNewGeneration.hpp -genOopClosures.inline.hpp genCollectedHeap.hpp -genOopClosures.inline.hpp genOopClosures.hpp -genOopClosures.inline.hpp genRemSet.hpp -genOopClosures.inline.hpp generation.hpp -genOopClosures.inline.hpp sharedHeap.hpp -genOopClosures.inline.hpp space.hpp - -genRemSet.cpp cardTableRS.hpp -genRemSet.cpp genRemSet.hpp - -genRemSet.hpp oop.hpp - -generateOopMap.cpp bitMap.inline.hpp -generateOopMap.cpp bytecodeStream.hpp -generateOopMap.cpp generateOopMap.hpp -generateOopMap.cpp handles.inline.hpp -generateOopMap.cpp java.hpp -generateOopMap.cpp oop.inline.hpp -generateOopMap.cpp relocator.hpp -generateOopMap.cpp symbolOop.hpp - -generateOopMap.hpp allocation.inline.hpp -generateOopMap.hpp bytecodeStream.hpp -generateOopMap.hpp methodOop.hpp -generateOopMap.hpp oopsHierarchy.hpp -generateOopMap.hpp signature.hpp -generateOopMap.hpp universe.inline.hpp - -generation.cpp allocation.inline.hpp -generation.cpp blockOffsetTable.inline.hpp -generation.cpp cardTableRS.hpp -generation.cpp collectedHeap.inline.hpp -generation.cpp copy.hpp -generation.cpp events.hpp -generation.cpp gcLocker.inline.hpp -generation.cpp genCollectedHeap.hpp -generation.cpp genMarkSweep.hpp -generation.cpp genOopClosures.hpp -generation.cpp genOopClosures.inline.hpp -generation.cpp generation.hpp -generation.cpp generation.inline.hpp -generation.cpp java.hpp -generation.cpp oop.inline.hpp -generation.cpp spaceDecorator.hpp -generation.cpp space.inline.hpp - -generation.hpp allocation.hpp -generation.hpp collectorCounters.hpp -generation.hpp memRegion.hpp -generation.hpp mutex.hpp -generation.hpp perfData.hpp -generation.hpp referenceProcessor.hpp -generation.hpp universe.hpp -generation.hpp virtualspace.hpp -generation.hpp watermark.hpp - -generation.inline.hpp genCollectedHeap.hpp -generation.inline.hpp generation.hpp -generation.inline.hpp space.hpp - -genOopClosures.hpp oop.hpp - -generationSpec.cpp compactPermGen.hpp -generationSpec.cpp defNewGeneration.hpp -generationSpec.cpp filemap.hpp -generationSpec.cpp genRemSet.hpp -generationSpec.cpp generationSpec.hpp -generationSpec.cpp java.hpp -generationSpec.cpp tenuredGeneration.hpp - -generationSpec.hpp generation.hpp -generationSpec.hpp permGen.hpp - -globalDefinitions.cpp globalDefinitions.hpp -globalDefinitions.cpp os.hpp -globalDefinitions.cpp top.hpp - -globalDefinitions.hpp globalDefinitions_.hpp -globalDefinitions.hpp macros.hpp - -globalDefinitions_.hpp generate_platform_dependent_include - -globalDefinitions_.hpp jni.h - -globals.cpp allocation.inline.hpp -globals.cpp arguments.hpp -globals.cpp globals.hpp -globals.cpp globals_extension.hpp -globals.cpp oop.inline.hpp -globals.cpp ostream.hpp -globals.cpp top.hpp - -globals.hpp debug.hpp -globals.hpp globals_.hpp -globals.hpp globals_.hpp -globals.hpp globals_.hpp - -globals_extension.hpp globals.hpp -globals_extension.hpp top.hpp - -growableArray.cpp growableArray.hpp -growableArray.cpp resourceArea.hpp -growableArray.cpp thread_.inline.hpp - -growableArray.hpp allocation.hpp -growableArray.hpp allocation.inline.hpp -growableArray.hpp debug.hpp -growableArray.hpp globalDefinitions.hpp -growableArray.hpp top.hpp - -handles.cpp allocation.inline.hpp -handles.cpp handles.inline.hpp -handles.cpp oop.inline.hpp -handles.cpp os_.inline.hpp -handles.cpp thread_.inline.hpp - -handles.hpp klass.hpp -handles.hpp klassOop.hpp -handles.hpp top.hpp - -handles.inline.hpp handles.hpp -handles.inline.hpp thread_.inline.hpp - -hashtable.cpp allocation.inline.hpp -hashtable.cpp dtrace.hpp -hashtable.cpp hashtable.hpp -hashtable.cpp hashtable.inline.hpp -hashtable.cpp oop.inline.hpp -hashtable.cpp resourceArea.hpp -hashtable.cpp safepoint.hpp - -hashtable.hpp allocation.hpp -hashtable.hpp handles.hpp -hashtable.hpp oop.hpp -hashtable.hpp symbolOop.hpp - -hashtable.inline.hpp allocation.inline.hpp -hashtable.inline.hpp hashtable.hpp - -heap.cpp heap.hpp -heap.cpp oop.inline.hpp -heap.cpp os.hpp - -heap.hpp allocation.hpp -heap.hpp virtualspace.hpp - -// heapDumper is jck optional, put cpp deps in includeDB_features - -heapDumper.hpp allocation.hpp -heapDumper.hpp klassOop.hpp -heapDumper.hpp oop.hpp -heapDumper.hpp os.hpp - -// heapInspection is jck optional, put cpp deps in includeDB_features - -heapInspection.hpp allocation.inline.hpp -heapInspection.hpp oop.inline.hpp - -histogram.cpp histogram.hpp -histogram.cpp oop.inline.hpp - -histogram.hpp allocation.hpp -histogram.hpp growableArray.hpp -histogram.hpp os.hpp -histogram.hpp os_.inline.hpp - -hpi.cpp hpi.hpp -hpi.cpp jvm.h - -hpi.hpp globalDefinitions.hpp -hpi.hpp hpi_imported.h -hpi.hpp os.hpp -hpi.hpp top.hpp - -hpi_.cpp hpi.hpp -hpi_.cpp oop.inline.hpp -hpi_.cpp os.hpp - -hpi_imported.h jni.h - -icBuffer.cpp assembler_.inline.hpp -icBuffer.cpp collectedHeap.inline.hpp -icBuffer.cpp compiledIC.hpp -icBuffer.cpp icBuffer.hpp -icBuffer.cpp interpreter.hpp -icBuffer.cpp linkResolver.hpp -icBuffer.cpp methodOop.hpp -icBuffer.cpp mutexLocker.hpp -icBuffer.cpp nmethod.hpp -icBuffer.cpp oop.inline.hpp -icBuffer.cpp oop.inline2.hpp -icBuffer.cpp resourceArea.hpp -icBuffer.cpp scopeDesc.hpp -icBuffer.cpp stubRoutines.hpp -icBuffer.cpp universe.inline.hpp - -icBuffer.hpp allocation.hpp -icBuffer.hpp bytecodes.hpp -icBuffer.hpp stubs.hpp - -icBuffer_.cpp assembler.hpp -icBuffer_.cpp assembler_.inline.hpp -icBuffer_.cpp bytecodes.hpp -icBuffer_.cpp collectedHeap.inline.hpp -icBuffer_.cpp icBuffer.hpp -icBuffer_.cpp nativeInst_.hpp -icBuffer_.cpp oop.inline.hpp -icBuffer_.cpp oop.inline2.hpp -icBuffer_.cpp resourceArea.hpp - -icache.cpp icache.hpp -icache.cpp resourceArea.hpp - -icache.hpp allocation.hpp -icache.hpp stubCodeGenerator.hpp - -icache_.cpp assembler_.inline.hpp -icache_.cpp icache.hpp - -icache_.hpp generate_platform_dependent_include - -init.cpp bytecodes.hpp -init.cpp collectedHeap.hpp -init.cpp handles.inline.hpp -init.cpp icBuffer.hpp -init.cpp icache.hpp -init.cpp init.hpp -init.cpp methodHandles.hpp -init.cpp safepoint.hpp -init.cpp sharedRuntime.hpp -init.cpp universe.hpp - -init.hpp top.hpp - -instanceKlass.cpp collectedHeap.inline.hpp -instanceKlass.cpp compileBroker.hpp -instanceKlass.cpp dtrace.hpp -instanceKlass.cpp fieldDescriptor.hpp -instanceKlass.cpp genOopClosures.inline.hpp -instanceKlass.cpp handles.inline.hpp -instanceKlass.cpp instanceKlass.hpp -instanceKlass.cpp instanceOop.hpp -instanceKlass.cpp javaCalls.hpp -instanceKlass.cpp javaClasses.hpp -instanceKlass.cpp jvmti.h -instanceKlass.cpp jvmtiExport.hpp -instanceKlass.cpp jvmtiRedefineClassesTrace.hpp -instanceKlass.cpp markSweep.inline.hpp -instanceKlass.cpp methodOop.hpp -instanceKlass.cpp mutexLocker.hpp -instanceKlass.cpp objArrayKlassKlass.hpp -instanceKlass.cpp oop.inline.hpp -instanceKlass.cpp oopFactory.hpp -instanceKlass.cpp oopMapCache.hpp -instanceKlass.cpp permGen.hpp -instanceKlass.cpp rewriter.hpp -instanceKlass.cpp symbolOop.hpp -instanceKlass.cpp systemDictionary.hpp -instanceKlass.cpp threadService.hpp -instanceKlass.cpp thread_.inline.hpp -instanceKlass.cpp verifier.hpp -instanceKlass.cpp vmSymbols.hpp - -instanceKlass.hpp accessFlags.hpp -instanceKlass.hpp bitMap.inline.hpp -instanceKlass.hpp constMethodOop.hpp -instanceKlass.hpp constantPoolOop.hpp -instanceKlass.hpp handles.hpp -instanceKlass.hpp instanceOop.hpp -instanceKlass.hpp klassOop.hpp -instanceKlass.hpp klassVtable.hpp -instanceKlass.hpp objArrayOop.hpp -instanceKlass.hpp os.hpp - -instanceKlassKlass.cpp collectedHeap.inline.hpp -instanceKlassKlass.cpp constantPoolOop.hpp -instanceKlassKlass.cpp fieldDescriptor.hpp -instanceKlassKlass.cpp gcLocker.hpp -instanceKlassKlass.cpp instanceKlass.hpp -instanceKlassKlass.cpp instanceKlassKlass.hpp -instanceKlassKlass.cpp instanceRefKlass.hpp -instanceKlassKlass.cpp javaClasses.hpp -instanceKlassKlass.cpp jvmtiExport.hpp -instanceKlassKlass.cpp markSweep.inline.hpp -instanceKlassKlass.cpp objArrayKlassKlass.hpp -instanceKlassKlass.cpp objArrayOop.hpp -instanceKlassKlass.cpp oop.inline.hpp -instanceKlassKlass.cpp oop.inline2.hpp -instanceKlassKlass.cpp oopMapCache.hpp -instanceKlassKlass.cpp symbolOop.hpp -instanceKlassKlass.cpp systemDictionary.hpp -instanceKlassKlass.cpp typeArrayOop.hpp - -instanceKlassKlass.hpp klassKlass.hpp - -instanceOop.cpp instanceOop.hpp - -instanceOop.hpp oop.hpp - -instanceRefKlass.cpp collectedHeap.hpp -instanceRefKlass.cpp collectedHeap.inline.hpp -instanceRefKlass.cpp genCollectedHeap.hpp -instanceRefKlass.cpp genOopClosures.inline.hpp -instanceRefKlass.cpp instanceRefKlass.hpp -instanceRefKlass.cpp javaClasses.hpp -instanceRefKlass.cpp markSweep.inline.hpp -instanceRefKlass.cpp oop.inline.hpp -instanceRefKlass.cpp preserveException.hpp -instanceRefKlass.cpp systemDictionary.hpp - -instanceRefKlass.hpp instanceKlass.hpp - -interfaceSupport.cpp collectedHeap.hpp -interfaceSupport.cpp collectedHeap.inline.hpp -interfaceSupport.cpp genCollectedHeap.hpp -interfaceSupport.cpp init.hpp -interfaceSupport.cpp interfaceSupport.hpp -interfaceSupport.cpp markSweep.hpp -interfaceSupport.cpp preserveException.hpp -interfaceSupport.cpp resourceArea.hpp -interfaceSupport.cpp threadLocalStorage.hpp -interfaceSupport.cpp vframe.hpp - -interfaceSupport.hpp gcLocker.hpp -interfaceSupport.hpp globalDefinitions.hpp -interfaceSupport.hpp handles.inline.hpp -interfaceSupport.hpp mutexLocker.hpp -interfaceSupport.hpp orderAccess.hpp -interfaceSupport.hpp os.hpp -interfaceSupport.hpp preserveException.hpp -interfaceSupport.hpp safepoint.hpp -interfaceSupport.hpp thread_.inline.hpp -interfaceSupport.hpp top.hpp -interfaceSupport.hpp vmThread.hpp - -interfaceSupport_.hpp generate_platform_dependent_include - -interp_masm_.cpp arrayOop.hpp -interp_masm_.cpp basicLock.hpp -interp_masm_.cpp biasedLocking.hpp -interp_masm_.cpp interp_masm_.hpp -interp_masm_.cpp interpreterRuntime.hpp -interp_masm_.cpp interpreter.hpp -interp_masm_.cpp jvmtiExport.hpp -interp_masm_.cpp jvmtiRedefineClassesTrace.hpp -interp_masm_.cpp jvmtiThreadState.hpp -interp_masm_.cpp markOop.hpp -interp_masm_.cpp methodDataOop.hpp -interp_masm_.cpp methodOop.hpp -interp_masm_.cpp sharedRuntime.hpp -interp_masm_.cpp thread_.inline.hpp - -interp_masm_.hpp assembler_.inline.hpp -interp_masm_.hpp invocationCounter.hpp - -interpreter.cpp allocation.inline.hpp -interpreter.cpp arrayOop.hpp -interpreter.cpp assembler.hpp -interpreter.cpp bytecodeHistogram.hpp -interpreter.cpp bytecodeInterpreter.hpp -interpreter.cpp forte.hpp -interpreter.cpp handles.inline.hpp -interpreter.cpp interpreter.hpp -interpreter.cpp interpreterRuntime.hpp -interpreter.cpp interpreter.hpp -interpreter.cpp jvmtiExport.hpp -interpreter.cpp methodDataOop.hpp -interpreter.cpp methodOop.hpp -interpreter.cpp oop.inline.hpp -interpreter.cpp resourceArea.hpp -interpreter.cpp sharedRuntime.hpp -interpreter.cpp stubRoutines.hpp -interpreter.cpp templateTable.hpp -interpreter.cpp timer.hpp - -interpreter.hpp cppInterpreter.hpp -interpreter.hpp stubs.hpp -interpreter.hpp templateInterpreter.hpp - -interpreterRT_.cpp allocation.inline.hpp -interpreterRT_.cpp handles.inline.hpp -interpreterRT_.cpp icache.hpp -interpreterRT_.cpp interfaceSupport.hpp -interpreterRT_.cpp interpreterRuntime.hpp -interpreterRT_.cpp interpreter.hpp -interpreterRT_.cpp methodOop.hpp -interpreterRT_.cpp oop.inline.hpp -interpreterRT_.cpp signature.hpp -interpreterRT_.cpp universe.inline.hpp - -interpreterRT_.hpp allocation.hpp -interpreterRT_.hpp generate_platform_dependent_include - -interpreterRuntime.cpp biasedLocking.hpp -interpreterRuntime.cpp collectedHeap.hpp -interpreterRuntime.cpp compileBroker.hpp -interpreterRuntime.cpp compilationPolicy.hpp -interpreterRuntime.cpp constantPoolOop.hpp -interpreterRuntime.cpp cpCacheOop.hpp -interpreterRuntime.cpp deoptimization.hpp -interpreterRuntime.cpp events.hpp -interpreterRuntime.cpp fieldDescriptor.hpp -interpreterRuntime.cpp handles.inline.hpp -interpreterRuntime.cpp instanceKlass.hpp -interpreterRuntime.cpp interfaceSupport.hpp -interpreterRuntime.cpp interpreterRuntime.hpp -interpreterRuntime.cpp interpreter.hpp -interpreterRuntime.cpp java.hpp -interpreterRuntime.cpp jfieldIDWorkaround.hpp -interpreterRuntime.cpp jvmtiExport.hpp -interpreterRuntime.cpp linkResolver.hpp -interpreterRuntime.cpp methodDataOop.hpp -interpreterRuntime.cpp nativeLookup.hpp -interpreterRuntime.cpp objArrayKlass.hpp -interpreterRuntime.cpp oop.inline.hpp -interpreterRuntime.cpp oopFactory.hpp -interpreterRuntime.cpp osThread.hpp -interpreterRuntime.cpp sharedRuntime.hpp -interpreterRuntime.cpp stubRoutines.hpp -interpreterRuntime.cpp symbolOop.hpp -interpreterRuntime.cpp synchronizer.hpp -interpreterRuntime.cpp systemDictionary.hpp -interpreterRuntime.cpp templateTable.hpp -interpreterRuntime.cpp threadCritical.hpp -interpreterRuntime.cpp universe.inline.hpp -interpreterRuntime.cpp vmSymbols.hpp -interpreterRuntime.cpp vm_version_.hpp - -interpreterRuntime.hpp bytecode.hpp -interpreterRuntime.hpp frame.inline.hpp -interpreterRuntime.hpp linkResolver.hpp -interpreterRuntime.hpp methodOop.hpp -interpreterRuntime.hpp signature.hpp -interpreterRuntime.hpp thread_.inline.hpp -interpreterRuntime.hpp top.hpp -interpreterRuntime.hpp universe.hpp - -interpreter_.cpp arguments.hpp -interpreter_.cpp arrayOop.hpp -interpreter_.cpp assembler.hpp -interpreter_.cpp bytecodeHistogram.hpp -interpreter_.cpp debug.hpp -interpreter_.cpp deoptimization.hpp -interpreter_.cpp frame.inline.hpp -interpreter_.cpp interpreterRuntime.hpp -interpreter_.cpp interpreter.hpp -interpreter_.cpp interpreterGenerator.hpp -interpreter_.cpp jvmtiExport.hpp -interpreter_.cpp jvmtiThreadState.hpp -interpreter_.cpp methodDataOop.hpp -interpreter_.cpp methodHandles.hpp -interpreter_.cpp methodOop.hpp -interpreter_.cpp oop.inline.hpp -interpreter_.cpp sharedRuntime.hpp -interpreter_.cpp stubRoutines.hpp -interpreter_.cpp synchronizer.hpp -interpreter_.cpp templateTable.hpp -interpreter_.cpp timer.hpp -interpreter_.cpp vframeArray.hpp - -interpreter_.hpp generate_platform_dependent_include - -interpreterGenerator.hpp cppInterpreter.hpp -interpreterGenerator.hpp cppInterpreterGenerator.hpp -interpreterGenerator.hpp templateInterpreter.hpp -interpreterGenerator.hpp templateInterpreterGenerator.hpp - -interpreterGenerator_.hpp generate_platform_dependent_include - -invocationCounter.cpp frame.hpp -invocationCounter.cpp handles.inline.hpp -invocationCounter.cpp invocationCounter.hpp - -invocationCounter.hpp allocation.hpp -invocationCounter.hpp exceptions.hpp -invocationCounter.hpp handles.hpp - -intHisto.cpp intHisto.hpp - -intHisto.hpp allocation.hpp -intHisto.hpp growableArray.hpp - -iterator.cpp iterator.hpp -iterator.cpp oop.inline.hpp - -iterator.hpp allocation.hpp -iterator.hpp memRegion.hpp -iterator.hpp prefetch.hpp -iterator.hpp top.hpp - -java.cpp aprofiler.hpp -java.cpp arguments.hpp -java.cpp biasedLocking.hpp -java.cpp bytecodeHistogram.hpp -java.cpp classLoader.hpp -java.cpp codeCache.hpp -java.cpp compilationPolicy.hpp -java.cpp compileBroker.hpp -java.cpp compilerOracle.hpp -java.cpp constantPoolOop.hpp -java.cpp dtrace.hpp -java.cpp fprofiler.hpp -java.cpp genCollectedHeap.hpp -java.cpp generateOopMap.hpp -java.cpp globalDefinitions.hpp -java.cpp histogram.hpp -java.cpp init.hpp -java.cpp instanceKlass.hpp -java.cpp instanceKlassKlass.hpp -java.cpp instanceOop.hpp -java.cpp interfaceSupport.hpp -java.cpp java.hpp -java.cpp jvmtiExport.hpp -java.cpp memprofiler.hpp -java.cpp methodOop.hpp -java.cpp objArrayOop.hpp -java.cpp oop.inline.hpp -java.cpp oopFactory.hpp -java.cpp sharedRuntime.hpp -java.cpp statSampler.hpp -java.cpp symbolOop.hpp -java.cpp symbolTable.hpp -java.cpp systemDictionary.hpp -java.cpp task.hpp -java.cpp thread_.inline.hpp -java.cpp timer.hpp -java.cpp universe.hpp -java.cpp vmError.hpp -java.cpp vm_operations.hpp -java.cpp vm_version_.hpp - -java.hpp os.hpp - -javaAssertions.cpp allocation.inline.hpp -javaAssertions.cpp handles.inline.hpp -javaAssertions.cpp javaAssertions.hpp -javaAssertions.cpp javaClasses.hpp -javaAssertions.cpp oop.inline.hpp -javaAssertions.cpp oopFactory.hpp -javaAssertions.cpp systemDictionary.hpp -javaAssertions.cpp vmSymbols.hpp - -javaAssertions.hpp exceptions.hpp -javaAssertions.hpp objArrayOop.hpp -javaAssertions.hpp ostream.hpp -javaAssertions.hpp typeArrayOop.hpp - -javaCalls.cpp compilationPolicy.hpp -javaCalls.cpp compileBroker.hpp -javaCalls.cpp handles.inline.hpp -javaCalls.cpp interfaceSupport.hpp -javaCalls.cpp interpreter.hpp -javaCalls.cpp javaCalls.hpp -javaCalls.cpp jniCheck.hpp -javaCalls.cpp linkResolver.hpp -javaCalls.cpp mutexLocker.hpp -javaCalls.cpp nmethod.hpp -javaCalls.cpp oop.inline.hpp -javaCalls.cpp signature.hpp -javaCalls.cpp stubRoutines.hpp -javaCalls.cpp systemDictionary.hpp -javaCalls.cpp thread_.inline.hpp -javaCalls.cpp universe.inline.hpp -javaCalls.cpp vmSymbols.hpp -javaCalls.hpp allocation.hpp - -javaCalls.hpp handles.hpp -javaCalls.hpp javaFrameAnchor.hpp -javaCalls.hpp jniTypes_.hpp -javaCalls.hpp methodOop.hpp -javaCalls.hpp thread_.inline.hpp -javaCalls.hpp vmThread.hpp - -javaClasses.cpp debugInfo.hpp -javaClasses.cpp fieldDescriptor.hpp -javaClasses.cpp handles.inline.hpp -javaClasses.cpp instanceKlass.hpp -javaClasses.cpp interfaceSupport.hpp -javaClasses.cpp interpreter.hpp -javaClasses.cpp java.hpp -javaClasses.cpp javaCalls.hpp -javaClasses.cpp javaClasses.hpp -javaClasses.cpp klass.hpp -javaClasses.cpp klassOop.hpp -javaClasses.cpp methodOop.hpp -javaClasses.cpp oopFactory.hpp -javaClasses.cpp pcDesc.hpp -javaClasses.cpp preserveException.hpp -javaClasses.cpp resourceArea.hpp -javaClasses.cpp safepoint.hpp -javaClasses.cpp symbolOop.hpp -javaClasses.cpp symbolTable.hpp -javaClasses.cpp thread_.inline.hpp -javaClasses.cpp typeArrayOop.hpp -javaClasses.cpp universe.inline.hpp -javaClasses.cpp vframe.hpp -javaClasses.cpp vmSymbols.hpp - -javaClasses.hpp jvmti.h -javaClasses.hpp oop.hpp -javaClasses.hpp os.hpp -javaClasses.hpp systemDictionary.hpp -javaClasses.hpp utf8.hpp - -javaFrameAnchor.hpp globalDefinitions.hpp -javaFrameAnchor.hpp orderAccess_.inline.hpp - -javaFrameAnchor_.hpp generate_platform_dependent_include - -jni.cpp allocation.inline.hpp -jni.cpp classLoader.hpp -jni.cpp compilationPolicy.hpp -jni.cpp defaultStream.hpp -jni.cpp dtrace.hpp -jni.cpp events.hpp -jni.cpp fieldDescriptor.hpp -jni.cpp fprofiler.hpp -jni.cpp gcLocker.inline.hpp -jni.cpp handles.inline.hpp -jni.cpp histogram.hpp -jni.cpp instanceKlass.hpp -jni.cpp instanceOop.hpp -jni.cpp interfaceSupport.hpp -jni.cpp java.hpp -jni.cpp javaCalls.hpp -jni.cpp javaClasses.hpp -jni.cpp jfieldIDWorkaround.hpp -jni.cpp jni.h -jni.cpp jniCheck.hpp -jni.cpp jniFastGetField.hpp -jni.cpp jniTypes_.hpp -jni.cpp jvm.h -jni.cpp jvm_misc.hpp -jni.cpp jvmtiExport.hpp -jni.cpp jvmtiThreadState.hpp -jni.cpp linkResolver.hpp -jni.cpp markOop.hpp -jni.cpp methodOop.hpp -jni.cpp objArrayKlass.hpp -jni.cpp objArrayOop.hpp -jni.cpp oop.inline.hpp -jni.cpp oopFactory.hpp -jni.cpp os_.inline.hpp -jni.cpp reflection.hpp -jni.cpp runtimeService.hpp -jni.cpp sharedRuntime.hpp -jni.cpp signature.hpp -jni.cpp symbolOop.hpp -jni.cpp symbolTable.hpp -jni.cpp systemDictionary.hpp -jni.cpp thread_.inline.hpp -jni.cpp typeArrayKlass.hpp -jni.cpp typeArrayOop.hpp -jni.cpp universe.inline.hpp -jni.cpp vmSymbols.hpp -jni.cpp vm_operations.hpp - -// jniCheck is jck optional, put cpp deps in includeDB_features - -jniFastGetField.cpp jniFastGetField.hpp - -jniFastGetField.hpp allocation.hpp -jniFastGetField.hpp jvm_misc.hpp - -jniFastGetField_.cpp assembler_.inline.hpp -jniFastGetField_.cpp jniFastGetField.hpp -jniFastGetField_.cpp jvm_misc.hpp -jniFastGetField_.cpp resourceArea.hpp -jniFastGetField_.cpp safepoint.hpp - -jniHandles.cpp jniHandles.hpp -jniHandles.cpp mutexLocker.hpp -jniHandles.cpp oop.inline.hpp -jniHandles.cpp systemDictionary.hpp -jniHandles.cpp thread_.inline.hpp - -jniHandles.hpp handles.hpp -jniHandles.hpp top.hpp - -jniPeriodicChecker.cpp allocation.inline.hpp -jniPeriodicChecker.cpp jniPeriodicChecker.hpp -jniPeriodicChecker.cpp task.hpp - -jniTypes_.hpp allocation.hpp -jniTypes_.hpp jni.h -jniTypes_.hpp oop.hpp - -jni_.h generate_platform_dependent_include - -jvm.cpp arguments.hpp -jvm.cpp attachListener.hpp -jvm.cpp classLoader.hpp -jvm.cpp collectedHeap.inline.hpp -jvm.cpp copy.hpp -jvm.cpp defaultStream.hpp -jvm.cpp dtrace.hpp -jvm.cpp dtraceJSDT.hpp -jvm.cpp events.hpp -jvm.cpp handles.inline.hpp -jvm.cpp histogram.hpp -jvm.cpp hpi.hpp -jvm.cpp hpi_.hpp -jvm.cpp init.hpp -jvm.cpp instanceKlass.hpp -jvm.cpp interfaceSupport.hpp -jvm.cpp java.hpp -jvm.cpp javaAssertions.hpp -jvm.cpp javaCalls.hpp -jvm.cpp javaClasses.hpp -jvm.cpp jfieldIDWorkaround.hpp -jvm.cpp jvm.h -jvm.cpp jvm_.h -jvm.cpp jvm_misc.hpp -jvm.cpp jvmtiExport.hpp -jvm.cpp jvmtiThreadState.hpp -jvm.cpp management.hpp -jvm.cpp nativeLookup.hpp -jvm.cpp objArrayKlass.hpp -jvm.cpp oopFactory.hpp -jvm.cpp os.hpp -jvm.cpp perfData.hpp -jvm.cpp privilegedStack.hpp -jvm.cpp reflection.hpp -jvm.cpp symbolTable.hpp -jvm.cpp systemDictionary.hpp -jvm.cpp threadService.hpp -jvm.cpp top.hpp -jvm.cpp universe.inline.hpp -jvm.cpp utf8.hpp -jvm.cpp vframe.hpp -jvm.cpp vmSymbols.hpp -jvm.cpp vm_operations.hpp - -jvm.h globalDefinitions.hpp -jvm.h jni.h -jvm.h jvm_.h -jvm.h reflectionCompat.hpp - -jvm_.cpp interfaceSupport.hpp -jvm_.cpp jvm.h -jvm_.cpp osThread.hpp - -jvm_misc.hpp handles.hpp -jvm_misc.hpp jni.h - -jvmtiExport.hpp allocation.hpp -jvmtiExport.hpp globalDefinitions.hpp -jvmtiExport.hpp growableArray.hpp -jvmtiExport.hpp handles.hpp -jvmtiExport.hpp iterator.hpp -jvmtiExport.hpp jvmti.h -jvmtiExport.hpp jvmticmlr.h -jvmtiExport.hpp oop.hpp -jvmtiExport.hpp oopsHierarchy.hpp - -jvmtiThreadState.hpp allocation.hpp -jvmtiThreadState.hpp allocation.inline.hpp -jvmtiThreadState.hpp growableArray.hpp -jvmtiThreadState.hpp jvmti.h -jvmtiThreadState.hpp jvmtiEventController.hpp -jvmtiThreadState.hpp thread.hpp - -klass.cpp atomic.hpp -klass.cpp collectedHeap.inline.hpp -klass.cpp instanceKlass.hpp -klass.cpp klass.inline.hpp -klass.cpp klassOop.hpp -klass.cpp oop.inline.hpp -klass.cpp oop.inline2.hpp -klass.cpp oopFactory.hpp -klass.cpp resourceArea.hpp -klass.cpp systemDictionary.hpp -klass.cpp vmSymbols.hpp - -klass.hpp accessFlags.hpp -klass.hpp genOopClosures.hpp -klass.hpp iterator.hpp -klass.hpp klassOop.hpp -klass.hpp klassPS.hpp -klass.hpp memRegion.hpp -klass.hpp oop.hpp -klass.hpp specialized_oop_closures.hpp - -klass.inline.hpp klass.hpp -klass.inline.hpp markOop.hpp - -klassKlass.cpp collectedHeap.hpp -klassKlass.cpp collectedHeap.inline.hpp -klassKlass.cpp constantPoolKlass.hpp -klassKlass.cpp handles.inline.hpp -klassKlass.cpp instanceKlass.hpp -klassKlass.cpp instanceOop.hpp -klassKlass.cpp klassKlass.hpp -klassKlass.cpp klassOop.hpp -klassKlass.cpp markSweep.inline.hpp -klassKlass.cpp methodKlass.hpp -klassKlass.cpp objArrayKlass.hpp -klassKlass.cpp oop.inline.hpp -klassKlass.cpp oop.inline2.hpp -klassKlass.cpp oopFactory.hpp -klassKlass.cpp permGen.hpp -klassKlass.cpp symbolKlass.hpp -klassKlass.cpp symbolOop.hpp -klassKlass.cpp typeArrayKlass.hpp - -klassKlass.hpp klass.hpp -klassKlass.hpp klassOop.hpp -klassKlass.hpp oopFactory.hpp - -klassOop.cpp klassOop.hpp - -klassOop.hpp oop.hpp - -klassVtable.cpp arguments.hpp -klassVtable.cpp copy.hpp -klassVtable.cpp gcLocker.hpp -klassVtable.cpp handles.inline.hpp -klassVtable.cpp instanceKlass.hpp -klassVtable.cpp jvmtiRedefineClassesTrace.hpp -klassVtable.cpp klassOop.hpp -klassVtable.cpp klassVtable.hpp -klassVtable.cpp markSweep.inline.hpp -klassVtable.cpp methodOop.hpp -klassVtable.cpp objArrayOop.hpp -klassVtable.cpp oop.inline.hpp -klassVtable.cpp resourceArea.hpp -klassVtable.cpp systemDictionary.hpp -klassVtable.cpp universe.inline.hpp -klassVtable.cpp vmSymbols.hpp - -klassVtable.hpp allocation.hpp -klassVtable.hpp growableArray.hpp -klassVtable.hpp handles.hpp -klassVtable.hpp oopsHierarchy.hpp - -linkResolver.cpp bytecode.hpp -linkResolver.cpp collectedHeap.inline.hpp -linkResolver.cpp compilationPolicy.hpp -linkResolver.cpp compileBroker.hpp -linkResolver.cpp fieldDescriptor.hpp -linkResolver.cpp frame.inline.hpp -linkResolver.cpp handles.inline.hpp -linkResolver.cpp instanceKlass.hpp -linkResolver.cpp interpreterRuntime.hpp -linkResolver.cpp linkResolver.hpp -linkResolver.cpp methodHandles.hpp -linkResolver.cpp nativeLookup.hpp -linkResolver.cpp objArrayOop.hpp -linkResolver.cpp reflection.hpp -linkResolver.cpp resourceArea.hpp -linkResolver.cpp signature.hpp -linkResolver.cpp systemDictionary.hpp -linkResolver.cpp thread_.inline.hpp -linkResolver.cpp universe.inline.hpp -linkResolver.cpp vmSymbols.hpp -linkResolver.cpp vmThread.hpp - -linkResolver.hpp methodOop.hpp -linkResolver.hpp top.hpp - -liveRange.hpp copy.hpp - -loaderConstraints.cpp handles.inline.hpp -loaderConstraints.cpp hashtable.inline.hpp -loaderConstraints.cpp loaderConstraints.hpp -loaderConstraints.cpp oop.inline.hpp -loaderConstraints.cpp resourceArea.hpp -loaderConstraints.cpp safepoint.hpp - -loaderConstraints.hpp dictionary.hpp -loaderConstraints.hpp placeholders.hpp -loaderConstraints.hpp hashtable.hpp - -location.cpp debugInfo.hpp -location.cpp location.hpp - -location.hpp allocation.hpp -location.hpp assembler.hpp -location.hpp vmreg.hpp - -lowMemoryDetector.cpp interfaceSupport.hpp -lowMemoryDetector.cpp java.hpp -lowMemoryDetector.cpp javaCalls.hpp -lowMemoryDetector.cpp lowMemoryDetector.hpp -lowMemoryDetector.cpp management.hpp -lowMemoryDetector.cpp mutex.hpp -lowMemoryDetector.cpp mutexLocker.hpp -lowMemoryDetector.cpp oop.inline.hpp -lowMemoryDetector.cpp systemDictionary.hpp -lowMemoryDetector.cpp vmSymbols.hpp - -lowMemoryDetector.hpp allocation.hpp -lowMemoryDetector.hpp memoryPool.hpp -lowMemoryDetector.hpp memoryService.hpp - -management.cpp arguments.hpp -management.cpp classLoadingService.hpp -management.cpp compileBroker.hpp -management.cpp handles.inline.hpp -management.cpp heapDumper.hpp -management.cpp interfaceSupport.hpp -management.cpp iterator.hpp -management.cpp javaCalls.hpp -management.cpp jniHandles.hpp -management.cpp klass.hpp -management.cpp klassOop.hpp -management.cpp lowMemoryDetector.hpp -management.cpp management.hpp -management.cpp memoryManager.hpp -management.cpp memoryPool.hpp -management.cpp memoryService.hpp -management.cpp objArrayKlass.hpp -management.cpp oop.inline.hpp -management.cpp oopFactory.hpp -management.cpp os.hpp -management.cpp resourceArea.hpp -management.cpp runtimeService.hpp -management.cpp systemDictionary.hpp -management.cpp threadService.hpp - -management.hpp allocation.hpp -management.hpp handles.hpp -management.hpp jmm.h -management.hpp timer.hpp - -markOop.cpp markOop.hpp -markOop.cpp thread_.inline.hpp - -markOop.hpp oop.hpp - -markOop.inline.hpp globals.hpp -markOop.inline.hpp klass.hpp -markOop.inline.hpp klassOop.hpp -markOop.inline.hpp markOop.hpp - -markSweep.cpp compileBroker.hpp -markSweep.cpp methodDataOop.hpp -markSweep.cpp objArrayKlass.inline.hpp - -markSweep.hpp collectedHeap.hpp -markSweep.hpp taskqueue.hpp - -memRegion.cpp globals.hpp -memRegion.cpp memRegion.hpp - -memRegion.hpp allocation.hpp -memRegion.hpp debug.hpp -memRegion.hpp globalDefinitions.hpp - -memoryManager.cpp systemDictionary.hpp -memoryManager.cpp vmSymbols.hpp -memoryManager.cpp dtrace.hpp -memoryManager.cpp handles.inline.hpp -memoryManager.cpp javaCalls.hpp -memoryManager.cpp lowMemoryDetector.hpp -memoryManager.cpp management.hpp -memoryManager.cpp memoryManager.hpp -memoryManager.cpp memoryPool.hpp -memoryManager.cpp memoryService.hpp -memoryManager.cpp oop.inline.hpp - -memoryManager.hpp allocation.hpp -memoryManager.hpp memoryUsage.hpp -memoryManager.hpp timer.hpp - -memoryPool.cpp systemDictionary.hpp -memoryPool.cpp vmSymbols.hpp -memoryPool.cpp handles.inline.hpp -memoryPool.cpp javaCalls.hpp -memoryPool.cpp lowMemoryDetector.hpp -memoryPool.cpp management.hpp -memoryPool.cpp memoryManager.hpp -memoryPool.cpp memoryPool.hpp -memoryPool.cpp oop.inline.hpp - -memoryPool.hpp defNewGeneration.hpp -memoryPool.hpp heap.hpp -memoryPool.hpp memoryUsage.hpp -memoryPool.hpp mutableSpace.hpp -memoryPool.hpp space.hpp - -memoryService.cpp classLoadingService.hpp -memoryService.cpp collectorPolicy.hpp -memoryService.cpp defNewGeneration.hpp -memoryService.cpp genCollectedHeap.hpp -memoryService.cpp generation.hpp -memoryService.cpp generationSpec.hpp -memoryService.cpp growableArray.hpp -memoryService.cpp heap.hpp -memoryService.cpp javaCalls.hpp -memoryService.cpp lowMemoryDetector.hpp -memoryService.cpp management.hpp -memoryService.cpp memRegion.hpp -memoryService.cpp memoryManager.hpp -memoryService.cpp memoryPool.hpp -memoryService.cpp memoryService.hpp -memoryService.cpp mutableSpace.hpp -memoryService.cpp oop.inline.hpp -memoryService.cpp permGen.hpp -memoryService.cpp systemDictionary.hpp -memoryService.cpp tenuredGeneration.hpp -memoryService.cpp vmSymbols.hpp - -memoryService.hpp allocation.hpp -memoryService.hpp generation.hpp -memoryService.hpp handles.hpp -memoryService.hpp memoryUsage.hpp - -memoryUsage.hpp globalDefinitions.hpp - -memprofiler.cpp codeCache.hpp -memprofiler.cpp collectedHeap.inline.hpp -memprofiler.cpp generation.hpp -memprofiler.cpp handles.inline.hpp -memprofiler.cpp jniHandles.hpp -memprofiler.cpp memprofiler.hpp -memprofiler.cpp mutexLocker.hpp -memprofiler.cpp oopMapCache.hpp -memprofiler.cpp os.hpp -memprofiler.cpp permGen.hpp -memprofiler.cpp resourceArea.hpp -memprofiler.cpp systemDictionary.hpp -memprofiler.cpp task.hpp -memprofiler.cpp thread_.inline.hpp -memprofiler.cpp vmThread.hpp - -methodComparator.cpp globalDefinitions.hpp -methodComparator.cpp handles.inline.hpp -methodComparator.cpp jvmtiRedefineClassesTrace.hpp -methodComparator.cpp methodComparator.hpp -methodComparator.cpp oop.inline.hpp -methodComparator.cpp symbolOop.hpp - -methodComparator.hpp bytecodeStream.hpp -methodComparator.hpp constantPoolOop.hpp -methodComparator.hpp methodOop.hpp - -methodDataKlass.cpp collectedHeap.inline.hpp -methodDataKlass.cpp gcLocker.hpp -methodDataKlass.cpp handles.inline.hpp -methodDataKlass.cpp klassOop.hpp -methodDataKlass.cpp markSweep.inline.hpp -methodDataKlass.cpp methodDataKlass.hpp -methodDataKlass.cpp methodDataOop.hpp -methodDataKlass.cpp oop.inline.hpp -methodDataKlass.cpp oop.inline2.hpp -methodDataKlass.cpp resourceArea.hpp -methodDataKlass.cpp universe.inline.hpp - -methodDataKlass.hpp klass.hpp - -methodDataOop.cpp bytecode.hpp -methodDataOop.cpp bytecodeStream.hpp -methodDataOop.cpp compilationPolicy.hpp -methodDataOop.cpp deoptimization.hpp -methodDataOop.cpp handles.inline.hpp -methodDataOop.cpp linkResolver.hpp -methodDataOop.cpp markSweep.inline.hpp -methodDataOop.cpp methodDataOop.hpp -methodDataOop.cpp oop.inline.hpp -methodDataOop.cpp systemDictionary.hpp - -methodDataOop.hpp bytecodes.hpp -methodDataOop.hpp oop.hpp -methodDataOop.hpp orderAccess.hpp -methodDataOop.hpp universe.hpp -methodDataOop.hpp methodOop.hpp - -methodHandleWalk.hpp methodHandles.hpp - -methodHandleWalk.cpp methodHandleWalk.hpp -methodHandleWalk.cpp oopFactory.hpp -methodHandleWalk.cpp rewriter.hpp - -methodHandles.hpp frame.inline.hpp -methodHandles.hpp globals.hpp -methodHandles.hpp interfaceSupport.hpp -methodHandles.hpp javaClasses.hpp -methodHandles.hpp no_precompiled_headers -methodHandles.hpp vmSymbols.hpp - -methodHandles.cpp allocation.inline.hpp -methodHandles.cpp interpreter.hpp -methodHandles.cpp javaCalls.hpp -methodHandles.cpp methodHandles.hpp -methodHandles.cpp oopFactory.hpp -methodHandles.cpp reflection.hpp -methodHandles.cpp signature.hpp -methodHandles.cpp stubRoutines.hpp -methodHandles.cpp symbolTable.hpp - -methodHandles_.cpp allocation.inline.hpp -methodHandles_.cpp interpreter.hpp -methodHandles_.cpp methodHandles.hpp - -methodKlass.cpp collectedHeap.inline.hpp -methodKlass.cpp constMethodKlass.hpp -methodKlass.cpp gcLocker.hpp -methodKlass.cpp handles.inline.hpp -methodKlass.cpp interpreter.hpp -methodKlass.cpp javaClasses.hpp -methodKlass.cpp klassOop.hpp -methodKlass.cpp markSweep.inline.hpp -methodKlass.cpp methodDataOop.hpp -methodKlass.cpp methodKlass.hpp -methodKlass.cpp oop.inline.hpp -methodKlass.cpp oop.inline2.hpp -methodKlass.cpp resourceArea.hpp -methodKlass.cpp symbolOop.hpp -methodKlass.cpp universe.inline.hpp - -methodKlass.hpp klass.hpp -methodKlass.hpp klassOop.hpp -methodKlass.hpp methodOop.hpp - -methodLiveness.cpp allocation.inline.hpp -methodLiveness.cpp bitMap.inline.hpp -methodLiveness.cpp bytecode.hpp -methodLiveness.cpp bytecodes.hpp -methodLiveness.cpp ciMethod.hpp -methodLiveness.cpp ciMethodBlocks.hpp -methodLiveness.cpp ciStreams.hpp -methodLiveness.cpp methodLiveness.hpp - -methodLiveness.hpp bitMap.hpp -methodLiveness.hpp growableArray.hpp - -methodOop.cpp arguments.hpp -methodOop.cpp bytecodeStream.hpp -methodOop.cpp bytecodeTracer.hpp -methodOop.cpp bytecodes.hpp -methodOop.cpp collectedHeap.inline.hpp -methodOop.cpp compilationPolicy.hpp -methodOop.cpp debugInfoRec.hpp -methodOop.cpp frame.inline.hpp -methodOop.cpp gcLocker.hpp -methodOop.cpp gcTaskThread.hpp -methodOop.cpp generation.hpp -methodOop.cpp handles.inline.hpp -methodOop.cpp interpreter.hpp -methodOop.cpp jvmtiExport.hpp -methodOop.cpp klassOop.hpp -methodOop.cpp methodDataOop.hpp -methodOop.cpp methodHandleWalk.hpp -methodOop.cpp methodOop.hpp -methodOop.cpp nativeLookup.hpp -methodOop.cpp oop.inline.hpp -methodOop.cpp oopFactory.hpp -methodOop.cpp oopMapCache.hpp -methodOop.cpp relocator.hpp -methodOop.cpp sharedRuntime.hpp -methodOop.cpp signature.hpp -methodOop.cpp symbolOop.hpp -methodOop.cpp systemDictionary.hpp -methodOop.cpp xmlstream.hpp - -methodOop.hpp accessFlags.hpp -methodOop.hpp compressedStream.hpp -methodOop.hpp constMethodOop.hpp -methodOop.hpp constantPoolOop.hpp -methodOop.hpp growableArray.hpp -methodOop.hpp instanceKlass.hpp -methodOop.hpp invocationCounter.hpp -methodOop.hpp oop.hpp -methodOop.hpp oopMap.hpp -methodOop.hpp typeArrayOop.hpp -methodOop.hpp vmSymbols.hpp - -modRefBarrierSet.hpp barrierSet.hpp - -monitorChunk.cpp allocation.inline.hpp -monitorChunk.cpp monitorChunk.hpp -monitorChunk.cpp oop.inline.hpp - -monitorChunk.hpp synchronizer.hpp - -mutex.cpp events.hpp -mutex.cpp mutex.hpp -mutex.cpp mutex_.inline.hpp -mutex.cpp osThread.hpp -mutex.cpp thread_.inline.hpp - -mutex.hpp allocation.hpp -mutex.hpp histogram.hpp -mutex.hpp os.hpp - -mutexLocker.cpp mutexLocker.hpp -mutexLocker.cpp safepoint.hpp -mutexLocker.cpp threadLocalStorage.hpp -mutexLocker.cpp thread_.inline.hpp -mutexLocker.cpp vmThread.hpp - -mutexLocker.hpp allocation.hpp -mutexLocker.hpp mutex.hpp -mutexLocker.hpp os_.inline.hpp - -mutex_.cpp events.hpp -mutex_.cpp interfaceSupport.hpp -mutex_.cpp mutex.hpp -mutex_.cpp mutex_.inline.hpp -mutex_.cpp thread_.inline.hpp - -mutex_.inline.hpp interfaceSupport.hpp -mutex_.inline.hpp os_.inline.hpp -mutex_.inline.hpp thread_.inline.hpp - -nativeInst_.cpp assembler_.inline.hpp -nativeInst_.cpp handles.hpp -nativeInst_.cpp nativeInst_.hpp -nativeInst_.cpp oop.inline.hpp -nativeInst_.cpp ostream.hpp -nativeInst_.cpp resourceArea.hpp -nativeInst_.cpp sharedRuntime.hpp -nativeInst_.cpp stubRoutines.hpp - -nativeInst_.hpp allocation.hpp -nativeInst_.hpp assembler.hpp -nativeInst_.hpp icache.hpp -nativeInst_.hpp os.hpp -nativeInst_.hpp top.hpp - -nativeLookup.cpp arguments.hpp -nativeLookup.cpp handles.inline.hpp -nativeLookup.cpp hpi.hpp -nativeLookup.cpp instanceKlass.hpp -nativeLookup.cpp javaCalls.hpp -nativeLookup.cpp javaClasses.hpp -nativeLookup.cpp jvm_misc.hpp -nativeLookup.cpp methodOop.hpp -nativeLookup.cpp nativeLookup.hpp -nativeLookup.cpp oop.inline.hpp -nativeLookup.cpp oopFactory.hpp -nativeLookup.cpp os_.inline.hpp -nativeLookup.cpp resourceArea.hpp -nativeLookup.cpp sharedRuntime.hpp -nativeLookup.cpp signature.hpp -nativeLookup.cpp symbolOop.hpp -nativeLookup.cpp systemDictionary.hpp -nativeLookup.cpp universe.inline.hpp -nativeLookup.cpp vmSymbols.hpp - -nativeLookup.hpp handles.hpp -nativeLookup.hpp top.hpp - -nmethod.cpp abstractCompiler.hpp -nmethod.cpp bytecode.hpp -nmethod.cpp codeCache.hpp -nmethod.cpp compileLog.hpp -nmethod.cpp compiledIC.hpp -nmethod.cpp compilerOracle.hpp -nmethod.cpp disassembler.hpp -nmethod.cpp dtrace.hpp -nmethod.cpp events.hpp -nmethod.cpp jvmtiRedefineClassesTrace.hpp -nmethod.cpp methodDataOop.hpp -nmethod.cpp nmethod.hpp -nmethod.cpp scopeDesc.hpp -nmethod.cpp sharedRuntime.hpp -nmethod.cpp sweeper.hpp -nmethod.cpp xmlstream.hpp - -nmethod.hpp codeBlob.hpp -nmethod.hpp pcDesc.hpp - -numberSeq.cpp debug.hpp -numberSeq.cpp numberSeq.hpp -numberSeq.cpp globalDefinitions.hpp -numberSeq.cpp allocation.inline.hpp - -objArrayKlass.cpp collectedHeap.inline.hpp -objArrayKlass.cpp copy.hpp -objArrayKlass.cpp genOopClosures.inline.hpp -objArrayKlass.cpp handles.inline.hpp -objArrayKlass.cpp instanceKlass.hpp -objArrayKlass.cpp markSweep.inline.hpp -objArrayKlass.cpp mutexLocker.hpp -objArrayKlass.cpp objArrayKlass.hpp -objArrayKlass.cpp objArrayKlass.inline.hpp -objArrayKlass.cpp objArrayKlassKlass.hpp -objArrayKlass.cpp objArrayOop.hpp -objArrayKlass.cpp oop.inline.hpp -objArrayKlass.cpp oop.inline2.hpp -objArrayKlass.cpp resourceArea.hpp -objArrayKlass.cpp symbolOop.hpp -objArrayKlass.cpp systemDictionary.hpp -objArrayKlass.cpp universe.inline.hpp -objArrayKlass.cpp vmSymbols.hpp - -objArrayKlass.hpp arrayKlass.hpp -objArrayKlass.hpp instanceKlass.hpp -objArrayKlass.hpp specialized_oop_closures.hpp - -objArrayKlass.inline.hpp objArrayKlass.hpp - -objArrayKlassKlass.cpp collectedHeap.inline.hpp -objArrayKlassKlass.cpp instanceKlass.hpp -objArrayKlassKlass.cpp javaClasses.hpp -objArrayKlassKlass.cpp markSweep.inline.hpp -objArrayKlassKlass.cpp objArrayKlassKlass.hpp -objArrayKlassKlass.cpp oop.inline.hpp -objArrayKlassKlass.cpp oop.inline2.hpp -objArrayKlassKlass.cpp systemDictionary.hpp - -objArrayKlassKlass.hpp arrayKlassKlass.hpp -objArrayKlassKlass.hpp objArrayKlass.hpp - -objArrayOop.cpp objArrayKlass.hpp -objArrayOop.cpp objArrayOop.hpp -objArrayOop.cpp oop.inline.hpp - -objArrayOop.hpp arrayOop.hpp - -objectMonitor.cpp dtrace.hpp -objectMonitor.cpp handles.inline.hpp -objectMonitor.cpp interfaceSupport.hpp -objectMonitor.cpp markOop.hpp -objectMonitor.cpp mutexLocker.hpp -objectMonitor.cpp objectMonitor.hpp -objectMonitor.cpp objectMonitor.inline.hpp -objectMonitor.cpp oop.inline.hpp -objectMonitor.cpp osThread.hpp -objectMonitor.cpp os_.inline.hpp -objectMonitor.cpp preserveException.hpp -objectMonitor.cpp resourceArea.hpp -objectMonitor.cpp stubRoutines.hpp -objectMonitor.cpp thread.hpp -objectMonitor.cpp thread_.inline.hpp -objectMonitor.cpp threadService.hpp -objectMonitor.cpp vmSymbols.hpp - -objectMonitor.hpp os.hpp -objectMonitor.hpp perfData.hpp - -oop.cpp copy.hpp -oop.cpp handles.inline.hpp -oop.cpp javaClasses.hpp -oop.cpp oop.inline.hpp -oop.cpp thread_.inline.hpp - -oop.hpp iterator.hpp -oop.hpp memRegion.hpp -oop.hpp specialized_oop_closures.hpp -oop.hpp top.hpp - -oop.inline.hpp ageTable.hpp -oop.inline.hpp arrayKlass.hpp -oop.inline.hpp arrayOop.hpp -oop.inline.hpp atomic.hpp -oop.inline.hpp barrierSet.inline.hpp -oop.inline.hpp bytes_.hpp -oop.inline.hpp cardTableModRefBS.hpp -oop.inline.hpp collectedHeap.inline.hpp -oop.inline.hpp compactingPermGenGen.hpp -oop.inline.hpp genCollectedHeap.hpp -oop.inline.hpp generation.hpp -oop.inline.hpp klass.hpp -oop.inline.hpp klassOop.hpp -oop.inline.hpp markOop.inline.hpp -oop.inline.hpp markSweep.inline.hpp -oop.inline.hpp oop.hpp -oop.inline.hpp os.hpp -oop.inline.hpp permGen.hpp -oop.inline.hpp specialized_oop_closures.hpp - -oop.inline2.hpp collectedHeap.hpp -oop.inline2.hpp generation.hpp -oop.inline2.hpp oop.hpp -oop.inline2.hpp permGen.hpp -oop.inline2.hpp universe.hpp - -oopFactory.cpp collectedHeap.inline.hpp -oopFactory.cpp compiledICHolderKlass.hpp -oopFactory.cpp constMethodKlass.hpp -oopFactory.cpp constantPoolKlass.hpp -oopFactory.cpp cpCacheKlass.hpp -oopFactory.cpp instanceKlass.hpp -oopFactory.cpp instanceKlassKlass.hpp -oopFactory.cpp instanceOop.hpp -oopFactory.cpp javaClasses.hpp -oopFactory.cpp klassKlass.hpp -oopFactory.cpp klassOop.hpp -oopFactory.cpp methodDataKlass.hpp -oopFactory.cpp methodKlass.hpp -oopFactory.cpp objArrayOop.hpp -oopFactory.cpp oop.inline.hpp -oopFactory.cpp oopFactory.hpp -oopFactory.cpp resourceArea.hpp -oopFactory.cpp symbolTable.hpp -oopFactory.cpp systemDictionary.hpp -oopFactory.cpp universe.inline.hpp -oopFactory.cpp vmSymbols.hpp - -oopFactory.hpp growableArray.hpp -oopFactory.hpp klassOop.hpp -oopFactory.hpp objArrayKlass.hpp -oopFactory.hpp oop.hpp -oopFactory.hpp symbolTable.hpp -oopFactory.hpp systemDictionary.hpp -oopFactory.hpp typeArrayKlass.hpp -oopFactory.hpp universe.hpp - -oopMap.cpp allocation.inline.hpp -oopMap.cpp codeBlob.hpp -oopMap.cpp codeCache.hpp -oopMap.cpp collectedHeap.hpp -oopMap.cpp frame.inline.hpp -oopMap.cpp nmethod.hpp -oopMap.cpp oopMap.hpp -oopMap.cpp resourceArea.hpp -oopMap.cpp scopeDesc.hpp -oopMap.cpp signature.hpp - -oopMap.hpp allocation.hpp -oopMapCache.cpp jvmtiRedefineClassesTrace.hpp -oopMap.hpp compressedStream.hpp -oopMap.hpp growableArray.hpp -oopMap.hpp vmreg.hpp - -oopMapCache.cpp allocation.inline.hpp -oopMapCache.cpp jvmtiRedefineClassesTrace.hpp -oopMapCache.cpp handles.inline.hpp -oopMapCache.cpp oop.inline.hpp -oopMapCache.cpp oopMapCache.hpp -oopMapCache.cpp resourceArea.hpp -oopMapCache.cpp signature.hpp - -oopMapCache.hpp generateOopMap.hpp - -oopRecorder.cpp allocation.inline.hpp -oopRecorder.cpp oop.inline.hpp -oopRecorder.cpp oopRecorder.hpp - -oopRecorder.hpp growableArray.hpp -oopRecorder.hpp handles.hpp - -oopsHierarchy.cpp collectedHeap.hpp -oopsHierarchy.cpp collectedHeap.inline.hpp -oopsHierarchy.cpp globalDefinitions.hpp -oopsHierarchy.cpp oopsHierarchy.hpp -oopsHierarchy.cpp thread.hpp -oopsHierarchy.cpp thread_.inline.hpp - -orderAccess.cpp orderAccess.hpp -orderAccess.cpp stubRoutines.hpp -orderAccess.cpp thread.hpp - -orderAccess.hpp allocation.hpp -orderAccess.hpp os.hpp - -orderAccess_.inline.hpp orderAccess.hpp -orderAccess_.inline.hpp vm_version_.hpp - -os.cpp allocation.inline.hpp -os.cpp arguments.hpp -os.cpp attachListener.hpp -os.cpp classLoader.hpp -os.cpp defaultStream.hpp -os.cpp events.hpp -os.cpp frame.inline.hpp -os.cpp hpi.hpp -os.cpp icBuffer.hpp -os.cpp interfaceSupport.hpp -os.cpp interpreter.hpp -os.cpp java.hpp -os.cpp javaCalls.hpp -os.cpp javaClasses.hpp -os.cpp jvm.h -os.cpp jvm_misc.hpp -os.cpp mutexLocker.hpp -os.cpp oop.inline.hpp -os.cpp os.hpp -os.cpp os_.inline.hpp -os.cpp privilegedStack.hpp -os.cpp stubRoutines.hpp -os.cpp systemDictionary.hpp -os.cpp threadService.hpp -os.cpp thread_.inline.hpp -os.cpp vmGCOperations.hpp -os.cpp vmSymbols.hpp -os.cpp vtableStubs.hpp - -os.hpp atomic.hpp -os.hpp extendedPC.hpp -os.hpp handles.hpp -os.hpp jvmti.h -os.hpp top.hpp - -os_.cpp allocation.inline.hpp -os_.cpp arguments.hpp -os_.cpp assembler_.inline.hpp -os_.cpp classLoader.hpp -os_.cpp events.hpp -os_.cpp extendedPC.hpp -os_.cpp frame.inline.hpp -os_.cpp hpi.hpp -os_.cpp icBuffer.hpp -os_.cpp interfaceSupport.hpp -os_.cpp interpreter.hpp -os_.cpp java.hpp -os_.cpp javaCalls.hpp -os_.cpp jniFastGetField.hpp -os_.cpp jvm.h -os_.cpp jvm_.h -os_.cpp jvm_misc.hpp -os_.cpp mutexLocker.hpp -os_.cpp mutex_.inline.hpp -os_.cpp nativeInst_.hpp -os_.cpp no_precompiled_headers -os_.cpp osThread.hpp -os_.cpp os_share_.hpp -os_.cpp sharedRuntime.hpp -os_.cpp stubRoutines.hpp -os_.cpp systemDictionary.hpp -os_.cpp thread_.inline.hpp -os_.cpp timer.hpp -os_.cpp vmError.hpp -os_.cpp vmSymbols.hpp -os_.cpp vtableStubs.hpp - -os_.hpp generate_platform_dependent_include - -os_.cpp allocation.inline.hpp -os_.cpp arguments.hpp -os_.cpp assembler_.inline.hpp -os_.cpp attachListener.hpp -os_.cpp classLoader.hpp -os_.cpp compileBroker.hpp -os_.cpp defaultStream.hpp -os_.cpp events.hpp -os_.cpp extendedPC.hpp -os_.cpp filemap.hpp -os_.cpp globals.hpp -os_.cpp growableArray.hpp -os_.cpp hpi.hpp -os_.cpp icBuffer.hpp -os_.cpp interfaceSupport.hpp -os_.cpp interpreter.hpp -os_.cpp java.hpp -os_.cpp javaCalls.hpp -os_.cpp jniFastGetField.hpp -os_.cpp jvm.h -os_.cpp jvm_.h -os_.cpp jvm_misc.hpp -os_.cpp mutexLocker.hpp -os_.cpp mutex_.inline.hpp -os_.cpp nativeInst_.hpp -os_.cpp no_precompiled_headers -os_.cpp objectMonitor.hpp -os_.cpp oop.inline.hpp -os_.cpp osThread.hpp -os_.cpp os_share_.hpp -os_.cpp perfMemory.hpp -os_.cpp runtimeService.hpp -os_.cpp sharedRuntime.hpp -os_.cpp statSampler.hpp -os_.cpp stubRoutines.hpp -os_.cpp systemDictionary.hpp -os_.cpp threadCritical.hpp -os_.cpp thread_.inline.hpp -os_.cpp timer.hpp -os_.cpp vmError.hpp -os_.cpp vmSymbols.hpp -os_.cpp vtableStubs.hpp - -os_.hpp generate_platform_dependent_include - -os_.inline.hpp atomic.hpp -os_.inline.hpp atomic_.inline.hpp -os_.inline.hpp orderAccess_.inline.hpp -os_.inline.hpp os.hpp - -osThread.cpp oop.inline.hpp -osThread.cpp osThread.hpp - -osThread.hpp frame.hpp -osThread.hpp handles.hpp -osThread.hpp hpi.hpp -osThread.hpp javaFrameAnchor.hpp -osThread.hpp objectMonitor.hpp -osThread.hpp top.hpp - -osThread_.cpp assembler_.inline.hpp -osThread_.cpp atomic.hpp -osThread_.cpp handles.inline.hpp -osThread_.cpp mutexLocker.hpp -osThread_.cpp no_precompiled_headers -osThread_.cpp os.hpp -osThread_.cpp osThread.hpp -osThread_.cpp safepoint.hpp -osThread_.cpp vmThread.hpp - -osThread_.hpp generate_platform_dependent_include - -ostream.cpp arguments.hpp -ostream.cpp compileLog.hpp -ostream.cpp defaultStream.hpp -ostream.cpp oop.inline.hpp -ostream.cpp os_.inline.hpp -ostream.cpp hpi.hpp -ostream.cpp hpi_.hpp -ostream.cpp ostream.hpp -ostream.cpp top.hpp -ostream.cpp xmlstream.hpp - -ostream.hpp allocation.hpp -ostream.hpp timer.hpp - -// include thread.hpp to prevent cyclic includes -park.cpp thread.hpp - -park.hpp debug.hpp -park.hpp globalDefinitions.hpp - -pcDesc.cpp debugInfoRec.hpp -pcDesc.cpp nmethod.hpp -pcDesc.cpp pcDesc.hpp -pcDesc.cpp resourceArea.hpp -pcDesc.cpp scopeDesc.hpp - -pcDesc.hpp allocation.hpp - -perf.cpp allocation.inline.hpp -perf.cpp interfaceSupport.hpp -perf.cpp jni.h -perf.cpp jvm.h -perf.cpp oop.inline.hpp -perf.cpp perfData.hpp -perf.cpp perfMemory.hpp -perf.cpp resourceArea.hpp -perf.cpp vmSymbols.hpp - -perfData.cpp exceptions.hpp -perfData.cpp globalDefinitions.hpp -perfData.cpp handles.inline.hpp -perfData.cpp java.hpp -perfData.cpp mutex.hpp -perfData.cpp mutexLocker.hpp -perfData.cpp oop.inline.hpp -perfData.cpp os.hpp -perfData.cpp perfData.hpp -perfData.cpp vmSymbols.hpp - -perfData.hpp allocation.inline.hpp -perfData.hpp growableArray.hpp -perfData.hpp perfMemory.hpp -perfData.hpp timer.hpp - -perfMemory.cpp allocation.inline.hpp -perfMemory.cpp arguments.hpp -perfMemory.cpp globalDefinitions.hpp -perfMemory.cpp java.hpp -perfMemory.cpp mutex.hpp -perfMemory.cpp mutexLocker.hpp -perfMemory.cpp os.hpp -perfMemory.cpp perfData.hpp -perfMemory.cpp perfMemory.hpp -perfMemory.cpp statSampler.hpp - -perfMemory.hpp exceptions.hpp - -perfMemory_.cpp allocation.inline.hpp -perfMemory_.cpp exceptions.hpp -perfMemory_.cpp handles.inline.hpp -perfMemory_.cpp oop.inline.hpp -perfMemory_.cpp os_.inline.hpp -perfMemory_.cpp perfMemory.hpp -perfMemory_.cpp resourceArea.hpp -perfMemory_.cpp vmSymbols.hpp - -permGen.cpp blockOffsetTable.inline.hpp -permGen.cpp cSpaceCounters.hpp -permGen.cpp collectedHeap.inline.hpp -permGen.cpp compactPermGen.hpp -permGen.cpp genCollectedHeap.hpp -permGen.cpp generation.inline.hpp -permGen.cpp java.hpp -permGen.cpp oop.inline.hpp -permGen.cpp permGen.hpp -permGen.cpp universe.hpp -permGen.cpp gcLocker.hpp -permGen.cpp gcLocker.inline.hpp -permGen.cpp vmGCOperations.hpp -permGen.cpp vmThread.hpp - -permGen.hpp gcCause.hpp -permGen.hpp generation.hpp -permGen.hpp handles.hpp -permGen.hpp iterator.hpp -permGen.hpp mutexLocker.hpp -permGen.hpp virtualspace.hpp - -placeholders.cpp fieldType.hpp -placeholders.cpp hashtable.inline.hpp -placeholders.cpp oop.inline.hpp -placeholders.cpp placeholders.hpp -placeholders.cpp systemDictionary.hpp - -placeholders.hpp hashtable.hpp - -prefetch.hpp allocation.hpp - -prefetch_.inline.hpp prefetch.hpp - -preserveException.cpp handles.inline.hpp -preserveException.cpp preserveException.hpp - -preserveException.hpp handles.hpp -preserveException.hpp thread_.inline.hpp - -privilegedStack.cpp allocation.inline.hpp -privilegedStack.cpp instanceKlass.hpp -privilegedStack.cpp methodOop.hpp -privilegedStack.cpp oop.inline.hpp -privilegedStack.cpp privilegedStack.hpp -privilegedStack.cpp vframe.hpp - -privilegedStack.hpp allocation.hpp -privilegedStack.hpp growableArray.hpp -privilegedStack.hpp oopsHierarchy.hpp -privilegedStack.hpp vframe.hpp - -referencePolicy.cpp arguments.hpp -referencePolicy.cpp globals.hpp -referencePolicy.cpp javaClasses.hpp -referencePolicy.cpp referencePolicy.hpp -referencePolicy.cpp universe.hpp - -referenceProcessor.cpp collectedHeap.hpp -referenceProcessor.cpp collectedHeap.inline.hpp -referenceProcessor.cpp java.hpp -referenceProcessor.cpp javaClasses.hpp -referenceProcessor.cpp jniHandles.hpp -referenceProcessor.cpp oop.inline.hpp -referenceProcessor.cpp referencePolicy.hpp -referenceProcessor.cpp referenceProcessor.hpp -referenceProcessor.cpp systemDictionary.hpp - -referenceProcessor.hpp instanceRefKlass.hpp -referenceProcessor.hpp referencePolicy.hpp - -reflection.cpp arguments.hpp -reflection.cpp handles.inline.hpp -reflection.cpp instanceKlass.hpp -reflection.cpp javaCalls.hpp -reflection.cpp javaClasses.hpp -reflection.cpp jvm.h -reflection.cpp linkResolver.hpp -reflection.cpp methodHandleWalk.hpp -reflection.cpp objArrayKlass.hpp -reflection.cpp objArrayOop.hpp -reflection.cpp oopFactory.hpp -reflection.cpp reflection.hpp -reflection.cpp reflectionUtils.hpp -reflection.cpp resourceArea.hpp -reflection.cpp signature.hpp -reflection.cpp symbolTable.hpp -reflection.cpp systemDictionary.hpp -reflection.cpp universe.inline.hpp -reflection.cpp verifier.hpp -reflection.cpp vframe.hpp -reflection.cpp vmSymbols.hpp - -reflection.hpp accessFlags.hpp -reflection.hpp fieldDescriptor.hpp -reflection.hpp growableArray.hpp -reflection.hpp oop.hpp -reflection.hpp reflectionCompat.hpp - -reflectionUtils.cpp javaClasses.hpp -reflectionUtils.cpp reflectionUtils.hpp -reflectionUtils.cpp universe.inline.hpp - -reflectionUtils.hpp accessFlags.hpp -reflectionUtils.hpp allocation.hpp -reflectionUtils.hpp globalDefinitions.hpp -reflectionUtils.hpp handles.inline.hpp -reflectionUtils.hpp instanceKlass.hpp -reflectionUtils.hpp objArrayOop.hpp -reflectionUtils.hpp oopsHierarchy.hpp -reflectionUtils.hpp reflection.hpp - -register.cpp register.hpp - -register.hpp top.hpp - -register_.cpp register_.hpp - -register_.hpp register.hpp -register_.hpp vm_version_.hpp - -registerMap.hpp globalDefinitions.hpp -registerMap.hpp register_.hpp -registerMap.hpp vmreg.hpp - -registerMap_.hpp generate_platform_dependent_include - -register_definitions_.cpp assembler.hpp -register_definitions_.cpp interp_masm_.hpp -register_definitions_.cpp register.hpp -register_definitions_.cpp register_.hpp - -relocInfo.cpp assembler_.inline.hpp -relocInfo.cpp compiledIC.hpp -relocInfo.cpp copy.hpp -relocInfo.cpp nativeInst_.hpp -relocInfo.cpp nmethod.hpp -relocInfo.cpp relocInfo.hpp -relocInfo.cpp resourceArea.hpp -relocInfo.cpp stubCodeGenerator.hpp - -relocInfo.hpp allocation.hpp -relocInfo.hpp top.hpp - -relocInfo_.cpp assembler.inline.hpp -relocInfo_.cpp assembler_.inline.hpp -relocInfo_.cpp nativeInst_.hpp -relocInfo_.cpp oop.inline.hpp -relocInfo_.cpp relocInfo.hpp -relocInfo_.cpp safepoint.hpp - -relocInfo_.hpp generate_platform_dependent_include - -relocator.cpp bytecodes.hpp -relocator.cpp handles.inline.hpp -relocator.cpp oop.inline.hpp -relocator.cpp oopFactory.hpp -relocator.cpp relocator.hpp -relocator.cpp stackMapTableFormat.hpp -relocator.cpp universe.inline.hpp - -relocator.hpp bytecodes.hpp -relocator.hpp bytes_.hpp -relocator.hpp methodOop.hpp - -resolutionErrors.cpp handles.inline.hpp -resolutionErrors.cpp hashtable.inline.hpp -resolutionErrors.cpp oop.inline.hpp -resolutionErrors.cpp resolutionErrors.hpp -resolutionErrors.cpp resourceArea.hpp -resolutionErrors.cpp safepoint.hpp - -resolutionErrors.hpp constantPoolOop.hpp -resolutionErrors.hpp hashtable.hpp - -resourceArea.cpp allocation.inline.hpp -resourceArea.cpp mutexLocker.hpp -resourceArea.cpp resourceArea.hpp -resourceArea.cpp thread_.inline.hpp - -resourceArea.hpp allocation.hpp -resourceArea.hpp thread_.inline.hpp - -// restore is jck optional, put cpp deps in includeDB_features - -rewriter.cpp bytecodes.hpp -rewriter.cpp gcLocker.hpp -rewriter.cpp generateOopMap.hpp -rewriter.cpp interpreter.hpp -rewriter.cpp methodComparator.hpp -rewriter.cpp objArrayOop.hpp -rewriter.cpp oop.inline.hpp -rewriter.cpp oopFactory.hpp -rewriter.cpp resourceArea.hpp -rewriter.cpp rewriter.hpp - -rewriter.hpp allocation.hpp -rewriter.hpp growableArray.hpp -rewriter.hpp handles.inline.hpp - -rframe.cpp frame.inline.hpp -rframe.cpp interpreter.hpp -rframe.cpp oop.inline.hpp -rframe.cpp rframe.hpp -rframe.cpp symbolOop.hpp -rframe.cpp vframe.hpp -rframe.cpp vframe_hp.hpp - -rframe.hpp allocation.hpp -rframe.hpp frame.inline.hpp - -runtimeService.cpp attachListener.hpp -runtimeService.cpp classLoader.hpp -runtimeService.cpp dtrace.hpp -runtimeService.cpp exceptions.hpp -runtimeService.cpp management.hpp -runtimeService.cpp runtimeService.hpp - -runtimeService.hpp perfData.hpp -runtimeService.hpp timer.hpp - -safepoint.cpp codeCache.hpp -safepoint.cpp collectedHeap.hpp -safepoint.cpp compilationPolicy.hpp -safepoint.cpp deoptimization.hpp -safepoint.cpp events.hpp -safepoint.cpp frame.inline.hpp -safepoint.cpp icBuffer.hpp -safepoint.cpp interfaceSupport.hpp -safepoint.cpp interpreter.hpp -safepoint.cpp mutexLocker.hpp -safepoint.cpp nativeInst_.hpp -safepoint.cpp nmethod.hpp -safepoint.cpp oop.inline.hpp -safepoint.cpp osThread.hpp -safepoint.cpp pcDesc.hpp -safepoint.cpp resourceArea.hpp -safepoint.cpp runtimeService.hpp -safepoint.cpp safepoint.hpp -safepoint.cpp scopeDesc.hpp -safepoint.cpp signature.hpp -safepoint.cpp stubCodeGenerator.hpp -safepoint.cpp stubRoutines.hpp -safepoint.cpp sweeper.hpp -safepoint.cpp symbolOop.hpp -safepoint.cpp synchronizer.hpp -safepoint.cpp systemDictionary.hpp -safepoint.cpp thread_.inline.hpp -safepoint.cpp universe.inline.hpp -safepoint.cpp vmreg_.inline.hpp - -safepoint.hpp allocation.hpp -safepoint.hpp assembler.hpp -safepoint.hpp extendedPC.hpp -safepoint.hpp nmethod.hpp -safepoint.hpp os.hpp -safepoint.hpp ostream.hpp - -scopeDesc.cpp debugInfoRec.hpp -scopeDesc.cpp handles.inline.hpp -scopeDesc.cpp oop.inline.hpp -scopeDesc.cpp pcDesc.hpp -scopeDesc.cpp resourceArea.hpp -scopeDesc.cpp scopeDesc.hpp - -scopeDesc.hpp debugInfo.hpp -scopeDesc.hpp growableArray.hpp -scopeDesc.hpp methodOop.hpp -scopeDesc.hpp pcDesc.hpp - -// serialize is jck optional, put cpp deps in includeDB_features - -serviceUtil.hpp objArrayOop.hpp -serviceUtil.hpp systemDictionary.hpp - -sharedHeap.cpp codeCache.hpp -sharedHeap.cpp collectedHeap.inline.hpp -sharedHeap.cpp copy.hpp -sharedHeap.cpp fprofiler.hpp -sharedHeap.cpp java.hpp -sharedHeap.cpp management.hpp -sharedHeap.cpp oop.inline.hpp -sharedHeap.cpp sharedHeap.hpp -sharedHeap.cpp symbolTable.hpp -sharedHeap.cpp systemDictionary.hpp -sharedHeap.cpp workgroup.hpp - -sharedHeap.hpp collectedHeap.hpp -sharedHeap.hpp generation.hpp -sharedHeap.hpp permGen.hpp - -sharedRuntime.cpp abstractCompiler.hpp -sharedRuntime.cpp arguments.hpp -sharedRuntime.cpp biasedLocking.hpp -sharedRuntime.cpp compileBroker.hpp -sharedRuntime.cpp compiledIC.hpp -sharedRuntime.cpp compilerOracle.hpp -sharedRuntime.cpp copy.hpp -sharedRuntime.cpp dtrace.hpp -sharedRuntime.cpp events.hpp -sharedRuntime.cpp forte.hpp -sharedRuntime.cpp gcLocker.inline.hpp -sharedRuntime.cpp handles.inline.hpp -sharedRuntime.cpp hashtable.inline.hpp -sharedRuntime.cpp init.hpp -sharedRuntime.cpp interfaceSupport.hpp -sharedRuntime.cpp interpreterRuntime.hpp -sharedRuntime.cpp interpreter.hpp -sharedRuntime.cpp javaCalls.hpp -sharedRuntime.cpp jvmtiExport.hpp -sharedRuntime.cpp methodHandles.hpp -sharedRuntime.cpp jvmtiRedefineClassesTrace.hpp -sharedRuntime.cpp nativeInst_.hpp -sharedRuntime.cpp nativeLookup.hpp -sharedRuntime.cpp oop.inline.hpp -sharedRuntime.cpp scopeDesc.hpp -sharedRuntime.cpp sharedRuntime.hpp -sharedRuntime.cpp stubRoutines.hpp -sharedRuntime.cpp systemDictionary.hpp -sharedRuntime.cpp universe.inline.hpp -sharedRuntime.cpp vframe.hpp -sharedRuntime.cpp vframeArray.hpp -sharedRuntime.cpp vmSymbols.hpp -sharedRuntime.cpp vmreg_.inline.hpp -sharedRuntime.cpp vtableStubs.hpp -sharedRuntime.cpp xmlstream.hpp - -sharedRuntime.hpp allocation.hpp -sharedRuntime.hpp bytecodeHistogram.hpp -sharedRuntime.hpp bytecodeTracer.hpp -sharedRuntime.hpp hashtable.hpp -sharedRuntime.hpp linkResolver.hpp -sharedRuntime.hpp resourceArea.hpp -sharedRuntime.hpp threadLocalStorage.hpp - -sharedRuntime_.cpp assembler.hpp -sharedRuntime_.cpp assembler_.inline.hpp -sharedRuntime_.cpp compiledICHolderOop.hpp -sharedRuntime_.cpp debugInfoRec.hpp -sharedRuntime_.cpp icBuffer.hpp -sharedRuntime_.cpp interpreter.hpp -sharedRuntime_.cpp jvmtiRedefineClassesTrace.hpp -sharedRuntime_.cpp sharedRuntime.hpp -sharedRuntime_.cpp vframeArray.hpp -sharedRuntime_.cpp vmreg_.inline.hpp -sharedRuntime_.cpp vtableStubs.hpp - -sharedRuntimeTrans.cpp interfaceSupport.hpp -sharedRuntimeTrans.cpp jni.h -sharedRuntimeTrans.cpp sharedRuntime.hpp - -sharedRuntimeTrig.cpp interfaceSupport.hpp -sharedRuntimeTrig.cpp jni.h -sharedRuntimeTrig.cpp sharedRuntime.hpp - -signature.cpp instanceKlass.hpp -signature.cpp oop.inline.hpp -signature.cpp oopFactory.hpp -signature.cpp signature.hpp -signature.cpp symbolOop.hpp -signature.cpp symbolTable.hpp -signature.cpp systemDictionary.hpp -signature.cpp typeArrayKlass.hpp - -signature.hpp allocation.hpp -signature.hpp methodOop.hpp -signature.hpp top.hpp - -simpleThresholdPolicy.cpp arguments.hpp -simpleThresholdPolicy.cpp compileBroker.hpp -simpleThresholdPolicy.cpp resourceArea.hpp -simpleThresholdPolicy.cpp simpleThresholdPolicy.hpp -simpleThresholdPolicy.cpp simpleThresholdPolicy.inline.hpp - -simpleThresholdPolicy.hpp compilationPolicy.hpp -simpleThresholdPolicy.hpp globalDefinitions.hpp -simpleThresholdPolicy.hpp methodDataOop.hpp -simpleThresholdPolicy.hpp nmethod.hpp - -sizes.cpp sizes.hpp - -sizes.hpp allocation.hpp -sizes.hpp globalDefinitions.hpp - -space.cpp blockOffsetTable.inline.hpp -space.cpp copy.hpp -space.cpp defNewGeneration.hpp -space.cpp genCollectedHeap.hpp -space.cpp globalDefinitions.hpp -space.cpp java.hpp -space.cpp liveRange.hpp -space.cpp markSweep.hpp -space.cpp oop.inline.hpp -space.cpp oop.inline2.hpp -space.cpp safepoint.hpp -space.cpp space.hpp -space.cpp space.inline.hpp -space.cpp spaceDecorator.hpp -space.cpp systemDictionary.hpp -space.cpp universe.inline.hpp -space.cpp vmSymbols.hpp - -space.hpp allocation.hpp -space.hpp blockOffsetTable.hpp -space.hpp cardTableModRefBS.hpp -space.hpp iterator.hpp -space.hpp markOop.hpp -space.hpp memRegion.hpp -space.hpp mutexLocker.hpp -space.hpp os_.inline.hpp -space.hpp prefetch.hpp -space.hpp watermark.hpp -space.hpp workgroup.hpp - -space.inline.hpp collectedHeap.hpp -space.inline.hpp safepoint.hpp -space.inline.hpp space.hpp -space.inline.hpp universe.hpp - -spaceDecorator.hpp globalDefinitions.hpp -spaceDecorator.hpp mutableSpace.hpp -spaceDecorator.hpp space.hpp - -spaceDecorator.cpp copy.hpp -spaceDecorator.cpp spaceDecorator.hpp -spaceDecorator.cpp space.inline.hpp - -specialized_oop_closures.cpp ostream.hpp -specialized_oop_closures.cpp specialized_oop_closures.hpp - -specialized_oop_closures.hpp atomic.hpp - -stack.hpp allocation.inline.hpp - -stack.inline.hpp stack.hpp - -stackMapFrame.cpp globalDefinitions.hpp -stackMapFrame.cpp handles.inline.hpp -stackMapFrame.cpp oop.inline.hpp -stackMapFrame.cpp resourceArea.hpp -stackMapFrame.cpp stackMapFrame.hpp -stackMapFrame.cpp symbolOop.hpp -stackMapFrame.cpp verifier.hpp - -stackMapFrame.hpp exceptions.hpp -stackMapFrame.hpp handles.hpp -stackMapFrame.hpp methodOop.hpp -stackMapFrame.hpp signature.hpp -stackMapFrame.hpp verificationType.hpp -stackMapFrame.hpp verifier.hpp - -stackMapTable.cpp fieldType.hpp -stackMapTable.cpp handles.inline.hpp -stackMapTable.cpp oop.inline.hpp -stackMapTable.cpp resourceArea.hpp -stackMapTable.cpp stackMapTable.hpp -stackMapTable.cpp verifier.hpp - -stackMapTable.hpp allocation.hpp -stackMapTable.hpp bytes_.hpp -stackMapTable.hpp constantPoolOop.hpp -stackMapTable.hpp globalDefinitions.hpp -stackMapTable.hpp methodOop.hpp -stackMapTable.hpp stackMapFrame.hpp - -stackMapTableFormat.hpp verificationType.hpp - -stackValue.cpp debugInfo.hpp -stackValue.cpp frame.inline.hpp -stackValue.cpp handles.inline.hpp -stackValue.cpp oop.inline.hpp -stackValue.cpp stackValue.hpp - -stackValue.hpp handles.hpp -stackValue.hpp location.hpp -stackValue.hpp top.hpp - -stackValueCollection.cpp jniTypes_.hpp -stackValueCollection.cpp stackValueCollection.hpp - -stackValueCollection.hpp allocation.hpp -stackValueCollection.hpp growableArray.hpp -stackValueCollection.hpp stackValue.hpp - -statSampler.cpp allocation.inline.hpp -statSampler.cpp arguments.hpp -statSampler.cpp java.hpp -statSampler.cpp javaCalls.hpp -statSampler.cpp oop.inline.hpp -statSampler.cpp os.hpp -statSampler.cpp resourceArea.hpp -statSampler.cpp statSampler.hpp -statSampler.cpp systemDictionary.hpp -statSampler.cpp vmSymbols.hpp -statSampler.cpp vm_version_.hpp - -statSampler.hpp perfData.hpp -statSampler.hpp task.hpp - -stubCodeGenerator.cpp assembler_.inline.hpp -stubCodeGenerator.cpp disassembler.hpp -stubCodeGenerator.cpp forte.hpp -stubCodeGenerator.cpp oop.inline.hpp -stubCodeGenerator.cpp stubCodeGenerator.hpp - -stubCodeGenerator.hpp allocation.hpp -stubCodeGenerator.hpp assembler.hpp - -stubGenerator_.cpp assembler.hpp -stubGenerator_.cpp assembler_.inline.hpp -stubGenerator_.cpp frame.inline.hpp -stubGenerator_.cpp handles.inline.hpp -stubGenerator_.cpp instanceOop.hpp -stubGenerator_.cpp interpreter.hpp -stubGenerator_.cpp methodHandles.hpp -stubGenerator_.cpp methodOop.hpp -stubGenerator_.cpp nativeInst_.hpp -stubGenerator_.cpp objArrayKlass.hpp -stubGenerator_.cpp oop.inline.hpp -stubGenerator_.cpp sharedRuntime.hpp -stubGenerator_.cpp stubCodeGenerator.hpp -stubGenerator_.cpp stubRoutines.hpp -stubGenerator_.cpp thread_.inline.hpp -stubGenerator_.cpp top.hpp - -stubRoutines.cpp codeBuffer.hpp -stubRoutines.cpp copy.hpp -stubRoutines.cpp interfaceSupport.hpp -stubRoutines.cpp oop.inline.hpp -stubRoutines.cpp resourceArea.hpp -stubRoutines.cpp sharedRuntime.hpp -stubRoutines.cpp stubRoutines.hpp -stubRoutines.cpp timer.hpp - -stubRoutines.hpp allocation.hpp -stubRoutines.hpp codeBlob.hpp -stubRoutines.hpp frame.hpp -stubRoutines.hpp mutexLocker.hpp -stubRoutines.hpp nativeInst_.hpp -stubRoutines.hpp stubCodeGenerator.hpp -stubRoutines.hpp top.hpp - -stubRoutines_.cpp deoptimization.hpp -stubRoutines_.cpp frame.inline.hpp -stubRoutines_.cpp stubRoutines.hpp -stubRoutines_.cpp thread_.inline.hpp - -stubRoutines_.hpp generate_platform_dependent_include - -stubRoutines_.cpp os.hpp -stubRoutines_.cpp stubRoutines.hpp - -stubs.cpp allocation.inline.hpp -stubs.cpp codeBlob.hpp -stubs.cpp mutexLocker.hpp -stubs.cpp oop.inline.hpp -stubs.cpp stubs.hpp - -stubs.hpp allocation.hpp -stubs.hpp os_.inline.hpp - -sweeper.cpp atomic.hpp -sweeper.cpp codeCache.hpp -sweeper.cpp compilationPolicy.hpp -sweeper.cpp compileBroker.hpp -sweeper.cpp events.hpp -sweeper.cpp methodOop.hpp -sweeper.cpp mutexLocker.hpp -sweeper.cpp nmethod.hpp -sweeper.cpp os.hpp -sweeper.cpp resourceArea.hpp -sweeper.cpp sweeper.hpp -sweeper.cpp vm_operations.hpp -sweeper.cpp xmlstream.hpp - -symbolKlass.cpp gcLocker.hpp -symbolKlass.cpp handles.inline.hpp -symbolKlass.cpp oop.inline.hpp -symbolKlass.cpp symbolKlass.hpp -symbolKlass.cpp symbolOop.hpp -symbolKlass.cpp symbolTable.hpp - -symbolKlass.hpp typeArrayKlass.hpp - -symbolOop.cpp oop.inline.hpp -symbolOop.cpp symbolOop.hpp - -symbolOop.hpp typeArrayOop.hpp -symbolOop.hpp utf8.hpp - -symbolTable.cpp collectedHeap.inline.hpp -symbolTable.cpp filemap.hpp -symbolTable.cpp gcLocker.inline.hpp -symbolTable.cpp hashtable.inline.hpp -symbolTable.cpp javaClasses.hpp -symbolTable.cpp mutexLocker.hpp -symbolTable.cpp oop.inline.hpp -symbolTable.cpp oop.inline2.hpp -symbolTable.cpp symbolKlass.hpp -symbolTable.cpp symbolTable.hpp -symbolTable.cpp systemDictionary.hpp - -symbolTable.hpp allocation.inline.hpp -symbolTable.hpp hashtable.hpp -symbolTable.hpp symbolOop.hpp - -synchronizer.cpp biasedLocking.hpp -synchronizer.cpp dtrace.hpp -synchronizer.cpp events.hpp -synchronizer.cpp handles.inline.hpp -synchronizer.cpp interfaceSupport.hpp -synchronizer.cpp markOop.hpp -synchronizer.cpp mutexLocker.hpp -synchronizer.cpp objectMonitor.hpp -synchronizer.cpp objectMonitor.inline.hpp -synchronizer.cpp oop.inline.hpp -synchronizer.cpp osThread.hpp -synchronizer.cpp os_.inline.hpp -synchronizer.cpp preserveException.hpp -synchronizer.cpp resourceArea.hpp -synchronizer.cpp stubRoutines.hpp -synchronizer.cpp synchronizer.hpp -synchronizer.cpp thread_.inline.hpp -synchronizer.cpp vmSymbols.hpp - -synchronizer.hpp basicLock.hpp -synchronizer.hpp handles.hpp -synchronizer.hpp markOop.hpp -synchronizer.hpp perfData.hpp -synchronizer.hpp top.hpp - -systemDictionary.cpp biasedLocking.hpp -systemDictionary.cpp bytecodeStream.hpp -systemDictionary.cpp classLoadingService.hpp -systemDictionary.cpp dictionary.hpp -systemDictionary.cpp fieldType.hpp -systemDictionary.cpp gcLocker.hpp -systemDictionary.cpp handles.inline.hpp -systemDictionary.cpp instanceKlass.hpp -systemDictionary.cpp instanceRefKlass.hpp -systemDictionary.cpp interpreter.hpp -systemDictionary.cpp java.hpp -systemDictionary.cpp javaCalls.hpp -systemDictionary.cpp javaClasses.hpp -systemDictionary.cpp jvmtiEnvBase.hpp -systemDictionary.cpp klass.inline.hpp -systemDictionary.cpp loaderConstraints.hpp -systemDictionary.cpp methodDataOop.hpp -systemDictionary.cpp methodHandles.hpp -systemDictionary.cpp mutexLocker.hpp -systemDictionary.cpp objArrayKlass.hpp -systemDictionary.cpp oop.inline.hpp -systemDictionary.cpp oop.inline2.hpp -systemDictionary.cpp oopFactory.hpp -systemDictionary.cpp placeholders.hpp -systemDictionary.cpp resolutionErrors.hpp -systemDictionary.cpp signature.hpp -systemDictionary.cpp systemDictionary.hpp -systemDictionary.cpp threadService.hpp -systemDictionary.cpp typeArrayKlass.hpp -systemDictionary.cpp vmSymbols.hpp - -systemDictionary.hpp classFileStream.hpp -systemDictionary.hpp classLoader.hpp -systemDictionary.hpp hashtable.hpp -systemDictionary.hpp java.hpp -systemDictionary.hpp objArrayOop.hpp -systemDictionary.hpp reflectionUtils.hpp -systemDictionary.hpp symbolOop.hpp - -task.cpp allocation.hpp -task.cpp init.hpp -task.cpp os_.inline.hpp -task.cpp task.hpp -task.cpp thread_.inline.hpp -task.cpp timer.hpp - -task.hpp top.hpp - -taskqueue.cpp debug.hpp -taskqueue.cpp oop.inline.hpp -taskqueue.cpp os.hpp -taskqueue.cpp stack.inline.hpp -taskqueue.cpp taskqueue.hpp -taskqueue.cpp thread_.inline.hpp - -taskqueue.hpp allocation.hpp -taskqueue.hpp allocation.inline.hpp -taskqueue.hpp mutex.hpp -taskqueue.hpp orderAccess_.inline.hpp -taskqueue.hpp stack.hpp - -templateInterpreter.cpp interpreter.hpp -templateInterpreter.cpp interpreterGenerator.hpp -templateInterpreter.cpp interpreterRuntime.hpp -templateInterpreter.cpp templateTable.hpp - -templateInterpreter.hpp abstractInterpreter.hpp -templateInterpreter.hpp templateTable.hpp - -templateInterpreter_.cpp arguments.hpp -templateInterpreter_.cpp arrayOop.hpp -templateInterpreter_.cpp assembler.hpp -templateInterpreter_.cpp bytecodeHistogram.hpp -templateInterpreter_.cpp debug.hpp -templateInterpreter_.cpp deoptimization.hpp -templateInterpreter_.cpp frame.inline.hpp -templateInterpreter_.cpp interpreterRuntime.hpp -templateInterpreter_.cpp interpreter.hpp -templateInterpreter_.cpp interpreterGenerator.hpp -templateInterpreter_.cpp jvmtiExport.hpp -templateInterpreter_.cpp jvmtiThreadState.hpp -templateInterpreter_.cpp methodDataOop.hpp -templateInterpreter_.cpp methodOop.hpp -templateInterpreter_.cpp oop.inline.hpp -templateInterpreter_.cpp sharedRuntime.hpp -templateInterpreter_.cpp stubRoutines.hpp -templateInterpreter_.cpp synchronizer.hpp -templateInterpreter_.cpp templateTable.hpp -templateInterpreter_.cpp timer.hpp -templateInterpreter_.cpp vframeArray.hpp - -templateInterpreter_.hpp generate_platform_dependent_include - -templateInterpreterGenerator_.hpp generate_platform_dependent_include - -templateTable.cpp collectedHeap.hpp -templateTable.cpp templateTable.hpp -templateTable.cpp timer.hpp - -templateTable.hpp allocation.hpp -templateTable.hpp bytecodes.hpp -templateTable.hpp frame.hpp -templateTable.hpp interp_masm_.hpp - -templateTable_.cpp interpreterRuntime.hpp -templateTable_.cpp interpreter.hpp -templateTable_.cpp methodDataOop.hpp -templateTable_.cpp methodHandles.hpp -templateTable_.cpp objArrayKlass.hpp -templateTable_.cpp oop.inline.hpp -templateTable_.cpp sharedRuntime.hpp -templateTable_.cpp stubRoutines.hpp -templateTable_.cpp synchronizer.hpp -templateTable_.cpp templateTable.hpp -templateTable_.cpp universe.inline.hpp - -templateTable_.hpp generate_platform_dependent_include - -tenuredGeneration.cpp allocation.inline.hpp -tenuredGeneration.cpp blockOffsetTable.inline.hpp -tenuredGeneration.cpp collectorCounters.hpp -tenuredGeneration.cpp generation.inline.hpp -tenuredGeneration.cpp generationSpec.hpp -tenuredGeneration.cpp java.hpp -tenuredGeneration.cpp oop.inline.hpp -tenuredGeneration.cpp parGCAllocBuffer.hpp -tenuredGeneration.cpp space.hpp -tenuredGeneration.cpp tenuredGeneration.hpp - -tenuredGeneration.hpp cSpaceCounters.hpp -tenuredGeneration.hpp gcStats.hpp -tenuredGeneration.hpp generation.hpp -tenuredGeneration.hpp generationCounters.hpp - -thread.cpp aprofiler.hpp -thread.cpp arguments.hpp -thread.cpp attachListener.hpp -thread.cpp biasedLocking.hpp -thread.cpp classLoader.hpp -thread.cpp compileBroker.hpp -thread.cpp defaultStream.hpp -thread.cpp deoptimization.hpp -thread.cpp dtrace.hpp -thread.cpp events.hpp -thread.cpp fprofiler.hpp -thread.cpp frame.inline.hpp -thread.cpp gcTaskManager.hpp -thread.cpp hpi.hpp -thread.cpp init.hpp -thread.cpp instanceKlass.hpp -thread.cpp interfaceSupport.hpp -thread.cpp interpreter.hpp -thread.cpp interpreter.hpp -thread.cpp java.hpp -thread.cpp javaCalls.hpp -thread.cpp javaClasses.hpp -thread.cpp jniPeriodicChecker.hpp -thread.cpp jvm_misc.hpp -thread.cpp jvmtiExport.hpp -thread.cpp jvmtiThreadState.hpp -thread.cpp linkResolver.hpp -thread.cpp management.hpp -thread.cpp memprofiler.hpp -thread.cpp mutexLocker.hpp -thread.cpp objArrayOop.hpp -thread.cpp objectMonitor.hpp -thread.cpp oop.inline.hpp -thread.cpp oopFactory.hpp -thread.cpp osThread.hpp -thread.cpp os_.inline.hpp -thread.cpp preserveException.hpp -thread.cpp privilegedStack.hpp -thread.cpp safepoint.hpp -thread.cpp scopeDesc.hpp -thread.cpp sharedRuntime.hpp -thread.cpp statSampler.hpp -thread.cpp stubRoutines.hpp -thread.cpp symbolOop.hpp -thread.cpp systemDictionary.hpp -thread.cpp task.hpp -thread.cpp threadCritical.hpp -thread.cpp threadLocalStorage.hpp -thread.cpp threadService.hpp -thread.cpp thread_.inline.hpp -thread.cpp universe.inline.hpp -thread.cpp vframe.hpp -thread.cpp vframeArray.hpp -thread.cpp vframe_hp.hpp -thread.cpp vmSymbols.hpp -thread.cpp vmThread.hpp -thread.cpp vm_operations.hpp - -thread.hpp allocation.hpp -thread.hpp exceptions.hpp -thread.hpp frame.hpp -thread.hpp javaFrameAnchor.hpp -thread.hpp jni.h -thread.hpp jniHandles.hpp -thread.hpp jvmtiExport.hpp -thread.hpp mutexLocker.hpp -thread.hpp oop.hpp -thread.hpp os.hpp -thread.hpp osThread.hpp -thread.hpp park.hpp -thread.hpp safepoint.hpp -thread.hpp stubRoutines.hpp -thread.hpp threadLocalAllocBuffer.hpp -thread.hpp threadLocalStorage.hpp -thread.hpp top.hpp -thread.hpp unhandledOops.hpp - -thread_.cpp frame.inline.hpp -thread_.cpp thread_.inline.hpp - -thread_.hpp generate_platform_dependent_include - -thread_.inline.hpp atomic.hpp -thread_.inline.hpp atomic_.inline.hpp -thread_.inline.hpp orderAccess_.inline.hpp -thread_.inline.hpp prefetch.hpp -thread_.inline.hpp prefetch_.inline.hpp -thread_.inline.hpp thread.hpp -thread_.inline.hpp threadLocalStorage.hpp - -threadCritical.hpp allocation.hpp - -threadCritical_.cpp threadCritical.hpp -threadCritical_.cpp thread_.inline.hpp - -threadLS_.cpp threadLocalStorage.hpp -threadLS_.cpp thread_.inline.hpp - -threadLS_.hpp generate_platform_dependent_include - -threadLocalAllocBuffer.cpp copy.hpp -threadLocalAllocBuffer.cpp genCollectedHeap.hpp -threadLocalAllocBuffer.cpp oop.inline.hpp -threadLocalAllocBuffer.cpp resourceArea.hpp -threadLocalAllocBuffer.cpp threadLocalAllocBuffer.inline.hpp -threadLocalAllocBuffer.cpp thread_.inline.hpp -threadLocalAllocBuffer.cpp universe.inline.hpp - -threadLocalAllocBuffer.hpp gcUtil.hpp -threadLocalAllocBuffer.hpp perfData.hpp -threadLocalAllocBuffer.hpp typeArrayOop.hpp - -threadLocalAllocBuffer.inline.hpp atomic.hpp -threadLocalAllocBuffer.inline.hpp collectedHeap.hpp -threadLocalAllocBuffer.inline.hpp copy.hpp -threadLocalAllocBuffer.inline.hpp threadLocalAllocBuffer.hpp - -threadLocalStorage.cpp os_.inline.hpp -threadLocalStorage.cpp threadLocalStorage.hpp -threadLocalStorage.cpp thread_.inline.hpp - -threadLocalStorage.hpp gcUtil.hpp -threadLocalStorage.hpp os.hpp -threadLocalStorage.hpp top.hpp - -threadService.cpp allocation.hpp -threadService.cpp handles.inline.hpp -threadService.cpp heapInspection.hpp -threadService.cpp init.hpp -threadService.cpp instanceKlass.hpp -threadService.cpp oop.inline.hpp -threadService.cpp oopFactory.hpp -threadService.cpp systemDictionary.hpp -threadService.cpp thread.hpp -threadService.cpp threadService.hpp -threadService.cpp vframe.hpp -threadService.cpp vmThread.hpp -threadService.cpp vm_operations.hpp - -threadService.hpp handles.hpp -threadService.hpp init.hpp -threadService.hpp javaClasses.hpp -threadService.hpp jniHandles.hpp -threadService.hpp management.hpp -threadService.hpp objectMonitor.hpp -threadService.hpp objectMonitor.inline.hpp -threadService.hpp perfData.hpp -threadService.hpp serviceUtil.hpp - -timer.cpp oop.inline.hpp -timer.cpp os_.inline.hpp -timer.cpp ostream.hpp -timer.cpp timer.hpp - -timer.hpp globalDefinitions.hpp - -top.hpp debug.hpp -top.hpp exceptions.hpp -top.hpp globalDefinitions.hpp -top.hpp globals.hpp -top.hpp macros.hpp -top.hpp oopsHierarchy.hpp -top.hpp ostream.hpp -top.hpp sizes.hpp - -typeArrayKlass.cpp collectedHeap.hpp -typeArrayKlass.cpp collectedHeap.inline.hpp -typeArrayKlass.cpp handles.inline.hpp -typeArrayKlass.cpp instanceKlass.hpp -typeArrayKlass.cpp klassOop.hpp -typeArrayKlass.cpp objArrayKlassKlass.hpp -typeArrayKlass.cpp oop.inline.hpp -typeArrayKlass.cpp resourceArea.hpp -typeArrayKlass.cpp systemDictionary.hpp -typeArrayKlass.cpp typeArrayKlass.hpp -typeArrayKlass.cpp typeArrayOop.hpp -typeArrayKlass.cpp universe.hpp -typeArrayKlass.cpp universe.inline.hpp -typeArrayKlass.cpp vmSymbols.hpp - -typeArrayKlass.hpp arrayKlass.hpp - -typeArrayKlassKlass.cpp handles.inline.hpp -typeArrayKlassKlass.cpp javaClasses.hpp -typeArrayKlassKlass.cpp oop.inline.hpp -typeArrayKlassKlass.cpp typeArrayKlassKlass.hpp - -typeArrayKlassKlass.hpp arrayKlassKlass.hpp -typeArrayKlassKlass.hpp typeArrayKlass.hpp - -typeArrayOop.cpp oop.inline.hpp -typeArrayOop.cpp typeArrayOop.hpp - -typeArrayOop.hpp arrayOop.hpp -typeArrayOop.hpp orderAccess_.inline.hpp -typeArrayOop.hpp typeArrayKlass.hpp - -unhandledOops.cpp collectedHeap.hpp -unhandledOops.cpp gcLocker.inline.hpp -unhandledOops.cpp globalDefinitions.hpp -unhandledOops.cpp oop.inline.hpp -unhandledOops.cpp thread.hpp -unhandledOops.cpp unhandledOops.hpp -unhandledOops.cpp universe.hpp - -universe.cpp aprofiler.hpp -universe.cpp arguments.hpp -universe.cpp arrayKlassKlass.hpp -universe.cpp cardTableModRefBS.hpp -universe.cpp classLoader.hpp -universe.cpp codeCache.hpp -universe.cpp collectedHeap.inline.hpp -universe.cpp compiledICHolderKlass.hpp -universe.cpp constMethodKlass.hpp -universe.cpp constantPoolKlass.hpp -universe.cpp constantPoolOop.hpp -universe.cpp copy.hpp -universe.cpp cpCacheKlass.hpp -universe.cpp cpCacheOop.hpp -universe.cpp deoptimization.hpp -universe.cpp dependencies.hpp -universe.cpp events.hpp -universe.cpp filemap.hpp -universe.cpp fprofiler.hpp -universe.cpp gcLocker.inline.hpp -universe.cpp genCollectedHeap.hpp -universe.cpp genRemSet.hpp -universe.cpp generation.hpp -universe.cpp handles.inline.hpp -universe.cpp hashtable.inline.hpp -universe.cpp init.hpp -universe.cpp instanceKlass.hpp -universe.cpp instanceKlassKlass.hpp -universe.cpp instanceRefKlass.hpp -universe.cpp interpreter.hpp -universe.cpp java.hpp -universe.cpp javaCalls.hpp -universe.cpp javaClasses.hpp -universe.cpp jvmtiRedefineClassesTrace.hpp -universe.cpp klassKlass.hpp -universe.cpp klassOop.hpp -universe.cpp memoryService.hpp -universe.cpp methodDataKlass.hpp -universe.cpp methodKlass.hpp -universe.cpp objArrayKlassKlass.hpp -universe.cpp oop.inline.hpp -universe.cpp oopFactory.hpp -universe.cpp permGen.hpp -universe.cpp preserveException.hpp -universe.cpp sharedRuntime.hpp -universe.cpp space.hpp -universe.cpp symbolKlass.hpp -universe.cpp symbolTable.hpp -universe.cpp synchronizer.hpp -universe.cpp systemDictionary.hpp -universe.cpp thread_.inline.hpp -universe.cpp timer.hpp -universe.cpp typeArrayKlass.hpp -universe.cpp typeArrayKlassKlass.hpp -universe.cpp universe.hpp -universe.cpp universe.inline.hpp -universe.cpp vmSymbols.hpp -universe.cpp vm_operations.hpp - -universe.hpp growableArray.hpp -universe.hpp handles.hpp - -universe.inline.hpp universe.hpp - -unsafe.cpp allocation.inline.hpp -unsafe.cpp copy.hpp -unsafe.cpp dtrace.hpp -unsafe.cpp globals.hpp -unsafe.cpp interfaceSupport.hpp -unsafe.cpp jni.h -unsafe.cpp jvm.h -unsafe.cpp reflection.hpp -unsafe.cpp reflectionCompat.hpp -unsafe.cpp synchronizer.hpp -unsafe.cpp threadService.hpp -unsafe.cpp vmSymbols.hpp - -utf8.cpp utf8.hpp - -utf8.hpp allocation.hpp -utf8.hpp top.hpp - -verificationType.cpp symbolTable.hpp -verificationType.cpp verificationType.hpp - -verificationType.hpp allocation.hpp -verificationType.hpp handles.hpp -verificationType.hpp instanceKlass.hpp -verificationType.hpp oop.inline.hpp -verificationType.hpp signature.hpp -verificationType.hpp symbolOop.hpp -verificationType.hpp systemDictionary.hpp - -verifier.cpp bytecodeStream.hpp -verifier.cpp bytes_.hpp -verifier.cpp classFileStream.hpp -verifier.cpp fieldDescriptor.hpp -verifier.cpp handles.inline.hpp -verifier.cpp hpi.hpp -verifier.cpp instanceKlass.hpp -verifier.cpp interfaceSupport.hpp -verifier.cpp javaCalls.hpp -verifier.cpp javaClasses.hpp -verifier.cpp jvm.h -verifier.cpp oop.inline.hpp -verifier.cpp oopFactory.hpp -verifier.cpp orderAccess.hpp -verifier.cpp os.hpp -verifier.cpp resourceArea.hpp -verifier.cpp stackMapTable.hpp -verifier.cpp systemDictionary.hpp -verifier.cpp typeArrayOop.hpp -verifier.cpp verifier.hpp -verifier.cpp vmSymbols.hpp - -verifier.hpp exceptions.hpp -verifier.hpp gcLocker.hpp -verifier.hpp handles.hpp -verifier.hpp klass.hpp -verifier.hpp methodOop.hpp -verifier.hpp verificationType.hpp - -vframe.cpp codeCache.hpp -vframe.cpp debugInfoRec.hpp -vframe.cpp handles.inline.hpp -vframe.cpp instanceKlass.hpp -vframe.cpp interpreter.hpp -vframe.cpp javaClasses.hpp -vframe.cpp nmethod.hpp -vframe.cpp objectMonitor.hpp -vframe.cpp objectMonitor.inline.hpp -vframe.cpp oop.inline.hpp -vframe.cpp oopMapCache.hpp -vframe.cpp pcDesc.hpp -vframe.cpp resourceArea.hpp -vframe.cpp scopeDesc.hpp -vframe.cpp signature.hpp -vframe.cpp stubRoutines.hpp -vframe.cpp synchronizer.hpp -vframe.cpp systemDictionary.hpp -vframe.cpp vframe.hpp -vframe.cpp vframeArray.hpp -vframe.cpp vframe_hp.hpp -vframe.cpp vmSymbols.hpp - -vframe.hpp debugInfo.hpp -vframe.hpp debugInfoRec.hpp -vframe.hpp frame.hpp -vframe.hpp frame.inline.hpp -vframe.hpp growableArray.hpp -vframe.hpp location.hpp -vframe.hpp oop.hpp -vframe.hpp stackValue.hpp -vframe.hpp stackValueCollection.hpp - -vframeArray.cpp allocation.inline.hpp -vframeArray.cpp events.hpp -vframeArray.cpp handles.inline.hpp -vframeArray.cpp interpreter.hpp -vframeArray.cpp jvmtiThreadState.hpp -vframeArray.cpp methodDataOop.hpp -vframeArray.cpp monitorChunk.hpp -vframeArray.cpp oop.inline.hpp -vframeArray.cpp resourceArea.hpp -vframeArray.cpp sharedRuntime.hpp -vframeArray.cpp universe.inline.hpp -vframeArray.cpp vframe.hpp -vframeArray.cpp vframeArray.hpp -vframeArray.cpp vframe_hp.hpp -vframeArray.cpp vmSymbols.hpp - -vframeArray.hpp arrayOop.hpp -vframeArray.hpp deoptimization.hpp -vframeArray.hpp frame.inline.hpp -vframeArray.hpp growableArray.hpp -vframeArray.hpp monitorChunk.hpp - -vframe_hp.cpp basicLock.hpp -vframe_hp.cpp codeCache.hpp -vframe_hp.cpp debugInfoRec.hpp -vframe_hp.cpp handles.inline.hpp -vframe_hp.cpp instanceKlass.hpp -vframe_hp.cpp interpreter.hpp -vframe_hp.cpp monitorChunk.hpp -vframe_hp.cpp nmethod.hpp -vframe_hp.cpp oop.inline.hpp -vframe_hp.cpp oopMapCache.hpp -vframe_hp.cpp pcDesc.hpp -vframe_hp.cpp scopeDesc.hpp -vframe_hp.cpp signature.hpp -vframe_hp.cpp stubRoutines.hpp -vframe_hp.cpp vframeArray.hpp -vframe_hp.cpp vframe_hp.hpp - -vframe_hp.hpp vframe.hpp - -virtualspace.cpp markOop.hpp -virtualspace.cpp oop.inline.hpp -virtualspace.cpp os_.inline.hpp -virtualspace.cpp virtualspace.hpp - -virtualspace.hpp allocation.hpp - -vmError.cpp arguments.hpp -vmError.cpp collectedHeap.hpp -vmError.cpp compileBroker.hpp -vmError.cpp debug.hpp -vmError.cpp defaultStream.hpp -vmError.cpp frame.inline.hpp -vmError.cpp init.hpp -vmError.cpp os.hpp -vmError.cpp thread.hpp -vmError.cpp top.hpp -vmError.cpp vmError.hpp -vmError.cpp vmThread.hpp -vmError.cpp vm_operations.hpp - -vmError.hpp globalDefinitions.hpp - -vmError_.cpp arguments.hpp -vmError_.cpp os.hpp -vmError_.cpp thread.hpp -vmError_.cpp vmError.hpp - -// vmStructs is jck optional, put cpp deps in includeDB_features - -vmStructs.hpp debug.hpp - -vmSymbols.cpp handles.inline.hpp -vmSymbols.cpp oop.inline.hpp -vmSymbols.cpp oopFactory.hpp -vmSymbols.cpp vmSymbols.hpp -vmSymbols.cpp xmlstream.hpp - -vmSymbols.hpp symbolOop.hpp - -vmThread.cpp collectedHeap.hpp -vmThread.cpp compileBroker.hpp -vmThread.cpp dtrace.hpp -vmThread.cpp events.hpp -vmThread.cpp interfaceSupport.hpp -vmThread.cpp methodOop.hpp -vmThread.cpp mutexLocker.hpp -vmThread.cpp oop.inline.hpp -vmThread.cpp os.hpp -vmThread.cpp resourceArea.hpp -vmThread.cpp runtimeService.hpp -vmThread.cpp thread_.inline.hpp -vmThread.cpp vmThread.hpp -vmThread.cpp vm_operations.hpp -vmThread.cpp xmlstream.hpp - -vmThread.hpp perfData.hpp -vmThread.hpp thread_.inline.hpp -vmThread.hpp vm_operations.hpp - -vm_operations.cpp arguments.hpp -vm_operations.cpp compileBroker.hpp -vm_operations.cpp compilerOracle.hpp -vm_operations.cpp deoptimization.hpp -vm_operations.cpp interfaceSupport.hpp -vm_operations.cpp isGCActiveMark.hpp -vm_operations.cpp resourceArea.hpp -vm_operations.cpp sweeper.hpp -vm_operations.cpp threadService.hpp -vm_operations.cpp thread_.inline.hpp -vm_operations.cpp vmSymbols.hpp -vm_operations.cpp vm_operations.hpp - -vm_operations.hpp allocation.hpp -vm_operations.hpp javaClasses.hpp -vm_operations.hpp oop.hpp -vm_operations.hpp thread.hpp -vm_operations.hpp top.hpp - -vm_version.cpp arguments.hpp -vm_version.cpp oop.inline.hpp -vm_version.cpp universe.hpp -vm_version.cpp vm_version_.hpp - -vm_version.hpp allocation.hpp -vm_version.hpp ostream.hpp - -vm_version_.cpp assembler_.inline.hpp -vm_version_.cpp java.hpp -vm_version_.cpp os_.inline.hpp -vm_version_.cpp resourceArea.hpp -vm_version_.cpp stubCodeGenerator.hpp -vm_version_.cpp vm_version_.hpp - -vm_version_.hpp globals_extension.hpp -vm_version_.hpp vm_version.hpp - -vm_version_.cpp os.hpp -vm_version_.cpp vm_version_.hpp - -vmreg.cpp assembler.hpp -vmreg.cpp vmreg.hpp - -vmreg.hpp allocation.hpp -vmreg.hpp globalDefinitions.hpp -vmreg.hpp register_.hpp - -vmreg_.cpp assembler.hpp -vmreg_.cpp vmreg.hpp - -vmreg_.hpp generate_platform_dependent_include - -vtableStubs.cpp allocation.inline.hpp -vtableStubs.cpp disassembler.hpp -vtableStubs.cpp forte.hpp -vtableStubs.cpp handles.inline.hpp -vtableStubs.cpp instanceKlass.hpp -vtableStubs.cpp jvmtiExport.hpp -vtableStubs.cpp klassVtable.hpp -vtableStubs.cpp oop.inline.hpp -vtableStubs.cpp mutexLocker.hpp -vtableStubs.cpp resourceArea.hpp -vtableStubs.cpp sharedRuntime.hpp -vtableStubs.cpp vtableStubs.hpp - -vtableStubs.hpp allocation.hpp - -vtableStubs_.cpp assembler.hpp -vtableStubs_.cpp assembler_.inline.hpp -vtableStubs_.cpp instanceKlass.hpp -vtableStubs_.cpp interp_masm_.hpp -vtableStubs_.cpp klassVtable.hpp -vtableStubs_.cpp resourceArea.hpp -vtableStubs_.cpp sharedRuntime.hpp -vtableStubs_.cpp vmreg_.inline.hpp -vtableStubs_.cpp vtableStubs.hpp - -watermark.hpp allocation.hpp -watermark.hpp globalDefinitions.hpp - -workgroup.cpp allocation.hpp -workgroup.cpp allocation.inline.hpp -workgroup.cpp os.hpp -workgroup.cpp workgroup.hpp - -workgroup.hpp taskqueue.hpp - -workgroup.hpp thread_.inline.hpp - -xmlstream.cpp allocation.hpp -xmlstream.cpp allocation.inline.hpp -xmlstream.cpp deoptimization.hpp -xmlstream.cpp methodDataOop.hpp -xmlstream.cpp methodOop.hpp -xmlstream.cpp nmethod.hpp -xmlstream.cpp oop.inline.hpp -xmlstream.cpp vmThread.hpp -xmlstream.cpp xmlstream.hpp - -xmlstream.hpp handles.hpp -xmlstream.hpp ostream.hpp diff --git a/hotspot/src/share/vm/includeDB_features b/hotspot/src/share/vm/includeDB_features deleted file mode 100644 index ceee6f54832..00000000000 --- a/hotspot/src/share/vm/includeDB_features +++ /dev/null @@ -1,333 +0,0 @@ -// -// Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -attachListener.cpp arguments.hpp -attachListener.cpp attachListener.hpp -attachListener.cpp globals.hpp -attachListener.cpp heapDumper.hpp -attachListener.cpp java.hpp -attachListener.cpp javaCalls.hpp -attachListener.cpp javaClasses.hpp -attachListener.cpp jvmtiExport.hpp -attachListener.cpp os.hpp -attachListener.cpp resourceArea.hpp -attachListener.cpp systemDictionary.hpp -attachListener.cpp vmGCOperations.hpp - -attachListener_.cpp attachListener.hpp -attachListener_.cpp dtraceAttacher.hpp -attachListener_.cpp interfaceSupport.hpp -attachListener_.cpp os.hpp - -dump.cpp classify.hpp -dump.cpp copy.hpp -dump.cpp filemap.hpp -dump.cpp javaCalls.hpp -dump.cpp javaClasses.hpp -dump.cpp loaderConstraints.hpp -dump.cpp methodDataOop.hpp -dump.cpp oop.inline.hpp -dump.cpp oopFactory.hpp -dump.cpp resourceArea.hpp -dump.cpp signature.hpp -dump.cpp spaceDecorator.hpp -dump.cpp symbolTable.hpp -dump.cpp systemDictionary.hpp -dump.cpp vmThread.hpp -dump.cpp vm_operations.hpp - -dump_.cpp assembler_.inline.hpp -dump_.cpp compactingPermGenGen.hpp -dump_.cpp generation.inline.hpp -dump_.cpp space.inline.hpp - -forte.cpp collectedHeap.inline.hpp -forte.cpp debugInfoRec.hpp -forte.cpp forte.hpp -forte.cpp oop.inline.hpp -forte.cpp oop.inline2.hpp -forte.cpp pcDesc.hpp -forte.cpp space.hpp -forte.cpp thread.hpp -forte.cpp universe.inline.hpp -forte.cpp vframe.hpp -forte.cpp vframeArray.hpp - -fprofiler.cpp allocation.inline.hpp -fprofiler.cpp classLoader.hpp -fprofiler.cpp collectedHeap.inline.hpp -fprofiler.cpp deoptimization.hpp -fprofiler.cpp fprofiler.hpp -fprofiler.cpp interpreter.hpp -fprofiler.cpp macros.hpp -fprofiler.cpp mutexLocker.hpp -fprofiler.cpp oop.inline.hpp -fprofiler.cpp oop.inline2.hpp -fprofiler.cpp stubCodeGenerator.hpp -fprofiler.cpp stubRoutines.hpp -fprofiler.cpp symbolOop.hpp -fprofiler.cpp task.hpp -fprofiler.cpp universe.inline.hpp -fprofiler.cpp vframe.hpp -fprofiler.cpp vtableStubs.hpp - -heapDumper.cpp genCollectedHeap.hpp -heapDumper.cpp heapDumper.hpp -heapDumper.cpp javaCalls.hpp -heapDumper.cpp jniHandles.hpp -heapDumper.cpp objArrayKlass.hpp -heapDumper.cpp ostream.hpp -heapDumper.cpp reflectionUtils.hpp -heapDumper.cpp symbolTable.hpp -heapDumper.cpp systemDictionary.hpp -heapDumper.cpp threadService.hpp -heapDumper.cpp universe.hpp -heapDumper.cpp vframe.hpp -heapDumper.cpp vmGCOperations.hpp -heapDumper.cpp vmSymbols.hpp -heapDumper.cpp vmThread.hpp -heapDumper.cpp vm_operations.hpp - -heapInspection.cpp collectedHeap.hpp -heapInspection.cpp genCollectedHeap.hpp -heapInspection.cpp globalDefinitions.hpp -heapInspection.cpp heapInspection.hpp -heapInspection.cpp klassOop.hpp -heapInspection.cpp os.hpp -heapInspection.cpp resourceArea.hpp - -javaCalls.cpp jniCheck.hpp - -jniCheck.cpp fieldDescriptor.hpp -jniCheck.cpp handles.hpp -jniCheck.cpp instanceKlass.hpp -jniCheck.cpp interfaceSupport.hpp -jniCheck.cpp jfieldIDWorkaround.hpp -jniCheck.cpp jni.h -jniCheck.cpp jniCheck.hpp -jniCheck.cpp jniTypes_.hpp -jniCheck.cpp jvm_misc.hpp -jniCheck.cpp oop.inline.hpp -jniCheck.cpp symbolOop.hpp -jniCheck.cpp systemDictionary.hpp -jniCheck.cpp thread.hpp -jniCheck.cpp vmSymbols.hpp - -jvmtiCodeBlobEvents.cpp codeBlob.hpp -jvmtiCodeBlobEvents.cpp codeCache.hpp -jvmtiCodeBlobEvents.cpp handles.hpp -jvmtiCodeBlobEvents.cpp handles.inline.hpp -jvmtiCodeBlobEvents.cpp jvmtiCodeBlobEvents.hpp -jvmtiCodeBlobEvents.cpp jvmtiExport.hpp -jvmtiCodeBlobEvents.cpp oop.inline.hpp -jvmtiCodeBlobEvents.cpp resourceArea.hpp -jvmtiCodeBlobEvents.cpp scopeDesc.hpp -jvmtiCodeBlobEvents.cpp vmThread.hpp - -jvmtiCodeBlobEvents.hpp jvmti.h - -jvmtiExtensions.cpp jvmtiExport.hpp -jvmtiExtensions.cpp jvmtiExtensions.hpp - -jvmtiExtensions.hpp allocation.hpp -jvmtiExtensions.hpp jvmti.h -jvmtiExtensions.hpp jvmtiEnv.hpp - -jvmtiImpl.cpp deoptimization.hpp -jvmtiImpl.cpp exceptions.hpp -jvmtiImpl.cpp handles.hpp -jvmtiImpl.cpp handles.inline.hpp -jvmtiImpl.cpp instanceKlass.hpp -jvmtiImpl.cpp interfaceSupport.hpp -jvmtiImpl.cpp interpreter.hpp -jvmtiImpl.cpp javaCalls.hpp -jvmtiImpl.cpp jvmtiAgentThread.hpp -jvmtiImpl.cpp jvmtiEnv.hpp -jvmtiImpl.cpp jvmtiEventController.inline.hpp -jvmtiImpl.cpp jvmtiImpl.hpp -jvmtiImpl.cpp jvmtiRedefineClasses.hpp -jvmtiImpl.cpp resourceArea.hpp -jvmtiImpl.cpp signature.hpp -jvmtiImpl.cpp systemDictionary.hpp -jvmtiImpl.cpp thread_.inline.hpp -jvmtiImpl.cpp vframe.hpp -jvmtiImpl.cpp vframe_hp.hpp -jvmtiImpl.cpp vm_operations.hpp - -jvmtiImpl.hpp jvmti.h -jvmtiImpl.hpp jvmtiEnvThreadState.hpp -jvmtiImpl.hpp jvmtiEventController.hpp -jvmtiImpl.hpp jvmtiTrace.hpp -jvmtiImpl.hpp jvmtiUtil.hpp -jvmtiImpl.hpp objArrayOop.hpp -jvmtiImpl.hpp stackValueCollection.hpp -jvmtiImpl.hpp systemDictionary.hpp -jvmtiImpl.hpp vm_operations.hpp - -jvmtiRawMonitor.cpp interfaceSupport.hpp -jvmtiRawMonitor.cpp jvmtiRawMonitor.hpp -jvmtiRawMonitor.cpp thread.hpp - -jvmtiRawMonitor.hpp growableArray.hpp -jvmtiRawMonitor.hpp objectMonitor.hpp - -jvmtiTagMap.cpp biasedLocking.hpp -jvmtiTagMap.cpp javaCalls.hpp -jvmtiTagMap.cpp jniHandles.hpp -jvmtiTagMap.cpp jvmtiEnv.hpp -jvmtiTagMap.cpp jvmtiEventController.hpp -jvmtiTagMap.cpp jvmtiEventController.inline.hpp -jvmtiTagMap.cpp jvmtiExport.hpp -jvmtiTagMap.cpp jvmtiImpl.hpp -jvmtiTagMap.cpp jvmtiTagMap.hpp -jvmtiTagMap.cpp mutex.hpp -jvmtiTagMap.cpp mutexLocker.hpp -jvmtiTagMap.cpp objArrayKlass.hpp -jvmtiTagMap.cpp oop.inline2.hpp -jvmtiTagMap.cpp reflectionUtils.hpp -jvmtiTagMap.cpp serviceUtil.hpp -jvmtiTagMap.cpp symbolTable.hpp -jvmtiTagMap.cpp systemDictionary.hpp -jvmtiTagMap.cpp vframe.hpp -jvmtiTagMap.cpp vmSymbols.hpp -jvmtiTagMap.cpp vmThread.hpp -jvmtiTagMap.cpp vm_operations.hpp - -jvmtiTagMap.hpp allocation.hpp -jvmtiTagMap.hpp collectedHeap.hpp -jvmtiTagMap.hpp genCollectedHeap.hpp -jvmtiTagMap.hpp jvmti.h -jvmtiTagMap.hpp jvmtiEnv.hpp -jvmtiTagMap.hpp universe.hpp - -jvmtiTrace.cpp jvmtiEnv.hpp -jvmtiTrace.cpp jvmtiTrace.hpp - -jvmtiTrace.hpp jvmti.h -jvmtiTrace.hpp jvmtiEnvThreadState.hpp -jvmtiTrace.hpp jvmtiEventController.hpp -jvmtiTrace.hpp jvmtiUtil.hpp -jvmtiTrace.hpp objArrayOop.hpp -jvmtiTrace.hpp stackValueCollection.hpp -jvmtiTrace.hpp systemDictionary.hpp -jvmtiTrace.hpp vm_operations.hpp - -restore.cpp filemap.hpp -restore.cpp hashtable.inline.hpp -restore.cpp oop.inline.hpp -restore.cpp symbolTable.hpp -restore.cpp systemDictionary.hpp - -serialize.cpp classify.hpp -serialize.cpp codeCache.hpp -serialize.cpp compactingPermGenGen.hpp -serialize.cpp compiledICHolderOop.hpp -serialize.cpp methodDataOop.hpp -serialize.cpp objArrayOop.hpp -serialize.cpp oop.inline.hpp -serialize.cpp symbolTable.hpp -serialize.cpp systemDictionary.hpp - -vmStructs.cpp arguments.hpp -vmStructs.cpp arrayKlass.hpp -vmStructs.cpp arrayKlassKlass.hpp -vmStructs.cpp arrayOop.hpp -vmStructs.cpp bytecodes.hpp -vmStructs.cpp bytecodeInterpreter.hpp -vmStructs.cpp cardTableRS.hpp -vmStructs.cpp codeBlob.hpp -vmStructs.cpp codeCache.hpp -vmStructs.cpp collectedHeap.hpp -vmStructs.cpp compactPermGen.hpp -vmStructs.cpp compiledICHolderKlass.hpp -vmStructs.cpp compiledICHolderOop.hpp -vmStructs.cpp compressedStream.hpp -vmStructs.cpp constMethodKlass.hpp -vmStructs.cpp constMethodOop.hpp -vmStructs.cpp constantPoolKlass.hpp -vmStructs.cpp constantPoolOop.hpp -vmStructs.cpp cpCacheKlass.hpp -vmStructs.cpp cpCacheOop.hpp -vmStructs.cpp defNewGeneration.hpp -vmStructs.cpp dictionary.hpp -vmStructs.cpp freeBlockDictionary.hpp -vmStructs.cpp genCollectedHeap.hpp -vmStructs.cpp generation.hpp -vmStructs.cpp generationSpec.hpp -vmStructs.cpp globalDefinitions.hpp -vmStructs.cpp globals.hpp -vmStructs.cpp hashtable.hpp -vmStructs.cpp heap.hpp -vmStructs.cpp immutableSpace.hpp -vmStructs.cpp instanceKlass.hpp -vmStructs.cpp instanceKlassKlass.hpp -vmStructs.cpp instanceOop.hpp -vmStructs.cpp interpreter.hpp -vmStructs.cpp java.hpp -vmStructs.cpp javaCalls.hpp -vmStructs.cpp javaClasses.hpp -vmStructs.cpp jvmtiAgentThread.hpp -vmStructs.cpp klass.hpp -vmStructs.cpp klassOop.hpp -vmStructs.cpp loaderConstraints.hpp -vmStructs.cpp location.hpp -vmStructs.cpp markOop.hpp -vmStructs.cpp markSweep.hpp -vmStructs.cpp methodDataKlass.hpp -vmStructs.cpp methodDataOop.hpp -vmStructs.cpp methodKlass.hpp -vmStructs.cpp methodOop.hpp -vmStructs.cpp mutableSpace.hpp -vmStructs.cpp nmethod.hpp -vmStructs.cpp objArrayKlass.hpp -vmStructs.cpp objArrayKlassKlass.hpp -vmStructs.cpp objArrayOop.hpp -vmStructs.cpp oop.inline.hpp -vmStructs.cpp oopMap.hpp -vmStructs.cpp pcDesc.hpp -vmStructs.cpp perfMemory.hpp -vmStructs.cpp permGen.hpp -vmStructs.cpp placeholders.hpp -vmStructs.cpp sharedRuntime.hpp -vmStructs.cpp space.hpp -vmStructs.cpp stubRoutines.hpp -vmStructs.cpp stubs.hpp -vmStructs.cpp symbolKlass.hpp -vmStructs.cpp symbolOop.hpp -vmStructs.cpp symbolTable.hpp -vmStructs.cpp systemDictionary.hpp -vmStructs.cpp tenuredGeneration.hpp -vmStructs.cpp thread_.inline.hpp -vmStructs.cpp typeArrayKlass.hpp -vmStructs.cpp typeArrayKlassKlass.hpp -vmStructs.cpp typeArrayOop.hpp -vmStructs.cpp universe.hpp -vmStructs.cpp virtualspace.hpp -vmStructs.cpp vmStructs.hpp -vmStructs.cpp vmStructs_.hpp -vmStructs.cpp vmStructs_.hpp -vmStructs.cpp vmreg.hpp -vmStructs.cpp watermark.hpp - -vmStructs.hpp debug.hpp diff --git a/hotspot/src/share/vm/includeDB_gc b/hotspot/src/share/vm/includeDB_gc deleted file mode 100644 index e47c69d48d2..00000000000 --- a/hotspot/src/share/vm/includeDB_gc +++ /dev/null @@ -1,57 +0,0 @@ -// -// Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -collectedHeap.cpp collectedHeap.hpp -collectedHeap.cpp collectedHeap.inline.hpp -collectedHeap.cpp heapDumper.hpp -collectedHeap.cpp init.hpp -collectedHeap.cpp oop.inline.hpp -collectedHeap.cpp systemDictionary.hpp -collectedHeap.cpp thread_.inline.hpp -collectedHeap.cpp vmGCOperations.hpp - -collectedHeap.hpp allocation.hpp -collectedHeap.hpp barrierSet.hpp -collectedHeap.hpp gcCause.hpp -collectedHeap.hpp handles.hpp -collectedHeap.hpp perfData.hpp -collectedHeap.hpp safepoint.hpp - -collectedHeap.inline.hpp arrayOop.hpp -collectedHeap.inline.hpp collectedHeap.hpp -collectedHeap.inline.hpp copy.hpp -collectedHeap.inline.hpp jvmtiExport.hpp -collectedHeap.inline.hpp lowMemoryDetector.hpp -collectedHeap.inline.hpp sharedRuntime.hpp -collectedHeap.inline.hpp thread.hpp -collectedHeap.inline.hpp threadLocalAllocBuffer.inline.hpp -collectedHeap.inline.hpp universe.hpp -collectedHeap.inline.hpp thread_.inline.hpp -collectedHeap.inline.hpp sharedRuntime.hpp - -gcCause.hpp allocation.hpp - -gcCause.cpp gcCause.hpp diff --git a/hotspot/src/share/vm/includeDB_gc_parallel b/hotspot/src/share/vm/includeDB_gc_parallel deleted file mode 100644 index 05a7de88d02..00000000000 --- a/hotspot/src/share/vm/includeDB_gc_parallel +++ /dev/null @@ -1,184 +0,0 @@ -// -// Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// - -arguments.cpp compactibleFreeListSpace.hpp - -assembler_.cpp g1SATBCardTableModRefBS.hpp -assembler_.cpp g1CollectedHeap.inline.hpp -assembler_.cpp heapRegion.hpp - -collectorPolicy.cpp cmsAdaptiveSizePolicy.hpp -collectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp - -compiledICHolderKlass.cpp oop.pcgc.inline.hpp - -constantPoolKlass.cpp cardTableRS.hpp -constantPoolKlass.cpp oop.pcgc.inline.hpp -constantPoolKlass.cpp psPromotionManager.inline.hpp -constantPoolKlass.cpp psScavenge.inline.hpp -constantPoolKlass.cpp parOopClosures.inline.hpp - -constantPoolKlass.cpp cardTableRS.hpp -constantPoolKlass.cpp oop.pcgc.inline.hpp -constantPoolKlass.cpp psPromotionManager.inline.hpp -constantPoolKlass.cpp psScavenge.inline.hpp -constantPoolKlass.cpp parOopClosures.inline.hpp - -cpCacheKlass.cpp cardTableRS.hpp -cpCacheKlass.cpp oop.pcgc.inline.hpp -cpCacheKlass.cpp psPromotionManager.inline.hpp -cpCacheKlass.cpp psScavenge.inline.hpp -cpCacheKlass.cpp parOopClosures.inline.hpp - -genCollectedHeap.cpp concurrentMarkSweepThread.hpp -genCollectedHeap.cpp vmCMSOperations.hpp - -generationSpec.cpp asParNewGeneration.hpp -generationSpec.cpp cmsPermGen.hpp -generationSpec.cpp parNewGeneration.hpp - -heapDumper.cpp parallelScavengeHeap.hpp - -heapInspection.cpp parallelScavengeHeap.hpp - -instanceKlass.cpp heapRegionSeq.inline.hpp -instanceKlass.cpp g1CollectedHeap.inline.hpp -instanceKlass.cpp g1OopClosures.inline.hpp -instanceKlass.cpp oop.pcgc.inline.hpp -instanceKlass.cpp psPromotionManager.inline.hpp -instanceKlass.cpp psScavenge.inline.hpp -instanceKlass.cpp parOopClosures.inline.hpp - -instanceKlassKlass.cpp cardTableRS.hpp -instanceKlassKlass.cpp oop.pcgc.inline.hpp -instanceKlassKlass.cpp psPromotionManager.inline.hpp -instanceKlassKlass.cpp psScavenge.inline.hpp -instanceKlassKlass.cpp parOopClosures.inline.hpp - -instanceRefKlass.cpp heapRegionSeq.inline.hpp -instanceRefKlass.cpp g1CollectedHeap.inline.hpp -instanceRefKlass.cpp g1OopClosures.inline.hpp -instanceRefKlass.cpp oop.pcgc.inline.hpp -instanceRefKlass.cpp psPromotionManager.inline.hpp -instanceRefKlass.cpp psScavenge.inline.hpp -instanceRefKlass.cpp parOopClosures.inline.hpp - -java.cpp concurrentMarkSweepThread.hpp -java.cpp psScavenge.hpp -java.cpp psScavenge.inline.hpp - -jvmtiExport.cpp psMarkSweep.hpp - -jvmtiTagMap.cpp parallelScavengeHeap.hpp - -klassKlass.cpp oop.pcgc.inline.hpp - -klass.hpp cmsOopClosures.hpp -klass.hpp parOopClosures.hpp - -memoryPool.hpp compactibleFreeListSpace.hpp - -memoryService.cpp cmsPermGen.hpp -memoryService.cpp concurrentMarkSweepGeneration.hpp -memoryService.cpp g1CollectedHeap.inline.hpp -memoryService.cpp parNewGeneration.hpp -memoryService.cpp parallelScavengeHeap.hpp -memoryService.cpp psMemoryPool.hpp -memoryService.cpp psOldGen.hpp -memoryService.cpp psPermGen.hpp -memoryService.cpp psYoungGen.hpp - -methodDataKlass.cpp oop.pcgc.inline.hpp -methodDataKlass.cpp psScavenge.inline.hpp - -objArrayKlass.cpp heapRegionSeq.inline.hpp -objArrayKlass.cpp g1CollectedHeap.inline.hpp -objArrayKlass.cpp g1OopClosures.inline.hpp -objArrayKlass.cpp oop.pcgc.inline.hpp -objArrayKlass.cpp psCompactionManager.hpp -objArrayKlass.cpp psPromotionManager.inline.hpp -objArrayKlass.cpp psScavenge.inline.hpp -objArrayKlass.cpp parOopClosures.inline.hpp - -objArrayKlass.inline.hpp psCompactionManager.inline.hpp -objArrayKlass.inline.hpp psParallelCompact.hpp - -oop.pcgc.inline.hpp parNewGeneration.hpp -oop.pcgc.inline.hpp parallelScavengeHeap.hpp -oop.pcgc.inline.hpp psCompactionManager.hpp -oop.pcgc.inline.hpp psParallelCompact.hpp -oop.pcgc.inline.hpp psScavenge.hpp -oop.pcgc.inline.hpp psScavenge.inline.hpp - -oop.psgc.inline.hpp parallelScavengeHeap.hpp -oop.psgc.inline.hpp psScavenge.hpp -oop.psgc.inline.hpp psScavenge.inline.hpp - -psMemoryPool.cpp handles.inline.hpp -psMemoryPool.cpp javaCalls.hpp -psMemoryPool.cpp lowMemoryDetector.hpp -psMemoryPool.cpp management.hpp -psMemoryPool.cpp memoryManager.hpp -psMemoryPool.cpp oop.inline.hpp -psMemoryPool.cpp psMemoryPool.hpp -psMemoryPool.cpp psPermGen.hpp -psMemoryPool.cpp systemDictionary.hpp -psMemoryPool.cpp vmSymbols.hpp - -psMemoryPool.hpp defNewGeneration.hpp -psMemoryPool.hpp heap.hpp -psMemoryPool.hpp memoryUsage.hpp -psMemoryPool.hpp memoryPool.hpp -psMemoryPool.hpp mutableSpace.hpp -psMemoryPool.hpp psOldGen.hpp -psMemoryPool.hpp psYoungGen.hpp -psMemoryPool.hpp space.hpp - -safepoint.cpp concurrentGCThread.hpp -safepoint.cpp concurrentMarkSweepThread.hpp - -thread.cpp concurrentMarkSweepThread.hpp -thread.cpp pcTasks.hpp - -thread.hpp dirtyCardQueue.hpp -thread.hpp satbQueue.hpp - -universe.cpp parallelScavengeHeap.hpp -universe.cpp cmsCollectorPolicy.hpp -universe.cpp cmsAdaptiveSizePolicy.hpp - -vmStructs.cpp asPSOldGen.hpp -vmStructs.cpp asPSYoungGen.hpp -vmStructs.cpp cmsPermGen.hpp -vmStructs.cpp compactibleFreeListSpace.hpp -vmStructs.cpp concurrentMarkSweepGeneration.hpp -vmStructs.cpp concurrentMarkSweepThread.hpp -vmStructs.cpp parNewGeneration.hpp -vmStructs.cpp parallelScavengeHeap.hpp -vmStructs.cpp psOldGen.hpp -vmStructs.cpp psPermGen.hpp -vmStructs.cpp psVirtualspace.hpp -vmStructs.cpp psYoungGen.hpp -vmStructs.cpp vmStructs_cms.hpp -vmStructs.cpp vmStructs_parallelgc.hpp -vmStructs.cpp vmStructs_parNew.hpp diff --git a/hotspot/src/share/vm/includeDB_jvmti b/hotspot/src/share/vm/includeDB_jvmti deleted file mode 100644 index 56d7d2ed807..00000000000 --- a/hotspot/src/share/vm/includeDB_jvmti +++ /dev/null @@ -1,266 +0,0 @@ -// -// Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -jvmtiAgentThread.hpp jvmtiEnv.hpp - -jvmtiClassFileReconstituter.cpp bytecodeStream.hpp -jvmtiClassFileReconstituter.cpp bytes_.hpp -jvmtiClassFileReconstituter.cpp jvmtiClassFileReconstituter.hpp -jvmtiClassFileReconstituter.cpp symbolTable.hpp -jvmtiClassFileReconstituter.cpp signature.hpp - -jvmtiClassFileReconstituter.hpp jvmtiEnv.hpp - -// jvmtiCodeBlobEvents is jck optional, please put deps in includeDB_features - -jvmtiEnter.cpp jvmtiEnter.hpp -jvmtiEnter.cpp jvmtiRawMonitor.hpp -jvmtiEnter.cpp jvmtiUtil.hpp - -jvmtiEnter.hpp interfaceSupport.hpp -jvmtiEnter.hpp jvmtiEnv.hpp -jvmtiEnter.hpp jvmtiImpl.hpp -jvmtiEnter.hpp resourceArea.hpp -jvmtiEnter.hpp systemDictionary.hpp - -jvmtiEnterTrace.cpp jvmtiEnter.hpp -jvmtiEnterTrace.cpp jvmtiRawMonitor.hpp -jvmtiEnterTrace.cpp jvmtiUtil.hpp - -jvmtiEnv.cpp arguments.hpp -jvmtiEnv.cpp bytecodeStream.hpp -jvmtiEnv.cpp cpCacheOop.hpp -jvmtiEnv.cpp deoptimization.hpp -jvmtiEnv.cpp exceptions.hpp -jvmtiEnv.cpp instanceKlass.hpp -jvmtiEnv.cpp interfaceSupport.hpp -jvmtiEnv.cpp interpreter.hpp -jvmtiEnv.cpp javaCalls.hpp -jvmtiEnv.cpp jfieldIDWorkaround.hpp -jvmtiEnv.cpp jniCheck.hpp -jvmtiEnv.cpp jvm_misc.hpp -jvmtiEnv.cpp jvmtiAgentThread.hpp -jvmtiEnv.cpp jvmtiClassFileReconstituter.hpp -jvmtiEnv.cpp jvmtiCodeBlobEvents.hpp -jvmtiEnv.cpp jvmtiEnv.hpp -jvmtiEnv.cpp jvmtiExtensions.hpp -jvmtiEnv.cpp jvmtiGetLoadedClasses.hpp -jvmtiEnv.cpp jvmtiImpl.hpp -jvmtiEnv.cpp jvmtiManageCapabilities.hpp -jvmtiEnv.cpp jvmtiRawMonitor.hpp -jvmtiEnv.cpp jvmtiRedefineClasses.hpp -jvmtiEnv.cpp jvmtiTagMap.hpp -jvmtiEnv.cpp jvmtiThreadState.inline.hpp -jvmtiEnv.cpp jvmtiUtil.hpp -jvmtiEnv.cpp osThread.hpp -jvmtiEnv.cpp preserveException.hpp -jvmtiEnv.cpp reflectionUtils.hpp -jvmtiEnv.cpp resourceArea.hpp -jvmtiEnv.cpp signature.hpp -jvmtiEnv.cpp systemDictionary.hpp -jvmtiEnv.cpp threadService.hpp -jvmtiEnv.cpp thread_.inline.hpp -jvmtiEnv.cpp universe.inline.hpp -jvmtiEnv.cpp vframe.hpp -jvmtiEnv.cpp vmSymbols.hpp -jvmtiEnv.cpp vmThread.hpp - -jvmtiEnv.hpp jvmtiEnvBase.hpp - -jvmtiEnvBase.cpp biasedLocking.hpp -jvmtiEnvBase.cpp deoptimization.hpp -jvmtiEnvBase.cpp interfaceSupport.hpp -jvmtiEnvBase.cpp jfieldIDWorkaround.hpp -jvmtiEnvBase.cpp jvmtiEnv.hpp -jvmtiEnvBase.cpp jvmtiEnvBase.hpp -jvmtiEnvBase.cpp jvmtiEventController.inline.hpp -jvmtiEnvBase.cpp jvmtiExtensions.hpp -jvmtiEnvBase.cpp jvmtiImpl.hpp -jvmtiEnvBase.cpp jvmtiManageCapabilities.hpp -jvmtiEnvBase.cpp jvmtiTagMap.hpp -jvmtiEnvBase.cpp jvmtiThreadState.inline.hpp -jvmtiEnvBase.cpp objArrayKlass.hpp -jvmtiEnvBase.cpp objArrayOop.hpp -jvmtiEnvBase.cpp objectMonitor.hpp -jvmtiEnvBase.cpp objectMonitor.inline.hpp -jvmtiEnvBase.cpp signature.hpp -jvmtiEnvBase.cpp systemDictionary.hpp -jvmtiEnvBase.cpp vframe.hpp -jvmtiEnvBase.cpp vframe_hp.hpp -jvmtiEnvBase.cpp vmThread.hpp -jvmtiEnvBase.cpp vm_operations.hpp - -jvmtiEnvBase.hpp classLoader.hpp -jvmtiEnvBase.hpp fieldDescriptor.hpp -jvmtiEnvBase.hpp frame.hpp -jvmtiEnvBase.hpp growableArray.hpp -jvmtiEnvBase.hpp handles.inline.hpp -jvmtiEnvBase.hpp jvmtiEnvThreadState.hpp -jvmtiEnvBase.hpp jvmtiEventController.hpp -jvmtiEnvBase.hpp jvmtiThreadState.hpp -jvmtiEnvBase.hpp thread.hpp -jvmtiEnvBase.hpp vm_operations.hpp - -jvmtiEnvThreadState.cpp handles.hpp -jvmtiEnvThreadState.cpp handles.inline.hpp -jvmtiEnvThreadState.cpp interfaceSupport.hpp -jvmtiEnvThreadState.cpp interpreter.hpp -jvmtiEnvThreadState.cpp javaCalls.hpp -jvmtiEnvThreadState.cpp jvmtiEnv.hpp -jvmtiEnvThreadState.cpp jvmtiEnvThreadState.hpp -jvmtiEnvThreadState.cpp jvmtiEventController.inline.hpp -jvmtiEnvThreadState.cpp jvmtiImpl.hpp -jvmtiEnvThreadState.cpp resourceArea.hpp -jvmtiEnvThreadState.cpp signature.hpp -jvmtiEnvThreadState.cpp systemDictionary.hpp -jvmtiEnvThreadState.cpp vframe.hpp -jvmtiEnvThreadState.cpp vm_operations.hpp - -jvmtiEnvThreadState.hpp allocation.hpp -jvmtiEnvThreadState.hpp allocation.inline.hpp -jvmtiEnvThreadState.hpp globalDefinitions.hpp -jvmtiEnvThreadState.hpp growableArray.hpp -jvmtiEnvThreadState.hpp instanceKlass.hpp -jvmtiEnvThreadState.hpp jvmti.h -jvmtiEnvThreadState.hpp jvmtiEventController.hpp - -jvmtiEventController.cpp frame.hpp -jvmtiEventController.cpp interpreter.hpp -jvmtiEventController.cpp jvmtiEnv.hpp -jvmtiEventController.cpp jvmtiEventController.hpp -jvmtiEventController.cpp jvmtiEventController.inline.hpp -jvmtiEventController.cpp jvmtiExport.hpp -jvmtiEventController.cpp jvmtiImpl.hpp -jvmtiEventController.cpp jvmtiThreadState.inline.hpp -jvmtiEventController.cpp resourceArea.hpp -jvmtiEventController.cpp thread.hpp -jvmtiEventController.cpp vframe.hpp -jvmtiEventController.cpp vframe_hp.hpp -jvmtiEventController.cpp vmThread.hpp -jvmtiEventController.cpp vm_operations.hpp - -jvmtiEventController.hpp allocation.hpp -jvmtiEventController.hpp allocation.inline.hpp -jvmtiEventController.hpp globalDefinitions.hpp -jvmtiEventController.hpp jvmti.h - -jvmtiEventController.inline.hpp jvmtiEventController.hpp -jvmtiEventController.inline.hpp jvmtiImpl.hpp -jvmtiEventController.inline.hpp jvmtiUtil.hpp - -jvmtiExport.cpp arguments.hpp -jvmtiExport.cpp attachListener.hpp -jvmtiExport.cpp handles.hpp -jvmtiExport.cpp interfaceSupport.hpp -jvmtiExport.cpp interpreter.hpp -jvmtiExport.cpp jvmtiCodeBlobEvents.hpp -jvmtiExport.cpp jvmtiEnv.hpp -jvmtiExport.cpp jvmtiEventController.hpp -jvmtiExport.cpp jvmtiEventController.inline.hpp -jvmtiExport.cpp jvmtiExport.hpp -jvmtiExport.cpp jvmtiImpl.hpp -jvmtiExport.cpp jvmtiManageCapabilities.hpp -jvmtiExport.cpp jvmtiRawMonitor.hpp -jvmtiExport.cpp jvmtiTagMap.hpp -jvmtiExport.cpp jvmtiThreadState.inline.hpp -jvmtiExport.cpp nmethod.hpp -jvmtiExport.cpp objArrayKlass.hpp -jvmtiExport.cpp objArrayOop.hpp -jvmtiExport.cpp objectMonitor.hpp -jvmtiExport.cpp objectMonitor.inline.hpp -jvmtiExport.cpp pcDesc.hpp -jvmtiExport.cpp resourceArea.hpp -jvmtiExport.cpp scopeDesc.hpp -jvmtiExport.cpp serviceUtil.hpp -jvmtiExport.cpp systemDictionary.hpp -jvmtiExport.cpp thread.hpp -jvmtiExport.cpp vframe.hpp - -// jvmtiExtensions is jck optional, please put deps in includeDB_features - -jvmtiGetLoadedClasses.cpp jvmtiGetLoadedClasses.hpp -jvmtiGetLoadedClasses.cpp systemDictionary.hpp -jvmtiGetLoadedClasses.cpp thread.hpp -jvmtiGetLoadedClasses.cpp universe.inline.hpp - -jvmtiGetLoadedClasses.hpp jvmtiEnv.hpp - -// jvmtiImpl is jck optional, please put deps in includeDB_features - -jvmtiManageCapabilities.cpp jvmtiEnv.hpp -jvmtiManageCapabilities.cpp jvmtiExport.hpp -jvmtiManageCapabilities.cpp jvmtiManageCapabilities.hpp - -jvmtiManageCapabilities.hpp allocation.hpp -jvmtiManageCapabilities.hpp jvmti.h - -// jvmtiRawMonitor is jck optional, please put deps in includeDB_features - -jvmtiRedefineClasses.cpp bitMap.inline.hpp -jvmtiRedefineClasses.cpp codeCache.hpp -jvmtiRedefineClasses.cpp deoptimization.hpp -jvmtiRedefineClasses.cpp gcLocker.hpp -jvmtiRedefineClasses.cpp jvmtiImpl.hpp -jvmtiRedefineClasses.cpp jvmtiRedefineClasses.hpp -jvmtiRedefineClasses.cpp klassVtable.hpp -jvmtiRedefineClasses.cpp methodComparator.hpp -jvmtiRedefineClasses.cpp oopMapCache.hpp -jvmtiRedefineClasses.cpp relocator.hpp -jvmtiRedefineClasses.cpp rewriter.hpp -jvmtiRedefineClasses.cpp systemDictionary.hpp -jvmtiRedefineClasses.cpp universe.inline.hpp -jvmtiRedefineClasses.cpp verifier.hpp - -jvmtiRedefineClasses.hpp jvmtiEnv.hpp -jvmtiRedefineClasses.hpp jvmtiRedefineClassesTrace.hpp -jvmtiRedefineClasses.hpp objArrayKlass.hpp -jvmtiRedefineClasses.hpp objArrayOop.hpp -jvmtiRedefineClasses.hpp oopFactory.hpp -jvmtiRedefineClasses.hpp resourceArea.hpp -jvmtiRedefineClasses.hpp vm_operations.hpp - -// jvmtiTagMap is jck optional, please put deps in includeDB_features -// jvmtiTrace is jck optional, please put deps in includeDB_features - -jvmtiThreadState.cpp gcLocker.hpp -jvmtiThreadState.cpp jvmtiEnv.hpp -jvmtiThreadState.cpp jvmtiEventController.inline.hpp -jvmtiThreadState.cpp jvmtiImpl.hpp -jvmtiThreadState.cpp jvmtiThreadState.inline.hpp -jvmtiThreadState.cpp resourceArea.hpp -jvmtiThreadState.cpp vframe.hpp - -jvmtiThreadState.inline.hpp jvmtiEnvThreadState.hpp -jvmtiThreadState.inline.hpp jvmtiThreadState.hpp - -jvmtiUtil.cpp exceptions.hpp -jvmtiUtil.cpp handles.hpp -jvmtiUtil.cpp handles.inline.hpp -jvmtiUtil.cpp interfaceSupport.hpp -jvmtiUtil.cpp jvmtiUtil.hpp -jvmtiUtil.cpp vm_operations.hpp - -jvmtiUtil.hpp jvmti.h -jvmtiUtil.hpp jvmtiEventController.hpp -jvmtiUtil.hpp resourceArea.hpp diff --git a/hotspot/src/share/vm/includeDB_shark b/hotspot/src/share/vm/includeDB_shark deleted file mode 100644 index 17e451daecd..00000000000 --- a/hotspot/src/share/vm/includeDB_shark +++ /dev/null @@ -1,371 +0,0 @@ -// -// Copyright (c) 1999, 2007, Oracle and/or its affiliates. All rights reserved. -// Copyright 2008, 2009, 2010 Red Hat, Inc. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -ciMethod.cpp ciTypeFlow.hpp -ciMethod.cpp methodOop.hpp - -ciTypeFlow.cpp allocation.inline.hpp -ciTypeFlow.cpp bytecode.hpp -ciTypeFlow.cpp bytecodes.hpp -ciTypeFlow.cpp ciConstant.hpp -ciTypeFlow.cpp ciField.hpp -ciTypeFlow.cpp ciMethod.hpp -ciTypeFlow.cpp ciMethodData.hpp -ciTypeFlow.cpp ciObjArrayKlass.hpp -ciTypeFlow.cpp ciStreams.hpp -ciTypeFlow.cpp ciTypeArrayKlass.hpp -ciTypeFlow.cpp ciTypeFlow.hpp -ciTypeFlow.cpp compileLog.hpp -ciTypeFlow.cpp deoptimization.hpp -ciTypeFlow.cpp growableArray.hpp -ciTypeFlow.cpp shark_globals.hpp - -ciTypeFlow.hpp ciEnv.hpp -ciTypeFlow.hpp ciKlass.hpp -ciTypeFlow.hpp ciMethodBlocks.hpp - -cppInterpreter_.cpp shark_globals.hpp - -compileBroker.cpp sharkCompiler.hpp - -disassembler.cpp sharkEntry.hpp - -globals.hpp shark_globals_.hpp - -globals.cpp shark_globals.hpp - -llvmValue.hpp llvmHeaders.hpp -llvmValue.hpp sharkContext.hpp -llvmValue.hpp sharkType.hpp - -nmethod.cpp sharkCompiler.hpp - -sharedRuntime_.cpp compileBroker.hpp -sharedRuntime_.cpp sharkCompiler.hpp - -shark_globals.cpp shark_globals.hpp - -shark_globals.hpp shark_globals_.hpp -shark_globals.hpp globals.hpp - -sharkBlock.cpp debug.hpp -sharkBlock.cpp bytecodes.hpp -sharkBlock.cpp llvmHeaders.hpp -sharkBlock.cpp llvmValue.hpp -sharkBlock.cpp shark_globals.hpp -sharkBlock.cpp sharkBlock.hpp -sharkBlock.cpp sharkBuilder.hpp -sharkBlock.cpp sharkConstant.hpp -sharkBlock.cpp sharkState.hpp -sharkBlock.cpp sharkValue.hpp - -sharkBlock.hpp allocation.hpp -sharkBlock.hpp ciMethod.hpp -sharkBlock.hpp ciStreams.hpp -sharkBlock.hpp debug.hpp -sharkBlock.hpp llvmHeaders.hpp -sharkBlock.hpp sharkBuilder.hpp -sharkBlock.hpp sharkConstant.hpp -sharkBlock.hpp sharkInvariants.hpp -sharkBlock.hpp sharkState.hpp -sharkBlock.hpp sharkValue.hpp - -sharkBuilder.cpp ciMethod.hpp -sharkBuilder.cpp debug.hpp -sharkBuilder.cpp llvmHeaders.hpp -sharkBuilder.cpp llvmValue.hpp -sharkBuilder.cpp methodOop.hpp -sharkBuilder.cpp os.hpp -sharkBuilder.cpp resourceArea.hpp -sharkBuilder.cpp llvmHeaders.hpp -sharkBuilder.cpp sharkBuilder.hpp -sharkBuilder.cpp sharkContext.hpp -sharkBuilder.cpp sharkRuntime.hpp -sharkBuilder.cpp synchronizer.hpp -sharkBuilder.cpp thread.hpp - -sharkBuilder.hpp barrierSet.hpp -sharkBuilder.hpp cardTableModRefBS.hpp -sharkBuilder.hpp ciType.hpp -sharkBuilder.hpp debug.hpp -sharkBuilder.hpp llvmHeaders.hpp -sharkBuilder.hpp llvmValue.hpp -sharkBuilder.hpp sizes.hpp -sharkBuilder.hpp sharkCodeBuffer.hpp -sharkBuilder.hpp sharkType.hpp -sharkBuilder.hpp sharkValue.hpp -sharkBuilder.hpp sharkEntry.hpp - -sharkCacheDecache.cpp ciMethod.hpp -sharkCacheDecache.cpp debugInfoRec.hpp -sharkCacheDecache.cpp llvmValue.hpp -sharkCacheDecache.cpp sharkBuilder.hpp -sharkCacheDecache.cpp sharkCacheDecache.hpp -sharkCacheDecache.cpp sharkFunction.hpp -sharkCacheDecache.cpp sharkState.hpp - -sharkCacheDecache.hpp ciMethod.hpp -sharkCacheDecache.hpp debugInfoRec.hpp -sharkCacheDecache.hpp sharkBuilder.hpp -sharkCacheDecache.hpp sharkFunction.hpp -sharkCacheDecache.hpp sharkStateScanner.hpp - -sharkCodeBuffer.hpp allocation.hpp -sharkCodeBuffer.hpp codeBuffer.hpp -sharkCodeBuffer.hpp llvmHeaders.hpp - -sharkCompiler.cpp abstractCompiler.hpp -sharkCompiler.cpp ciEnv.hpp -sharkCompiler.cpp ciMethod.hpp -sharkCompiler.cpp debug.hpp -sharkCompiler.cpp debugInfoRec.hpp -sharkCompiler.cpp dependencies.hpp -sharkCompiler.cpp exceptionHandlerTable.hpp -sharkCompiler.cpp llvmHeaders.hpp -sharkCompiler.cpp oopMap.hpp -sharkCompiler.cpp oopRecorder.hpp -sharkCompiler.cpp shark_globals.hpp -sharkCompiler.cpp sharkBuilder.hpp -sharkCompiler.cpp sharkCodeBuffer.hpp -sharkCompiler.cpp sharkCompiler.hpp -sharkCompiler.cpp sharkContext.hpp -sharkCompiler.cpp sharkEntry.hpp -sharkCompiler.cpp sharkFunction.hpp -sharkCompiler.cpp sharkMemoryManager.hpp -sharkCompiler.cpp sharkNativeWrapper.hpp - -sharkCompiler.hpp abstractCompiler.hpp -sharkCompiler.hpp ciEnv.hpp -sharkCompiler.hpp ciMethod.hpp -sharkCompiler.hpp compileBroker.hpp -sharkCompiler.hpp llvmHeaders.hpp -sharkCompiler.hpp sharkMemoryManager.hpp - -sharkContext.cpp arrayOop.hpp -sharkContext.cpp globalDefinitions.hpp -sharkContext.cpp llvmHeaders.hpp -sharkContext.cpp oop.hpp -sharkContext.cpp sharkContext.hpp - -sharkContext.hpp llvmHeaders.hpp -sharkContext.hpp sharkCompiler.hpp - -sharkConstant.cpp ciInstance.hpp -sharkConstant.cpp ciStreams.hpp -sharkConstant.cpp sharkBuilder.hpp -sharkConstant.cpp sharkConstant.hpp -sharkConstant.cpp sharkValue.hpp - -sharkConstant.hpp allocation.hpp -sharkConstant.hpp ciStreams.hpp -sharkConstant.hpp sharkBuilder.hpp -sharkConstant.hpp sharkValue.hpp - -sharkEntry.hpp llvmHeaders.hpp - -sharkFunction.cpp allocation.hpp -sharkFunction.cpp ciTypeFlow.hpp -sharkFunction.cpp debug.hpp -sharkFunction.cpp llvmHeaders.hpp -sharkFunction.cpp llvmValue.hpp -sharkFunction.cpp shark_globals.hpp -sharkFunction.cpp sharkBuilder.hpp -sharkFunction.cpp sharkEntry.hpp -sharkFunction.cpp sharkFunction.hpp -sharkFunction.cpp sharkState.hpp -sharkFunction.cpp sharkTopLevelBlock.hpp - -sharkFunction.hpp allocation.hpp -sharkFunction.hpp ciEnv.hpp -sharkFunction.hpp ciStreams.hpp -sharkFunction.hpp ciTypeFlow.hpp -sharkFunction.hpp llvmHeaders.hpp -sharkFunction.hpp llvmValue.hpp -sharkFunction.hpp sharkBuilder.hpp -sharkFunction.hpp sharkContext.hpp -sharkFunction.hpp sharkInvariants.hpp -sharkFunction.hpp sharkStack.hpp - -sharkInliner.cpp allocation.hpp -sharkInliner.cpp bytecodes.hpp -sharkInliner.cpp ciField.hpp -sharkInliner.cpp ciMethod.hpp -sharkInliner.cpp ciStreams.hpp -sharkInliner.cpp shark_globals.hpp -sharkInliner.cpp sharkBlock.hpp -sharkInliner.cpp sharkConstant.hpp -sharkInliner.cpp sharkInliner.hpp -sharkInliner.cpp sharkIntrinsics.hpp -sharkInliner.cpp sharkState.hpp -sharkInliner.cpp sharkValue.hpp - -sharkInliner.hpp allocation.hpp -sharkInliner.hpp ciMethod.hpp -sharkInliner.hpp llvmHeaders.hpp -sharkInliner.hpp sharkState.hpp - -sharkIntrinsics.cpp ciMethod.hpp -sharkIntrinsics.cpp llvmHeaders.hpp -sharkIntrinsics.cpp shark_globals.hpp -sharkIntrinsics.cpp sharkIntrinsics.hpp -sharkIntrinsics.cpp sharkState.hpp -sharkIntrinsics.cpp sharkValue.hpp - -sharkIntrinsics.hpp allocation.hpp -sharkIntrinsics.hpp ciMethod.hpp -sharkIntrinsics.hpp llvmHeaders.hpp -sharkIntrinsics.hpp sharkState.hpp - -sharkInvariants.cpp sharkInvariants.hpp - -sharkInvariants.hpp allocation.hpp -sharkInvariants.hpp ciEnv.hpp -sharkInvariants.hpp ciMethod.hpp -sharkInvariants.hpp ciInstanceKlass.hpp -sharkInvariants.hpp ciTypeFlow.hpp -sharkInvariants.hpp debugInfoRec.hpp -sharkInvariants.hpp dependencies.hpp -sharkInvariants.hpp llvmHeaders.hpp -sharkInvariants.hpp sharkBuilder.hpp - -sharkMemoryManager.hpp llvmHeaders.hpp -sharkMemoryManager.hpp sharkEntry.hpp - -sharkMemoryManager.cpp llvmHeaders.hpp -sharkMemoryManager.cpp sharkEntry.hpp -sharkMemoryManager.cpp sharkMemoryManager.hpp - -sharkNativeWrapper.cpp llvmHeaders.hpp -sharkNativeWrapper.cpp sharkNativeWrapper.hpp -sharkNativeWrapper.cpp sharkType.hpp - -sharkNativeWrapper.hpp handles.hpp -sharkNativeWrapper.hpp llvmHeaders.hpp -sharkNativeWrapper.hpp sharkBuilder.hpp -sharkNativeWrapper.hpp sharkContext.hpp -sharkNativeWrapper.hpp sharkInvariants.hpp -sharkNativeWrapper.hpp sharkStack.hpp - -sharkRuntime.cpp biasedLocking.hpp -sharkRuntime.cpp deoptimization.hpp -sharkRuntime.cpp llvmHeaders.hpp -sharkRuntime.cpp klassOop.hpp -sharkRuntime.cpp sharkRuntime.hpp -sharkRuntime.cpp stack_.inline.hpp -sharkRuntime.cpp thread.hpp - -sharkRuntime.hpp allocation.hpp -sharkRuntime.hpp llvmHeaders.hpp -sharkRuntime.hpp llvmValue.hpp -sharkRuntime.hpp klassOop.hpp -sharkRuntime.hpp thread.hpp - -sharkStack.cpp llvmHeaders.hpp -sharkStack.cpp sharkFunction.hpp -sharkStack.cpp sharkNativeWrapper.hpp -sharkStack.cpp sharkStack.hpp -sharkStack.cpp sharkType.hpp - -sharkStack.hpp llvmHeaders.hpp -sharkStack.hpp sharkInvariants.hpp -sharkStack.hpp sharkType.hpp - -sharkState.cpp allocation.hpp -sharkState.cpp ciType.hpp -sharkState.cpp ciTypeFlow.hpp -sharkState.cpp sharkBuilder.hpp -sharkState.cpp sharkCacheDecache.hpp -sharkState.cpp sharkState.hpp -sharkState.cpp sharkTopLevelBlock.hpp -sharkState.cpp sharkType.hpp -sharkState.cpp sharkValue.hpp - -sharkState.hpp allocation.hpp -sharkState.hpp ciMethod.hpp -sharkState.hpp llvmHeaders.hpp -sharkState.hpp sharkBuilder.hpp -sharkState.hpp sharkInvariants.hpp -sharkState.hpp sharkValue.hpp - -sharkStateScanner.cpp sharkState.hpp -sharkStateScanner.cpp sharkStateScanner.hpp - -sharkStateScanner.hpp allocation.hpp -sharkStateScanner.hpp llvmHeaders.hpp -sharkStateScanner.hpp sharkFunction.hpp -sharkStateScanner.hpp sharkInvariants.hpp - -sharkTopLevelBlock.cpp allocation.hpp -sharkTopLevelBlock.cpp bytecodes.hpp -sharkTopLevelBlock.cpp ciField.hpp -sharkTopLevelBlock.cpp ciInstance.hpp -sharkTopLevelBlock.cpp ciObjArrayKlass.hpp -sharkTopLevelBlock.cpp ciStreams.hpp -sharkTopLevelBlock.cpp ciType.hpp -sharkTopLevelBlock.cpp ciTypeFlow.hpp -sharkTopLevelBlock.cpp debug.hpp -sharkTopLevelBlock.cpp deoptimization.hpp -sharkTopLevelBlock.cpp llvmHeaders.hpp -sharkTopLevelBlock.cpp llvmValue.hpp -sharkTopLevelBlock.cpp shark_globals.hpp -sharkTopLevelBlock.cpp sharkCacheDecache.hpp -sharkTopLevelBlock.cpp sharkTopLevelBlock.hpp -sharkTopLevelBlock.cpp sharkBuilder.hpp -sharkTopLevelBlock.cpp sharkConstant.hpp -sharkTopLevelBlock.cpp sharkInliner.hpp -sharkTopLevelBlock.cpp sharkState.hpp -sharkTopLevelBlock.cpp sharkValue.hpp - -sharkTopLevelBlock.hpp allocation.hpp -sharkTopLevelBlock.hpp bytecodes.hpp -sharkTopLevelBlock.hpp ciStreams.hpp -sharkTopLevelBlock.hpp ciType.hpp -sharkTopLevelBlock.hpp ciTypeFlow.hpp -sharkTopLevelBlock.hpp llvmHeaders.hpp -sharkTopLevelBlock.hpp sharkBlock.hpp -sharkTopLevelBlock.hpp sharkBuilder.hpp -sharkTopLevelBlock.hpp sharkFunction.hpp -sharkTopLevelBlock.hpp sharkState.hpp -sharkTopLevelBlock.hpp sharkValue.hpp - -sharkType.hpp allocation.hpp -sharkType.hpp ciType.hpp -sharkType.hpp globalDefinitions.hpp -sharkType.hpp llvmHeaders.hpp -sharkType.hpp sharkContext.hpp - -sharkValue.cpp ciType.hpp -sharkValue.cpp llvmHeaders.hpp -sharkValue.cpp llvmValue.hpp -sharkValue.cpp sharkBuilder.hpp -sharkValue.cpp sharkValue.hpp - -sharkValue.hpp allocation.hpp -sharkValue.hpp ciType.hpp -sharkValue.hpp llvmHeaders.hpp -sharkValue.hpp llvmValue.hpp -sharkValue.hpp sharkType.hpp diff --git a/hotspot/src/share/vm/includeDB_zero b/hotspot/src/share/vm/includeDB_zero deleted file mode 100644 index b175ddac8e4..00000000000 --- a/hotspot/src/share/vm/includeDB_zero +++ /dev/null @@ -1,68 +0,0 @@ -// -// Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. -// Copyright 2009, 2010 Red Hat, Inc. -// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -// -// This code is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License version 2 only, as -// published by the Free Software Foundation. -// -// This code is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -// version 2 for more details (a copy is included in the LICENSE file that -// accompanied this code). -// -// You should have received a copy of the GNU General Public License version -// 2 along with this work; if not, write to the Free Software Foundation, -// Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -// -// Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -// or visit www.oracle.com if you need additional information or have any -// questions. -// -// - -// NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! - -cppInterpreter_.cpp stack_.inline.hpp - -entryFrame_.hpp javaCalls.hpp -entryFrame_.hpp stack_.hpp - -fakeStubFrame_.hpp stack_.hpp - -frame.hpp stack_.hpp - -frame.inline.hpp fakeStubFrame_.hpp -frame.inline.hpp entryFrame_.hpp -frame.inline.hpp interpreterFrame_.hpp -frame.inline.hpp sharkFrame_.hpp - -frame_.cpp interpreterRuntime.hpp -frame_.cpp scopeDesc.hpp - -interpreter.hpp entry_.hpp - -interpreterFrame_.hpp bytecodeInterpreter.hpp -interpreterFrame_.hpp methodOop.hpp -interpreterFrame_.hpp stack_.hpp -interpreterFrame_.hpp thread.hpp - -interpreterRT_.cpp stack_.inline.hpp - -sharkFrame_.hpp methodOop.hpp -sharkFrame_.hpp stack_.hpp - -stack_.hpp sizes.hpp - -stack_.inline.hpp stack_.hpp -stack_.inline.hpp thread.hpp - -stack_.cpp interpreterRuntime.hpp -stack_.cpp stack_.hpp -stack_.cpp stack_.inline.hpp - -stubGenerator_.cpp stack_.inline.hpp - -thread.hpp stack_.hpp diff --git a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp index 117d4ea07da..73eae232dc9 100644 --- a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp +++ b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp @@ -22,6 +22,35 @@ * */ +#ifndef SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP +#define SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP + +#include "code/stubs.hpp" +#include "interpreter/bytecodes.hpp" +#include "runtime/vmThread.hpp" +#include "utilities/top.hpp" +#ifdef TARGET_ARCH_MODEL_x86_32 +# include "interp_masm_x86_32.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_x86_64 +# include "interp_masm_x86_64.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_sparc +# include "interp_masm_sparc.hpp" +#endif +#ifdef TARGET_ARCH_MODEL_zero +# include "interp_masm_zero.hpp" +#endif +#ifdef TARGET_OS_FAMILY_linux +# include "thread_linux.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_solaris +# include "thread_solaris.inline.hpp" +#endif +#ifdef TARGET_OS_FAMILY_windows +# include "thread_windows.inline.hpp" +#endif + // This file contains the platform-independent parts // of the abstract interpreter and the abstract interpreter generator. @@ -256,3 +285,5 @@ class AbstractInterpreterGenerator: public StackObj { public: AbstractInterpreterGenerator(StubQueue* _code); }; + +#endif // SHARE_VM_INTERPRETER_ABSTRACTINTERPRETER_HPP diff --git a/hotspot/src/share/vm/interpreter/bytecode.cpp b/hotspot/src/share/vm/interpreter/bytecode.cpp index 58f7ebe64ab..badfc322e82 100644 --- a/hotspot/src/share/vm/interpreter/bytecode.cpp +++ b/hotspot/src/share/vm/interpreter/bytecode.cpp @@ -22,8 +22,15 @@ * */ -#include "incls/_precompiled.incl" -#include "incls/_bytecode.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecode.hpp" +#include "interpreter/linkResolver.hpp" +#include "oops/constantPoolOop.hpp" +#include "oops/oop.inline.hpp" +#include "runtime/fieldType.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/safepoint.hpp" +#include "runtime/signature.hpp" // Implementation of Bytecode diff --git a/hotspot/src/share/vm/interpreter/bytecode.hpp b/hotspot/src/share/vm/interpreter/bytecode.hpp index d172a81879a..ae27187aa14 100644 --- a/hotspot/src/share/vm/interpreter/bytecode.hpp +++ b/hotspot/src/share/vm/interpreter/bytecode.hpp @@ -22,6 +22,22 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODE_HPP +#define SHARE_VM_INTERPRETER_BYTECODE_HPP + +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.hpp" +#include "oops/methodOop.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + // Base class for different kinds of abstractions working // relative to an objects 'this' pointer. @@ -431,3 +447,5 @@ inline Bytecode_loadconstant* Bytecode_loadconstant_at(methodHandle method, int DEBUG_ONLY(b->verify()); return b; } + +#endif // SHARE_VM_INTERPRETER_BYTECODE_HPP diff --git a/hotspot/src/share/vm/interpreter/bytecodeHistogram.cpp b/hotspot/src/share/vm/interpreter/bytecodeHistogram.cpp index 4e3e7621040..31fe4dacb5d 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeHistogram.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeHistogram.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,8 +22,11 @@ * */ -# include "incls/_precompiled.incl" -# include "incls/_bytecodeHistogram.cpp.incl" +#include "precompiled.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "memory/resourceArea.hpp" +#include "runtime/os.hpp" +#include "utilities/growableArray.hpp" // ------------------------------------------------------------------------------------------------ // Non-product code diff --git a/hotspot/src/share/vm/interpreter/bytecodeHistogram.hpp b/hotspot/src/share/vm/interpreter/bytecodeHistogram.hpp index 21e30d20940..51798d1f078 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeHistogram.hpp +++ b/hotspot/src/share/vm/interpreter/bytecodeHistogram.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP +#define SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP + +#include "interpreter/bytecodes.hpp" +#include "memory/allocation.hpp" + // BytecodeCounter counts the number of bytecodes executed class BytecodeCounter: AllStatic { @@ -90,3 +96,5 @@ class BytecodePairHistogram: AllStatic { // Profile printing static void print(float cutoff = 0.01F) PRODUCT_RETURN; // cutoff in percent }; + +#endif // SHARE_VM_INTERPRETER_BYTECODEHISTOGRAM_HPP diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp index 9581f24bc30..686d1469abb 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp @@ -22,10 +22,46 @@ * */ - // no precompiled headers -#include "incls/_bytecodeInterpreter.cpp.incl" +#include "classfile/vmSymbols.hpp" +#include "gc_interface/collectedHeap.hpp" +#include "interpreter/bytecodeHistogram.hpp" +#include "interpreter/bytecodeInterpreter.hpp" +#include "interpreter/bytecodeInterpreter.inline.hpp" +#include "interpreter/interpreter.hpp" +#include "interpreter/interpreterRuntime.hpp" +#include "memory/cardTableModRefBS.hpp" +#include "memory/resourceArea.hpp" +#include "oops/objArrayKlass.hpp" +#include "oops/oop.inline.hpp" +#include "prims/jvmtiExport.hpp" +#include "runtime/frame.inline.hpp" +#include "runtime/handles.inline.hpp" +#include "runtime/interfaceSupport.hpp" +#include "runtime/sharedRuntime.hpp" +#include "runtime/threadCritical.hpp" +#include "utilities/exceptions.hpp" +#ifdef TARGET_OS_ARCH_linux_x86 +# include "orderAccess_linux_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_sparc +# include "orderAccess_linux_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_linux_zero +# include "orderAccess_linux_zero.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_x86 +# include "orderAccess_solaris_x86.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_solaris_sparc +# include "orderAccess_solaris_sparc.inline.hpp" +#endif +#ifdef TARGET_OS_ARCH_windows_x86 +# include "orderAccess_windows_x86.inline.hpp" +#endif + +// no precompiled headers #ifdef CC_INTERP /* diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp index 086b26b7f8e..636a070d668 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp @@ -22,6 +22,26 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP +#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP + +#include "memory/allocation.hpp" +#include "oops/methodDataOop.hpp" +#include "oops/methodOop.hpp" +#include "runtime/basicLock.hpp" +#include "runtime/frame.hpp" +#include "runtime/globals.hpp" +#include "utilities/globalDefinitions.hpp" +#ifdef TARGET_ARCH_x86 +# include "bytes_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytes_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytes_zero.hpp" +#endif + #ifdef CC_INTERP // CVM definitions find hotspot equivalents... @@ -558,8 +578,19 @@ void print(); #endif // PRODUCT // Platform fields/methods -# include "incls/_bytecodeInterpreter_pd.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "bytecodeInterpreter_x86.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytecodeInterpreter_sparc.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytecodeInterpreter_zero.hpp" +#endif + }; // BytecodeInterpreter #endif // CC_INTERP + +#endif // SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_HPP diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp index 041d6a1453f..d0dcf6ce7b7 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,12 @@ * */ +#ifndef SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP +#define SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP + +#include "interpreter/bytecodeInterpreter.hpp" +#include "runtime/stubRoutines.hpp" + // This file holds platform-independent bodies of inline functions for the C++ based interpreter #ifdef CC_INTERP @@ -37,5 +43,16 @@ #endif // Platform dependent data manipulation -# include "incls/_bytecodeInterpreter_pd.inline.hpp.incl" +#ifdef TARGET_ARCH_x86 +# include "bytecodeInterpreter_x86.inline.hpp" +#endif +#ifdef TARGET_ARCH_sparc +# include "bytecodeInterpreter_sparc.inline.hpp" +#endif +#ifdef TARGET_ARCH_zero +# include "bytecodeInterpreter_zero.inline.hpp" +#endif + #endif // CC_INTERP + +#endif // SHARE_VM_INTERPRETER_BYTECODEINTERPRETER_INLINE_HPP diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl b/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl index e35e5f62343..824cd917762 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl @@ -1,6 +1,6 @@ Tsa Phru character, Bhutanese people will always place it right after the base, but sometimes, due to +// "normalization" +// is placed after all the subjoined consonants, and it is also permitted there. +// A Chung Vowel lengthening mark --> . 0F71 It is placed after the base and any subjoined consonants but before any vowels +// Precomposed Sanskrit vowels --> The are combinations of subjoined consonants + vowels that have been assigned +// a given code-point (in spite of each single part of them having also a code-point +// They are avoided, and users are encouraged to use the combination of code-points that +// represents the same sound instead of using this combined characters. This is included here +// for compatibility with possible texts that use them (they are not in the Dzongkha keyboard). +// Halanta -> The Halanta or Virama character 0F84 indicates that a consonant should not use its inheernt vowel, +// in spite of not having other vowels present. It is usually placed immediatly after a base consonant, +// but in some special cases it can also be placed after a subjoined consonant, so this is also +// permitted in this algorithm. (Halanta is always displayed in Tibetan not used as a connecting char) +// +// Subjoined vowels -> Dependent vowels (matras) placed below the base and below all subjoined consonants. There +// might be as much as three subjoined vowels in a given stack (only one in general text, but up +// to three for abreviations, they have to be permitted). +// Superscript vowels -> There are three superscript vowels, and they can be repeated or combined (up to three +// times. They can combine with subjoined vowels, and are always coded after these. +// Anusvara --> Nasalisation sign. Traditioinally placed in absence of vowels, but also after vowels. In some +// special cases it can be placed before a vowel, so this is also permitted +// Candrabindu -> Forms of the Anusvara with different glyphs (and different in identity) which can be placed +// without vowel or after the vowel, but never before. Cannot combine with Anusvara. +// Stress marks -> Marks placed above or below a syllable, affecting the whole syllable. They are combining +// marks, so they have to be attached to a specific stack. The are using to emphasise a syllable. +// +// Digits -> Digits are not considered as non-combining characters because there are a few characters which +// combine with them, so they have to be considered independently. +// Digit combining marks -> dependent marks that combine with digits. +// +// TODO +// There are a number of characters in the CJK block that are used in Tibetan script, two of these are symbols +// are used as bases for combining glyphs, and have not been encoded in Tibetan. As these characters are outside +// of the tibetan block, they have not been treated in this program. + + +struct TibetanClassTable // This list must include all types of components that can be used inside a syllable +{ + enum CharClassValues // order is important here! This order must be the same that is found in each horizontal + // line in the statetable for Tibetan (file TibetanReordering.cpp). It assigns one number + // to each type of character that has to be considered when analysing the order in which + // characters can be placed + { + CC_RESERVED = 0, //Non Combining Characters + CC_BASE = 1, // Base Consonants, Base Consonants with Subjoined attached in code point, Sanskrit base marks + CC_SUBJOINED = 2, // Subjoined Consonats, combination of more than Subjoined Consonants in the code point + CC_TSA_PHRU = 3, // Tsa-Phru character 0F39 + CC_A_CHUNG = 4, // Vowel Lenthening a-chung mark 0F71 + CC_COMP_SANSKRIT = 5, // Precomposed Sanskrit vowels including Subjoined characters and vowels + CC_HALANTA = 6, // Halanta Character 0F84 + CC_BELOW_VOWEL = 7, // Subjoined vowels + CC_ABOVE_VOWEL = 8, // Superscript vowels + CC_ANUSVARA = 9, // Tibetan sign Rjes Su Nga Ro 0F7E + CC_CANDRABINDU = 10, // Tibetan sign Sna Ldan and Nyi Zla Naa Da 0F82, 0F83 + CC_VISARGA = 11, // Tibetan sign Rnam Bcad (0F7F) + CC_ABOVE_S_MARK = 12, // Stress Marks placed above the text + CC_BELOW_S_MARK = 13, // Stress Marks placed below the text + CC_DIGIT = 14, // Dzongkha Digits + CC_PRE_DIGIT_MARK = 15, // Mark placed before the digit + CC_POST_BELOW_DIGIT_M = 16, // Mark placed below or after the digit + CC_COUNT = 17 // This is the number of character classes + }; + + enum CharClassFlags + { + CF_CLASS_MASK = 0x0000FFFF, + + CF_DOTTED_CIRCLE = 0x04000000, // add a dotted circle if a character with this flag is the first in a syllable + CF_DIGIT = 0x01000000, // flag to speed up comparaisson + CF_PREDIGIT = 0x02000000, // flag to detect pre-digit marks for reordering + + // position flags + CF_POS_BEFORE = 0x00080000, + CF_POS_BELOW = 0x00040000, + CF_POS_ABOVE = 0x00020000, + CF_POS_AFTER = 0x00010000, + CF_POS_MASK = 0x000f0000 + }; + + typedef le_uint32 CharClass; + + typedef le_int32 ScriptFlags; + + LEUnicode firstChar; // for Tibetan this will become xOF00 + LEUnicode lastChar; // and this x0FFF + const CharClass *classTable; + + CharClass getCharClass(LEUnicode ch) const; + + static const TibetanClassTable *getTibetanClassTable(); +}; + + +class TibetanReordering /* not : public UObject because all methods are static */ { +public: + static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode, + LEUnicode *outChars, LEGlyphStorage &glyphStorage); + + static const FeatureMap *getFeatureMap(le_int32 &count); + +private: + // do not instantiate + TibetanReordering(); + + static le_int32 findSyllable(const TibetanClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount); + +}; + + +U_NAMESPACE_END +#endif diff --git a/jdk/test/java/awt/font/TextLayout/TestOldHangul.java b/jdk/test/java/awt/font/TextLayout/TestOldHangul.java new file mode 100644 index 00000000000..b52ba38557d --- /dev/null +++ b/jdk/test/java/awt/font/TextLayout/TestOldHangul.java @@ -0,0 +1,83 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +/* @test @(#)TestOldHangul.java + * @summary Verify Old Hangul display + * @bug 6886358 + * @ignore Requires a special font installed. + */ + +import javax.swing.*; +import javax.swing.border.LineBorder; +import java.awt.*; +import java.awt.event.ActionEvent; + +public class TestOldHangul { + public static void main(String[] args) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + new TestOldHangul().run(); + } + }); + } + public static boolean AUTOMATIC_TEST=true; // true; run test automatically, else manually at button push + + private void run() { + Font ourFont = null; + final String fontName = "UnBatangOdal.ttf"; // download from http://chem.skku.ac.kr/~wkpark/project/font/GSUB/UnbatangOdal/ and place in {user.home}/fonts/ + try { + ourFont = Font.createFont(Font.TRUETYPE_FONT, new java.io.File(new java.io.File(System.getProperty("user.home"),"fonts"), fontName)); + ourFont = ourFont.deriveFont((float)48.0); + } catch(Throwable t) { + t.printStackTrace(); + System.err.println("Fail: " + t); + return; + } + JFrame frame = new JFrame(System.getProperty("java.version")); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + JPanel panel = new JPanel(); + final JTextArea label = new JTextArea("(empty)"); + label.setSize(400, 300); + label.setBorder(new LineBorder(Color.black)); + label.setFont(ourFont); + final String str = "\u110A\u119E\u11B7\u0020\u1112\u119E\u11AB\uAE00\u0020\u1100\u119E\u11F9\u0020\u112B\u119E\u11BC\n"; + + if(AUTOMATIC_TEST) { /* run the test automatically (else, manually) */ + label.setText(str); + } else { + JButton button = new JButton("Old Hangul"); + button.addActionListener(new AbstractAction() { + public void actionPerformed(ActionEvent actionEvent) { + label.setText(str); + } + }); + panel.add(button); + } + panel.add(label); + + frame.getContentPane().add(panel); + frame.pack(); + frame.setVisible(true); + } +} + diff --git a/jdk/test/java/awt/font/TextLayout/TestTibetan.java b/jdk/test/java/awt/font/TextLayout/TestTibetan.java new file mode 100644 index 00000000000..bc55472a3cd --- /dev/null +++ b/jdk/test/java/awt/font/TextLayout/TestTibetan.java @@ -0,0 +1,87 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + * + */ + +/* @test @(#)TestTibetan.java + * @summary verify tibetan output + * @bug 6886358 + * @ignore Requires a special font installed + */ + +import javax.swing.*; +import javax.swing.border.LineBorder; +import java.awt.*; +import java.awt.event.ActionEvent; + +public class TestTibetan { + public static void main(String[] args) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + new TestTibetan().run(); + } + }); + } + public static boolean AUTOMATIC_TEST=true; // true; run test automatically, else manually at button push + + private void run() { + Font ourFont = null; + try { + //For best results: Font from: http://download.savannah.gnu.org/releases/free-tibetan/jomolhari/ + // place in $(user.home)/fonts/ + ourFont = Font.createFont(Font.TRUETYPE_FONT, new java.io.File(new java.io.File(System.getProperty("user.home"),"fonts"), "Jomolhari-alpha3c-0605331.ttf")); + + //ourFont = new Font("serif",Font.PLAIN, 24); + ourFont = ourFont.deriveFont((float)24.0); + } catch(Throwable t) { + t.printStackTrace(); + System.err.println("Fail: " + t); + return; + } + JFrame frame = new JFrame(System.getProperty("java.version")); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + JPanel panel = new JPanel(); + final JTextArea label = new JTextArea("(empty)"); + label.setSize(400, 300); + label.setBorder(new LineBorder(Color.black)); + label.setFont(ourFont); + + final String str = "\u0F04\u0F05\u0F0D\u0F0D\u0020\u0F4F\u0F72\u0F53\u0F0B\u0F4F\u0F72\u0F53\u0F0B\u0F42\u0FB1\u0F72\u0F0B\u0F51\u0F54\u0F60\u0F0B\u0F62\u0FA9\u0F63"; // TinTin. + + if(AUTOMATIC_TEST) { /* run the test automatically (else, manually) */ + label.setText(str); + } else { + JButton button = new JButton("Set Char x0DDD"); + button.addActionListener(new AbstractAction() { + public void actionPerformed(ActionEvent actionEvent) { + label.setText(str); + } + }); + panel.add(button); + } + panel.add(label); + + frame.getContentPane().add(panel); + frame.pack(); + frame.setVisible(true); + } +} + -- GitLab From dd62e29b29d2bbe9c05d1d0de86952e8fc636d7a Mon Sep 17 00:00:00 2001 From: Keith McGuigan Date: Mon, 6 Dec 2010 20:21:15 -0500 Subject: [PATCH 091/158] 7003782: Update JVMTI version to 1.2 for jdk7 Update minor version to 1.2 for jdk7 Reviewed-by: phh, dcubed --- hotspot/src/share/vm/prims/jvmti.xml | 6 +++--- hotspot/src/share/vm/prims/jvmtiEnvBase.cpp | 8 ++++++++ hotspot/src/share/vm/prims/jvmtiEnvBase.hpp | 4 +++- hotspot/src/share/vm/prims/jvmtiExport.cpp | 12 ++++++------ hotspot/src/share/vm/prims/jvmtiH.xsl | 3 ++- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/hotspot/src/share/vm/prims/jvmti.xml b/hotspot/src/share/vm/prims/jvmti.xml index 5e93bb36968..8d580294157 100644 --- a/hotspot/src/share/vm/prims/jvmti.xml +++ b/hotspot/src/share/vm/prims/jvmti.xml @@ -1,7 +1,7 @@