| Index: src/a64/lithium-a64.cc
|
| diff --git a/src/a64/lithium-a64.cc b/src/a64/lithium-a64.cc
|
| index 04370fc3bf6f4364054ea4a8ad1885fe4f209fe9..275820c735a25e67121b297886bb1030097cdddc 100644
|
| --- a/src/a64/lithium-a64.cc
|
| +++ b/src/a64/lithium-a64.cc
|
| @@ -948,6 +948,13 @@ LInstruction* LChunkBuilder::DoAdd(HAdd* instr) {
|
| result = AssignEnvironment(result);
|
| }
|
| return result;
|
| + } else if (instr->representation().IsExternal()) {
|
| + ASSERT(instr->left()->representation().IsExternal());
|
| + ASSERT(instr->right()->representation().IsInteger32());
|
| + ASSERT(!instr->CheckFlag(HValue::kCanOverflow));
|
| + LOperand* left = UseRegisterAtStart(instr->left());
|
| + LOperand* right = UseRegisterOrConstantAtStart(instr->right());
|
| + return DefineAsRegister(new(zone()) LAddI(left, right));
|
| } else if (instr->representation().IsDouble()) {
|
| return DoArithmeticD(Token::ADD, instr);
|
| } else {
|
| @@ -1363,16 +1370,6 @@ LInstruction* LChunkBuilder::DoCompareNumericAndBranch(
|
| }
|
|
|
|
|
| -// TODO(all): This will disappear when Math.random is rewritten in JavaScript.
|
| -LInstruction* LChunkBuilder::DoRandom(HRandom* instr) {
|
| - ASSERT(instr->representation().IsDouble());
|
| - ASSERT(instr->global_object()->representation().IsTagged());
|
| - LOperand* global_object = UseFixed(instr->global_object(), x0);
|
| - LRandom* result = new(zone()) LRandom(global_object);
|
| - return MarkAsCall(DefineFixedDouble(result, d7), instr);
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::DoCompareGeneric(HCompareGeneric* instr) {
|
| ASSERT(instr->left()->representation().IsTagged());
|
| ASSERT(instr->right()->representation().IsTagged());
|
|
|