mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8167199: Add C2 SPARC intrinsic for BigInteger::multiplyToLen() method
Preliminary support for intrinsic multiplyToLen, including generalised version based on 'mpmul' instruction (when available). Reviewed-by: kvn, neliasso
This commit is contained in:
parent
1af1d42ac4
commit
b125aebb91
10 changed files with 912 additions and 59 deletions
|
@ -1574,29 +1574,39 @@ void MacroAssembler::br_null_short(Register s1, Predict p, Label& L) {
|
|||
assert_not_delayed();
|
||||
if (use_cbcond(L)) {
|
||||
Assembler::cbcond(zero, ptr_cc, s1, 0, L);
|
||||
return;
|
||||
} else {
|
||||
br_null(s1, false, p, L);
|
||||
delayed()->nop();
|
||||
}
|
||||
br_null(s1, false, p, L);
|
||||
delayed()->nop();
|
||||
}
|
||||
|
||||
void MacroAssembler::br_notnull_short(Register s1, Predict p, Label& L) {
|
||||
assert_not_delayed();
|
||||
if (use_cbcond(L)) {
|
||||
Assembler::cbcond(notZero, ptr_cc, s1, 0, L);
|
||||
return;
|
||||
} else {
|
||||
br_notnull(s1, false, p, L);
|
||||
delayed()->nop();
|
||||
}
|
||||
br_notnull(s1, false, p, L);
|
||||
delayed()->nop();
|
||||
}
|
||||
|
||||
// Unconditional short branch
|
||||
void MacroAssembler::ba_short(Label& L) {
|
||||
assert_not_delayed();
|
||||
if (use_cbcond(L)) {
|
||||
Assembler::cbcond(equal, icc, G0, G0, L);
|
||||
return;
|
||||
} else {
|
||||
br(always, false, pt, L);
|
||||
delayed()->nop();
|
||||
}
|
||||
br(always, false, pt, L);
|
||||
}
|
||||
|
||||
// Branch if 'icc' says zero or not (i.e. icc.z == 1|0).
|
||||
|
||||
void MacroAssembler::br_icc_zero(bool iszero, Predict p, Label &L) {
|
||||
assert_not_delayed();
|
||||
Condition cf = (iszero ? Assembler::zero : Assembler::notZero);
|
||||
br(cf, false, p, L);
|
||||
delayed()->nop();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue