| Index: src/mips/lithium-mips.cc
|
| diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc
|
| index 1a99bb9096943d4027c4dda091abcf0932fb30eb..344879291c88bb644e4275edec67fc45d852a3d1 100644
|
| --- a/src/mips/lithium-mips.cc
|
| +++ b/src/mips/lithium-mips.cc
|
| @@ -277,7 +277,8 @@ void LStoreCodeEntry::PrintDataTo(StringStream* stream) {
|
| void LInnerAllocatedObject::PrintDataTo(StringStream* stream) {
|
| stream->Add(" = ");
|
| base_object()->PrintTo(stream);
|
| - stream->Add(" + %d", offset());
|
| + stream->Add(" + ");
|
| + offset()->PrintTo(stream);
|
| }
|
|
|
|
|
| @@ -1087,7 +1088,7 @@ LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) {
|
| LOperand* receiver = UseRegisterAtStart(instr->receiver());
|
| LOperand* function = UseRegisterAtStart(instr->function());
|
| LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function);
|
| - return AssignEnvironment(DefineSameAsFirst(result));
|
| + return AssignEnvironment(DefineAsRegister(result));
|
| }
|
|
|
|
|
| @@ -1119,11 +1120,11 @@ LInstruction* LChunkBuilder::DoStoreCodeEntry(
|
|
|
|
|
| LInstruction* LChunkBuilder::DoInnerAllocatedObject(
|
| - HInnerAllocatedObject* inner_object) {
|
| - LOperand* base_object = UseRegisterAtStart(inner_object->base_object());
|
| - LInnerAllocatedObject* result =
|
| - new(zone()) LInnerAllocatedObject(base_object);
|
| - return DefineAsRegister(result);
|
| + HInnerAllocatedObject* instr) {
|
| + LOperand* base_object = UseRegisterAtStart(instr->base_object());
|
| + LOperand* offset = UseRegisterOrConstantAtStart(instr->offset());
|
| + return DefineAsRegister(
|
| + new(zone()) LInnerAllocatedObject(base_object, offset));
|
| }
|
|
|
|
|
| @@ -1189,9 +1190,6 @@ LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
|
| case kMathRound: return DoMathRound(instr);
|
| case kMathAbs: return DoMathAbs(instr);
|
| case kMathLog: return DoMathLog(instr);
|
| - case kMathSin: return DoMathSin(instr);
|
| - case kMathCos: return DoMathCos(instr);
|
| - case kMathTan: return DoMathTan(instr);
|
| case kMathExp: return DoMathExp(instr);
|
| case kMathSqrt: return DoMathSqrt(instr);
|
| case kMathPowHalf: return DoMathPowHalf(instr);
|
| @@ -1209,27 +1207,6 @@ LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) {
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
|
| - LOperand* input = UseFixedDouble(instr->value(), f4);
|
| - LMathSin* result = new(zone()) LMathSin(input);
|
| - return MarkAsCall(DefineFixedDouble(result, f4), instr);
|
| -}
|
| -
|
| -
|
| -LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
|
| - LOperand* input = UseFixedDouble(instr->value(), f4);
|
| - LMathCos* result = new(zone()) LMathCos(input);
|
| - return MarkAsCall(DefineFixedDouble(result, f4), instr);
|
| -}
|
| -
|
| -
|
| -LInstruction* LChunkBuilder::DoMathTan(HUnaryMathOperation* instr) {
|
| - LOperand* input = UseFixedDouble(instr->value(), f4);
|
| - LMathTan* result = new(zone()) LMathTan(input);
|
| - return MarkAsCall(DefineFixedDouble(result, f4), instr);
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
|
| ASSERT(instr->representation().IsDouble());
|
| ASSERT(instr->value()->representation().IsDouble());
|
| @@ -1454,7 +1431,7 @@ LInstruction* LChunkBuilder::DoMod(HMod* instr) {
|
| if (instr->HasPowerOf2Divisor()) {
|
| ASSERT(!right->CanBeZero());
|
| LModI* mod = new(zone()) LModI(UseRegisterAtStart(left),
|
| - UseOrConstant(right));
|
| + UseConstant(right));
|
| LInstruction* result = DefineAsRegister(mod);
|
| return (left->CanBeNegative() &&
|
| instr->CheckFlag(HValue::kBailoutOnMinusZero))
|
| @@ -1940,7 +1917,7 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| LOperand* value = UseRegisterAtStart(val);
|
| if (val->CheckFlag(HInstruction::kUint32)) {
|
| LNumberTagU* result = new(zone()) LNumberTagU(value);
|
| - return AssignEnvironment(AssignPointerMap(DefineSameAsFirst(result)));
|
| + return AssignEnvironment(AssignPointerMap(DefineAsRegister(result)));
|
| } else if (val->HasRange() && val->range()->IsInSmiRange()) {
|
| return DefineAsRegister(new(zone()) LSmiTag(value));
|
| } else {
|
|
|