UNSUPPORTED_COND(kMips64CmpS, branch->condition);
}
Label* nan = acceptNaN ? tlabel : flabel;
- __ BranchFS(tlabel, nan, cc, i.InputSingleRegister(0),
- i.InputSingleRegister(1));
+ __ BranchF32(tlabel, nan, cc, i.InputSingleRegister(0),
+ i.InputSingleRegister(1));
if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel.
UNSUPPORTED_COND(kMips64CmpD, branch->condition);
}
Label* nan = acceptNaN ? tlabel : flabel;
- __ BranchF(tlabel, nan, cc, i.InputDoubleRegister(0),
- i.InputDoubleRegister(1));
+ __ BranchF64(tlabel, nan, cc, i.InputDoubleRegister(0),
+ i.InputDoubleRegister(1));
if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel.
UNSUPPORTED_COND(kMips64CmpS, branch->condition);
}
Label* nan = acceptNaN ? tlabel : flabel;
- __ BranchFS(tlabel, nan, cc, i.InputSingleRegister(0),
- i.InputSingleRegister(1));
+ __ BranchF32(tlabel, nan, cc, i.InputSingleRegister(0),
+ i.InputSingleRegister(1));
if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel.
UNSUPPORTED_COND(kMips64CmpD, branch->condition);
}
Label* nan = acceptNaN ? tlabel : flabel;
- __ BranchF(tlabel, nan, cc, i.InputDoubleRegister(0),
- i.InputDoubleRegister(1));
+ __ BranchF64(tlabel, nan, cc, i.InputDoubleRegister(0),
+ i.InputDoubleRegister(1));
if (!branch->fallthru) __ Branch(flabel); // no fallthru to flabel.
} else {
}
-void MacroAssembler::BranchFSize(SecondaryField sizeField, Label* target,
- Label* nan, Condition cc, FPURegister cmp1,
- FPURegister cmp2, BranchDelaySlot bd) {
+void MacroAssembler::BranchFCommon(SecondaryField sizeField, Label* target,
+ Label* nan, Condition cc, FPURegister cmp1,
+ FPURegister cmp2, BranchDelaySlot bd) {
BlockTrampolinePoolScope block_trampoline_pool(this);
if (cc == al) {
Branch(bd, target);
}
-void MacroAssembler::BranchF(Label* target, Label* nan, Condition cc,
- FPURegister cmp1, FPURegister cmp2,
- BranchDelaySlot bd) {
- BranchFSize(D, target, nan, cc, cmp1, cmp2, bd);
-}
-
-
-void MacroAssembler::BranchFS(Label* target, Label* nan, Condition cc,
- FPURegister cmp1, FPURegister cmp2,
- BranchDelaySlot bd) {
- BranchFSize(S, target, nan, cc, cmp1, cmp2, bd);
-}
-
-
void MacroAssembler::FmoveLow(FPURegister dst, Register src_low) {
if (IsFp64Mode()) {
DCHECK(!src_low.is(at));
void Mfhc1(Register rt, FPURegister fs);
// Wrapper functions for the different cmp/branch types.
- void BranchFSize(SecondaryField sizeField, Label* target, Label* nan,
- Condition cc, FPURegister cmp1, FPURegister cmp2,
- BranchDelaySlot bd = PROTECT);
-
- void BranchF(Label* target,
- Label* nan,
- Condition cc,
- FPURegister cmp1,
- FPURegister cmp2,
- BranchDelaySlot bd = PROTECT);
+ inline void BranchF32(Label* target, Label* nan, Condition cc,
+ FPURegister cmp1, FPURegister cmp2,
+ BranchDelaySlot bd = PROTECT) {
+ BranchFCommon(S, target, nan, cc, cmp1, cmp2, bd);
+ }
- void BranchFS(Label* target, Label* nan, Condition cc, FPURegister cmp1,
- FPURegister cmp2, BranchDelaySlot bd = PROTECT);
+ inline void BranchF64(Label* target, Label* nan, Condition cc,
+ FPURegister cmp1, FPURegister cmp2,
+ BranchDelaySlot bd = PROTECT) {
+ BranchFCommon(D, target, nan, cc, cmp1, cmp2, bd);
+ }
// Alternate (inline) version for better readability with USE_DELAY_SLOT.
- inline void BranchF(BranchDelaySlot bd,
- Label* target,
- Label* nan,
- Condition cc,
- FPURegister cmp1,
- FPURegister cmp2) {
- BranchF(target, nan, cc, cmp1, cmp2, bd);
+ inline void BranchF64(BranchDelaySlot bd, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2) {
+ BranchF64(target, nan, cc, cmp1, cmp2, bd);
}
- inline void BranchFS(BranchDelaySlot bd, Label* target, Label* nan,
- Condition cc, FPURegister cmp1, FPURegister cmp2) {
- BranchFS(target, nan, cc, cmp1, cmp2, bd);
+ inline void BranchF32(BranchDelaySlot bd, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2) {
+ BranchF32(target, nan, cc, cmp1, cmp2, bd);
+ }
+
+ // Alias functions for backward compatibility.
+ inline void BranchF(Label* target, Label* nan, Condition cc, FPURegister cmp1,
+ FPURegister cmp2, BranchDelaySlot bd = PROTECT) {
+ BranchF64(target, nan, cc, cmp1, cmp2, bd);
+ }
+
+ inline void BranchF(BranchDelaySlot bd, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2) {
+ BranchF64(bd, target, nan, cc, cmp1, cmp2);
}
// Truncates a double using a specific rounding mode, and writes the value
void Jr(Label* L, BranchDelaySlot bdslot);
void Jalr(Label* L, BranchDelaySlot bdslot);
+ // Common implementation of BranchF functions for the different formats.
+ void BranchFCommon(SecondaryField sizeField, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2,
+ BranchDelaySlot bd = PROTECT);
+
// Helper functions for generating invokes.
void InvokePrologue(const ParameterCount& expected,
const ParameterCount& actual,
}
-void MacroAssembler::BranchFSize(SecondaryField sizeField, Label* target,
- Label* nan, Condition cc, FPURegister cmp1,
- FPURegister cmp2, BranchDelaySlot bd) {
+void MacroAssembler::BranchFCommon(SecondaryField sizeField, Label* target,
+ Label* nan, Condition cc, FPURegister cmp1,
+ FPURegister cmp2, BranchDelaySlot bd) {
BlockTrampolinePoolScope block_trampoline_pool(this);
if (cc == al) {
Branch(bd, target);
}
-void MacroAssembler::BranchF(Label* target, Label* nan, Condition cc,
- FPURegister cmp1, FPURegister cmp2,
- BranchDelaySlot bd) {
- BranchFSize(D, target, nan, cc, cmp1, cmp2, bd);
-}
-
-
-void MacroAssembler::BranchFS(Label* target, Label* nan, Condition cc,
- FPURegister cmp1, FPURegister cmp2,
- BranchDelaySlot bd) {
- BranchFSize(S, target, nan, cc, cmp1, cmp2, bd);
-}
-
-
void MacroAssembler::FmoveLow(FPURegister dst, Register src_low) {
DCHECK(!src_low.is(at));
mfhc1(at, dst);
FPURegister scratch);
// Wrapper functions for the different cmp/branch types.
- void BranchFSize(SecondaryField sizeField, Label* target, Label* nan,
- Condition cc, FPURegister cmp1, FPURegister cmp2,
- BranchDelaySlot bd = PROTECT);
-
- void BranchF(Label* target,
- Label* nan,
- Condition cc,
- FPURegister cmp1,
- FPURegister cmp2,
- BranchDelaySlot bd = PROTECT);
+ inline void BranchF32(Label* target, Label* nan, Condition cc,
+ FPURegister cmp1, FPURegister cmp2,
+ BranchDelaySlot bd = PROTECT) {
+ BranchFCommon(S, target, nan, cc, cmp1, cmp2, bd);
+ }
- void BranchFS(Label* target, Label* nan, Condition cc, FPURegister cmp1,
- FPURegister cmp2, BranchDelaySlot bd = PROTECT);
+ inline void BranchF64(Label* target, Label* nan, Condition cc,
+ FPURegister cmp1, FPURegister cmp2,
+ BranchDelaySlot bd = PROTECT) {
+ BranchFCommon(D, target, nan, cc, cmp1, cmp2, bd);
+ }
// Alternate (inline) version for better readability with USE_DELAY_SLOT.
- inline void BranchF(BranchDelaySlot bd,
- Label* target,
- Label* nan,
- Condition cc,
- FPURegister cmp1,
- FPURegister cmp2) {
- BranchF(target, nan, cc, cmp1, cmp2, bd);
+ inline void BranchF64(BranchDelaySlot bd, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2) {
+ BranchF64(target, nan, cc, cmp1, cmp2, bd);
}
- inline void BranchFS(BranchDelaySlot bd, Label* target, Label* nan,
- Condition cc, FPURegister cmp1, FPURegister cmp2) {
- BranchFS(target, nan, cc, cmp1, cmp2, bd);
+ inline void BranchF32(BranchDelaySlot bd, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2) {
+ BranchF32(target, nan, cc, cmp1, cmp2, bd);
+ }
+
+ // Alias functions for backward compatibility.
+ inline void BranchF(Label* target, Label* nan, Condition cc, FPURegister cmp1,
+ FPURegister cmp2, BranchDelaySlot bd = PROTECT) {
+ BranchF64(target, nan, cc, cmp1, cmp2, bd);
+ }
+
+ inline void BranchF(BranchDelaySlot bd, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2) {
+ BranchF64(bd, target, nan, cc, cmp1, cmp2);
}
// Truncates a double using a specific rounding mode, and writes the value
void Jr(Label* L, BranchDelaySlot bdslot);
void Jalr(Label* L, BranchDelaySlot bdslot);
+ // Common implementation of BranchF functions for the different formats.
+ void BranchFCommon(SecondaryField sizeField, Label* target, Label* nan,
+ Condition cc, FPURegister cmp1, FPURegister cmp2,
+ BranchDelaySlot bd = PROTECT);
+
// Helper functions for generating invokes.
void InvokePrologue(const ParameterCount& expected,
const ParameterCount& actual,