Index: src/mips64/macro-assembler-mips64.cc |
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc |
index 5da9402d0d6e59f807ef0cad6343c0508fede526..53b4ef2beae2f7bdbe002910ff951bbb8a48b0b8 100644 |
--- a/src/mips64/macro-assembler-mips64.cc |
+++ b/src/mips64/macro-assembler-mips64.cc |
@@ -1332,6 +1332,27 @@ void MacroAssembler::Dlsa(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------------- |
@@ -5606,9 +5627,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); |
} |