Reviewers: akos.palfi.imgtec, dusmil.imgtec, Michael Starzinger, rossberg,
balazs.kilvady,
Description:
MIPS: Fix for Remove unsafe EmitLoadRegister usage in AddI/SubI for constant
right operand.
Fix a missed addiu->Addu, and a bad default use of 'at' register in
https://codereview.chromium.org/1185143002/
TEST=test/mjsunit/regress/regress-500176
BUG=chromium:500176
LOG=N
Please review this at https://codereview.chromium.org/1187063002/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+3, -5 lines):
M src/mips/lithium-codegen-mips.cc
M src/mips/macro-assembler-mips.cc
Index: src/mips/lithium-codegen-mips.cc
diff --git a/src/mips/lithium-codegen-mips.cc
b/src/mips/lithium-codegen-mips.cc
index
3f8470de48a2442678ebfaf29925b5e796439a67..ccf0e5346e0ab533d32e5faf62ad793f786e2b06
100644
--- a/src/mips/lithium-codegen-mips.cc
+++ b/src/mips/lithium-codegen-mips.cc
@@ -1681,8 +1681,7 @@ void LCodeGen::DoSubI(LSubI* instr) {
} else {
DCHECK(right->IsRegister() || right->IsConstantOperand());
__ SubuAndCheckForOverflow(ToRegister(result), ToRegister(left),
- ToOperand(right),
- overflow); // Reg at also used as
scratch.
+ ToOperand(right), overflow, scratch);
}
DeoptimizeIf(lt, instr, Deoptimizer::kOverflow, overflow,
Operand(zero_reg));
@@ -1878,8 +1877,7 @@ void LCodeGen::DoAddI(LAddI* instr) {
} else {
DCHECK(right->IsRegister() || right->IsConstantOperand());
__ AdduAndCheckForOverflow(ToRegister(result), ToRegister(left),
- ToOperand(right),
- overflow); // Reg at also used as
scratch.
+ ToOperand(right), overflow, scratch);
}
DeoptimizeIf(lt, instr, Deoptimizer::kOverflow, overflow,
Operand(zero_reg));
Index: src/mips/macro-assembler-mips.cc
diff --git a/src/mips/macro-assembler-mips.cc
b/src/mips/macro-assembler-mips.cc
index
190af3b8768e87831e0e7fbf12c96e3d860b382f..0b2bbf85c95d8d2225780fa17c0734db2f6bbc84
100644
--- a/src/mips/macro-assembler-mips.cc
+++ b/src/mips/macro-assembler-mips.cc
@@ -4459,7 +4459,7 @@ void MacroAssembler::AdduAndCheckForOverflow(Register
dst, Register left,
xor_(overflow_dst, dst, t9);
and_(overflow_dst, overflow_dst, scratch);
} else {
- addiu(dst, left, right.immediate());
+ Addu(dst, left, right.immediate());
xor_(overflow_dst, dst, left);
// Load right since xori takes uint16 as immediate.
Addu(t9, zero_reg, right);
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.