comparison src/cpu/sparc/vm/sharedRuntime_sparc.cpp @ 22500:148664eacffa

Remove additional pad in deopt_blob when building with JVMCI; fix comment blocks in implicit_exception_uncommon_trap
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Mon, 31 Aug 2015 17:37:55 +0200
parents a69a8d96ee6e
children 4594b98717a0
comparison
equal deleted inserted replaced
22471:a69a8d96ee6e 22500:148664eacffa
3466 #ifdef ASSERT 3466 #ifdef ASSERT
3467 if (UseStackBanging) { 3467 if (UseStackBanging) {
3468 pad += StackShadowPages*16 + 32; 3468 pad += StackShadowPages*16 + 32;
3469 } 3469 }
3470 #endif 3470 #endif
3471 #if INCLUDE_JVMCI
3472 pad += 1000; // Increase the buffer size when compiling for JVMCI
3473 #endif
3474 #ifdef _LP64 3471 #ifdef _LP64
3475 CodeBuffer buffer("deopt_blob", 2100+pad+1000, 512); 3472 CodeBuffer buffer("deopt_blob", 2100+pad, 512);
3476 #else 3473 #else
3477 // Measured 8/7/03 at 1212 in 32bit debug build (no VerifyThread) 3474 // Measured 8/7/03 at 1212 in 32bit debug build (no VerifyThread)
3478 // Measured 8/7/03 at 1396 in 32bit debug build (VerifyThread) 3475 // Measured 8/7/03 at 1396 in 32bit debug build (VerifyThread)
3479 CodeBuffer buffer("deopt_blob", 1600+pad, 512); 3476 CodeBuffer buffer("deopt_blob", 1600+pad, 512);
3480 #endif /* _LP64 */ 3477 #endif /* _LP64 */
3537 __ ba(cont); 3534 __ ba(cont);
3538 __ delayed()->mov(Deoptimization::Unpack_deopt, L0deopt_mode); 3535 __ delayed()->mov(Deoptimization::Unpack_deopt, L0deopt_mode);
3539 3536
3540 3537
3541 #if INCLUDE_JVMCI 3538 #if INCLUDE_JVMCI
3542 masm->block_comment("BEGIN JVMCI"); 3539 masm->block_comment("BEGIN implicit_exception_uncommon_trap");
3543 int implicit_exception_uncommon_trap_offset = __ offset() - start; 3540 int implicit_exception_uncommon_trap_offset = __ offset() - start;
3544 __ ld_ptr(G2_thread, in_bytes(JavaThread::jvmci_implicit_exception_pc_offset()), O7); 3541 __ ld_ptr(G2_thread, in_bytes(JavaThread::jvmci_implicit_exception_pc_offset()), O7);
3545 __ st(G0, Address(G2_thread, in_bytes(JavaThread::jvmci_implicit_exception_pc_offset()))); 3542 __ st(G0, Address(G2_thread, in_bytes(JavaThread::jvmci_implicit_exception_pc_offset())));
3546 __ add(O7, -8, O7); 3543 __ add(O7, -8, O7);
3547 3544
3548 int uncommon_trap_offset = __ offset() - start; 3545 int uncommon_trap_offset = __ offset() - start;
3549 3546
3550 // Save everything in sight. 3547 // Save everything in sight.
3551 masm->block_comment("save_live_regs");
3552 (void) RegisterSaver::save_live_registers(masm, 0, &frame_size_words); 3548 (void) RegisterSaver::save_live_registers(masm, 0, &frame_size_words);
3553 masm->block_comment("/save_live_regs");
3554 masm->block_comment("set_last_java_frame");
3555 __ set_last_Java_frame(SP, NULL); 3549 __ set_last_Java_frame(SP, NULL);
3556 masm->block_comment("/set_last_java_frame");
3557 3550
3558 __ ld(G2_thread, in_bytes(JavaThread::pending_deoptimization_offset()), O1); 3551 __ ld(G2_thread, in_bytes(JavaThread::pending_deoptimization_offset()), O1);
3559 __ sub(G0, 1, L1); 3552 __ sub(G0, 1, L1);
3560 __ st(L1, G2_thread, in_bytes(JavaThread::pending_deoptimization_offset())); 3553 __ st(L1, G2_thread, in_bytes(JavaThread::pending_deoptimization_offset()));
3561 3554
3569 __ reset_last_Java_frame(); 3562 __ reset_last_Java_frame();
3570 3563
3571 Label after_fetch_unroll_info_call; 3564 Label after_fetch_unroll_info_call;
3572 __ ba(after_fetch_unroll_info_call); 3565 __ ba(after_fetch_unroll_info_call);
3573 __ delayed()->nop(); // Delay slot 3566 __ delayed()->nop(); // Delay slot
3574 masm->block_comment("END JVMCI"); 3567 masm->block_comment("END implicit_exception_uncommon_trap");
3575 #endif // INCLUDE_JVMCI 3568 #endif // INCLUDE_JVMCI
3576 3569
3577 int exception_offset = __ offset() - start; 3570 int exception_offset = __ offset() - start;
3578 3571
3579 // restore G2, the trampoline destroyed it 3572 // restore G2, the trampoline destroyed it