Index: src/arm64/lithium-codegen-arm64.cc |
diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc |
index be1603cbbeb9e9b0587f53ad76d80ae55c4fb550..9b523722d8a7c3b61641af4c71df69d0b862db91 100644 |
--- a/src/arm64/lithium-codegen-arm64.cc |
+++ b/src/arm64/lithium-codegen-arm64.cc |
@@ -1226,17 +1226,7 @@ Operand LCodeGen::ToOperand(LOperand* op) { |
} |
-Operand LCodeGen::ToOperand32I(LOperand* op) { |
- return ToOperand32(op, SIGNED_INT32); |
-} |
- |
- |
-Operand LCodeGen::ToOperand32U(LOperand* op) { |
- return ToOperand32(op, UNSIGNED_INT32); |
-} |
- |
- |
-Operand LCodeGen::ToOperand32(LOperand* op, IntegerSignedness signedness) { |
+Operand LCodeGen::ToOperand32(LOperand* op) { |
DCHECK(op != NULL); |
if (op->IsRegister()) { |
return Operand(ToRegister32(op)); |
@@ -1245,10 +1235,7 @@ Operand LCodeGen::ToOperand32(LOperand* op, IntegerSignedness signedness) { |
HConstant* constant = chunk()->LookupConstant(const_op); |
Representation r = chunk_->LookupLiteralRepresentation(const_op); |
if (r.IsInteger32()) { |
- DCHECK(constant->HasInteger32Value()); |
- return (signedness == SIGNED_INT32) |
- ? Operand(constant->Integer32Value()) |
- : Operand(static_cast<uint32_t>(constant->Integer32Value())); |
+ return Operand(constant->Integer32Value()); |
} else { |
// Other constants not implemented. |
Abort(kToOperand32UnsupportedImmediate); |
@@ -1314,12 +1301,10 @@ Handle<Object> LCodeGen::ToHandle(LConstantOperand* op) const { |
} |
-template<class LI> |
-Operand LCodeGen::ToShiftedRightOperand32(LOperand* right, LI* shift_info, |
- IntegerSignedness signedness) { |
+template <class LI> |
+Operand LCodeGen::ToShiftedRightOperand32(LOperand* right, LI* shift_info) { |
if (shift_info->shift() == NO_SHIFT) { |
- return (signedness == SIGNED_INT32) ? ToOperand32I(right) |
- : ToOperand32U(right); |
+ return ToOperand32(right); |
} else { |
return Operand( |
ToRegister32(right), |
@@ -1501,7 +1486,7 @@ void LCodeGen::DoAccessArgumentsAt(LAccessArgumentsAt* instr) { |
} |
} else { |
Register length = ToRegister32(instr->length()); |
- Operand index = ToOperand32I(instr->index()); |
+ Operand index = ToOperand32(instr->index()); |
__ Sub(result.W(), length, index); |
__ Add(result.W(), result.W(), 1); |
__ Ldr(result, MemOperand(arguments, result, UXTW, kPointerSizeLog2)); |
@@ -1525,7 +1510,7 @@ void LCodeGen::DoAddI(LAddI* instr) { |
bool can_overflow = instr->hydrogen()->CheckFlag(HValue::kCanOverflow); |
Register result = ToRegister32(instr->result()); |
Register left = ToRegister32(instr->left()); |
- Operand right = ToShiftedRightOperand32I(instr->right(), instr); |
+ Operand right = ToShiftedRightOperand32(instr->right(), instr); |
if (can_overflow) { |
__ Adds(result, left, right); |
@@ -1804,7 +1789,7 @@ void LCodeGen::DoArithmeticT(LArithmeticT* instr) { |
void LCodeGen::DoBitI(LBitI* instr) { |
Register result = ToRegister32(instr->result()); |
Register left = ToRegister32(instr->left()); |
- Operand right = ToShiftedRightOperand32U(instr->right(), instr); |
+ Operand right = ToShiftedRightOperand32(instr->right(), instr); |
switch (instr->op()) { |
case Token::BIT_AND: __ And(result, left, right); break; |
@@ -1838,13 +1823,13 @@ void LCodeGen::DoBoundsCheck(LBoundsCheck *instr) { |
DCHECK(instr->hydrogen()->index()->representation().IsInteger32()); |
DCHECK(instr->hydrogen()->length()->representation().IsInteger32()); |
if (instr->index()->IsConstantOperand()) { |
- Operand index = ToOperand32I(instr->index()); |
+ Operand index = ToOperand32(instr->index()); |
Register length = ToRegister32(instr->length()); |
__ Cmp(length, index); |
cond = CommuteCondition(cond); |
} else { |
Register index = ToRegister32(instr->index()); |
- Operand length = ToOperand32I(instr->length()); |
+ Operand length = ToOperand32(instr->length()); |
__ Cmp(index, length); |
} |
if (FLAG_debug_code && instr->hydrogen()->skip_check()) { |
@@ -2486,16 +2471,12 @@ void LCodeGen::DoCompareNumericAndBranch(LCompareNumericAndBranch* instr) { |
} else { |
if (instr->hydrogen_value()->representation().IsInteger32()) { |
if (right->IsConstantOperand()) { |
- EmitCompareAndBranch(instr, |
- cond, |
- ToRegister32(left), |
- ToOperand32I(right)); |
+ EmitCompareAndBranch(instr, cond, ToRegister32(left), |
+ ToOperand32(right)); |
} else { |
// Commute the operands and the condition. |
- EmitCompareAndBranch(instr, |
- CommuteCondition(cond), |
- ToRegister32(right), |
- ToOperand32I(left)); |
+ EmitCompareAndBranch(instr, CommuteCondition(cond), |
+ ToRegister32(right), ToOperand32(left)); |
} |
} else { |
DCHECK(instr->hydrogen_value()->representation().IsSmi()); |
@@ -3017,7 +2998,7 @@ void LCodeGen::DoInnerAllocatedObject(LInnerAllocatedObject* instr) { |
Register result = ToRegister(instr->result()); |
Register base = ToRegister(instr->base_object()); |
if (instr->offset()->IsConstantOperand()) { |
- __ Add(result, base, ToOperand32I(instr->offset())); |
+ __ Add(result, base, ToOperand32(instr->offset())); |
} else { |
__ Add(result, base, Operand(ToRegister32(instr->offset()), SXTW)); |
} |
@@ -4220,7 +4201,7 @@ void LCodeGen::DoMathMinMax(LMathMinMax* instr) { |
if (instr->hydrogen()->representation().IsInteger32()) { |
Register result = ToRegister32(instr->result()); |
Register left = ToRegister32(instr->left()); |
- Operand right = ToOperand32I(instr->right()); |
+ Operand right = ToOperand32(instr->right()); |
__ Cmp(left, right); |
__ Csel(result, left, right, (op == HMathMinMax::kMathMax) ? ge : le); |
@@ -5571,7 +5552,7 @@ void LCodeGen::DoSubI(LSubI* instr) { |
bool can_overflow = instr->hydrogen()->CheckFlag(HValue::kCanOverflow); |
Register result = ToRegister32(instr->result()); |
Register left = ToRegister32(instr->left()); |
- Operand right = ToShiftedRightOperand32I(instr->right(), instr); |
+ Operand right = ToShiftedRightOperand32(instr->right(), instr); |
if (can_overflow) { |
__ Subs(result, left, right); |