mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
7063628: Use cbcond on T4
Add new short branch instruction to Hotspot sparc assembler. Reviewed-by: never, twisti, jrose
This commit is contained in:
parent
aa16309657
commit
48c1293916
30 changed files with 966 additions and 1097 deletions
|
@ -191,22 +191,19 @@ address AbstractInterpreterGenerator::generate_slow_signature_handler() {
|
|||
// Optimization, see if there are any more args and get out prior to checking
|
||||
// all 16 float registers. My guess is that this is rare.
|
||||
// If is_register is false, then we are done the first six integer args.
|
||||
__ tst(G4_scratch);
|
||||
__ brx(Assembler::zero, false, Assembler::pt, done);
|
||||
__ delayed()->nop();
|
||||
|
||||
__ br_null_short(G4_scratch, Assembler::pt, done);
|
||||
}
|
||||
__ ba(false, NextArg);
|
||||
__ ba(NextArg);
|
||||
__ delayed()->srl( G4_scratch, 2, G4_scratch );
|
||||
|
||||
__ bind(LoadFloatArg);
|
||||
__ ldf( FloatRegisterImpl::S, a, ldarg.as_float_register(), 4);
|
||||
__ ba(false, NextArg);
|
||||
__ ba(NextArg);
|
||||
__ delayed()->srl( G4_scratch, 2, G4_scratch );
|
||||
|
||||
__ bind(LoadDoubleArg);
|
||||
__ ldf( FloatRegisterImpl::D, a, ldarg.as_double_register() );
|
||||
__ ba(false, NextArg);
|
||||
__ ba(NextArg);
|
||||
__ delayed()->srl( G4_scratch, 2, G4_scratch );
|
||||
|
||||
__ bind(NextArg);
|
||||
|
@ -234,8 +231,7 @@ void InterpreterGenerator::generate_counter_overflow(Label& Lcontinue) {
|
|||
__ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::frequency_counter_overflow), O2, O2, true);
|
||||
// returns verified_entry_point or NULL
|
||||
// we ignore it in any case
|
||||
__ ba(false, Lcontinue);
|
||||
__ delayed()->nop();
|
||||
__ ba_short(Lcontinue);
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue