Index: src/mips/macro-assembler-mips.cc |
diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc |
index d1e60bd7f468dc1ab0844c472615e55b2126eaf8..9230f06eaf9673a1d33162ec0d12b6e2ed74b8be 100644 |
--- a/src/mips/macro-assembler-mips.cc |
+++ b/src/mips/macro-assembler-mips.cc |
@@ -1186,6 +1186,27 @@ void MacroAssembler::Lsa(Register rd, Register rt, Register rs, uint8_t sa, |
} |
} |
+void MacroAssembler::Bovc(Register rs, Register rt, Label* L) { |
+ if (is_trampoline_emitted()) { |
+ Label skip; |
+ bnvc(rs, rt, &skip); |
+ BranchLong(L, PROTECT); |
+ bind(&skip); |
+ } else { |
+ bovc(rs, rt, L); |
+ } |
+} |
+ |
+void MacroAssembler::Bnvc(Register rs, Register rt, Label* L) { |
+ if (is_trampoline_emitted()) { |
+ Label skip; |
+ bovc(rs, rt, &skip); |
+ BranchLong(L, PROTECT); |
+ bind(&skip); |
+ } else { |
+ bnvc(rs, rt, L); |
+ } |
+} |
// ------------Pseudo-instructions------------- |
@@ -3337,7 +3358,6 @@ bool MacroAssembler::BranchShortCheck(int32_t offset, Label* L, Condition cond, |
Register rs, const Operand& rt, |
BranchDelaySlot bdslot) { |
BRANCH_ARGS_CHECK(cond, rs, rt); |
- |
if (!L) { |
if (IsMipsArchVariant(kMips32r6) && bdslot == PROTECT) { |
DCHECK(is_int26(offset)); |
@@ -5394,9 +5414,9 @@ void MacroAssembler::AddBranchOvf(Register dst, Register left, Register right, |
Move(left_reg, left); |
Move(right_reg, right); |
addu(dst, left, right); |
- bnvc(left_reg, right_reg, no_overflow_label); |
+ Bnvc(left_reg, right_reg, no_overflow_label); |
} else { |
- bovc(left, right, overflow_label); |
+ Bovc(left, right, overflow_label); |
addu(dst, left, right); |
if (no_overflow_label) bc(no_overflow_label); |
} |