comparison src/share/vm/compiler/oopMap.cpp @ 7125:1baf7f1e3f23

decoupled C++ Graal runtime from C1
author Doug Simon <doug.simon@oracle.com>
date Mon, 03 Dec 2012 15:32:17 +0100
parents 7d815d842ee0
children 3ac7d10a6572
comparison
equal deleted inserted replaced
7124:ab65fa23f8e9 7125:1baf7f1e3f23
317 static DoNothingClosure do_nothing; 317 static DoNothingClosure do_nothing;
318 318
319 static void add_derived_oop(oop* base, oop* derived) { 319 static void add_derived_oop(oop* base, oop* derived) {
320 #ifndef TIERED 320 #ifndef TIERED
321 COMPILER1_PRESENT(ShouldNotReachHere();) 321 COMPILER1_PRESENT(ShouldNotReachHere();)
322 GRAAL_ONLY(ShouldNotReachHere();)
322 #endif // TIERED 323 #endif // TIERED
323 #ifdef COMPILER2 324 #ifdef COMPILER2
324 DerivedPointerTable::add(derived, base); 325 DerivedPointerTable::add(derived, base);
325 #endif // COMPILER2 326 #endif // COMPILER2
326 } 327 }
378 { 379 {
379 OopMapStream oms(map,OopMapValue::derived_oop_value); 380 OopMapStream oms(map,OopMapValue::derived_oop_value);
380 if (!oms.is_done()) { 381 if (!oms.is_done()) {
381 #ifndef TIERED 382 #ifndef TIERED
382 COMPILER1_PRESENT(ShouldNotReachHere();) 383 COMPILER1_PRESENT(ShouldNotReachHere();)
384 GRAAL_ONLY(ShouldNotReachHere();)
383 #endif // !TIERED 385 #endif // !TIERED
384 // Protect the operation on the derived pointers. This 386 // Protect the operation on the derived pointers. This
385 // protects the addition of derived pointers to the shared 387 // protects the addition of derived pointers to the shared
386 // derived pointer table in DerivedPointerTable::add(). 388 // derived pointer table in DerivedPointerTable::add().
387 MutexLockerEx x(DerivedPointerTableGC_lock, Mutex::_no_safepoint_check_flag); 389 MutexLockerEx x(DerivedPointerTableGC_lock, Mutex::_no_safepoint_check_flag);
500 nof_callee++; 502 nof_callee++;
501 } 503 }
502 504
503 // Check that runtime stubs save all callee-saved registers 505 // Check that runtime stubs save all callee-saved registers
504 #ifdef COMPILER2 506 #ifdef COMPILER2
505 assert(cb->is_compiled_by_c1() || !cb->is_runtime_stub() || 507 assert(cb->is_compiled_by_c1() || cb->is_compiled_by_graal() || !cb->is_runtime_stub() ||
506 (nof_callee >= SAVED_ON_ENTRY_REG_COUNT || nof_callee >= C_SAVED_ON_ENTRY_REG_COUNT), 508 (nof_callee >= SAVED_ON_ENTRY_REG_COUNT || nof_callee >= C_SAVED_ON_ENTRY_REG_COUNT),
507 "must save all"); 509 "must save all");
508 #endif // COMPILER2 510 #endif // COMPILER2
509 511
510 // Copy found callee-saved register to reg_map 512 // Copy found callee-saved register to reg_map
519 #ifndef PRODUCT 521 #ifndef PRODUCT
520 522
521 bool OopMap::has_derived_pointer() const { 523 bool OopMap::has_derived_pointer() const {
522 #ifndef TIERED 524 #ifndef TIERED
523 COMPILER1_PRESENT(return false); 525 COMPILER1_PRESENT(return false);
526 GRAAL_ONLY(return false);
524 #endif // !TIERED 527 #endif // !TIERED
525 #ifdef COMPILER2 528 #ifdef COMPILER2
526 OopMapStream oms((OopMap*)this,OopMapValue::derived_oop_value); 529 OopMapStream oms((OopMap*)this,OopMapValue::derived_oop_value);
527 return oms.is_done(); 530 return oms.is_done();
528 #else 531 #else