Mercurial > hg > truffle
comparison src/cpu/sparc/vm/interp_masm_sparc.cpp @ 6805:69fb89ec6fa7
7198084: NPG: distance is too big for short branches in test_invocation_counter_for_mdp()
Summary: use long branches in test_invocation_counter_for_mdp()
Reviewed-by: twisti
author | kvn |
---|---|
date | Thu, 27 Sep 2012 15:49:48 -0700 |
parents | da91efe96a93 |
children | f34d701e952e b2dbd323c668 |
comparison
equal
deleted
inserted
replaced
6804:e626685e9f6c | 6805:69fb89ec6fa7 |
---|---|
1393 | 1393 |
1394 // Test to see if we should create a method data oop | 1394 // Test to see if we should create a method data oop |
1395 AddressLiteral profile_limit((address) &InvocationCounter::InterpreterProfileLimit); | 1395 AddressLiteral profile_limit((address) &InvocationCounter::InterpreterProfileLimit); |
1396 sethi(profile_limit, Rtmp); | 1396 sethi(profile_limit, Rtmp); |
1397 ld(Rtmp, profile_limit.low10(), Rtmp); | 1397 ld(Rtmp, profile_limit.low10(), Rtmp); |
1398 cmp_and_br_short(invocation_count, Rtmp, Assembler::lessUnsigned, Assembler::pn, profile_continue); | 1398 cmp(invocation_count, Rtmp); |
1399 // Use long branches because call_VM() code and following code generated by | |
1400 // test_backedge_count_for_osr() is large in debug VM. | |
1401 br(Assembler::lessUnsigned, false, Assembler::pn, profile_continue); | |
1402 delayed()->nop(); | |
1399 | 1403 |
1400 // Build it now. | 1404 // Build it now. |
1401 call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method)); | 1405 call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::profile_method)); |
1402 set_method_data_pointer_for_bcp(); | 1406 set_method_data_pointer_for_bcp(); |
1403 ba_short(profile_continue); | 1407 ba(profile_continue); |
1408 delayed()->nop(); | |
1404 bind(done); | 1409 bind(done); |
1405 } | 1410 } |
1406 | 1411 |
1407 // Store a value at some constant offset from the method data pointer. | 1412 // Store a value at some constant offset from the method data pointer. |
1408 | 1413 |