equal
deleted
inserted
replaced
2428 // In order for GC to work, don't clear the last_Java_sp until after blocking. |
2428 // In order for GC to work, don't clear the last_Java_sp until after blocking. |
2429 Label after_transition; |
2429 Label after_transition; |
2430 { |
2430 { |
2431 Label no_block, sync; |
2431 Label no_block, sync; |
2432 |
2432 |
2433 if (UseMembar) { |
2433 // Force this write out before the read below. |
2434 // Force this write out before the read below. |
2434 __ fence(); |
2435 __ fence(); |
|
2436 } else { |
|
2437 // Write serialization page so VM thread can do a pseudo remote membar. |
|
2438 // We use the current thread pointer to calculate a thread specific |
|
2439 // offset to write to within the page. This minimizes bus traffic |
|
2440 // due to cache line collision. |
|
2441 __ serialize_memory(R16_thread, r_temp_4, r_temp_5); |
|
2442 } |
|
2443 |
2435 |
2444 Register sync_state_addr = r_temp_4; |
2436 Register sync_state_addr = r_temp_4; |
2445 Register sync_state = r_temp_5; |
2437 Register sync_state = r_temp_5; |
2446 Register suspend_flags = r_temp_6; |
2438 Register suspend_flags = r_temp_6; |
2447 |
2439 |