| Index: src/arm/lithium-arm.cc
|
| diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc
|
| index 700617aea90366cd630816840c63de4ddf4d9329..c8d0fdbf086e7522131204b5ada130265ef32f85 100644
|
| --- a/src/arm/lithium-arm.cc
|
| +++ b/src/arm/lithium-arm.cc
|
| @@ -182,7 +182,7 @@ void LBranch::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| -void LCmpIDAndBranch::PrintDataTo(StringStream* stream) {
|
| +void LCompareNumericAndBranch::PrintDataTo(StringStream* stream) {
|
| stream->Add("if ");
|
| left()->PrintTo(stream);
|
| stream->Add(" %s ", Token::String(op()));
|
| @@ -326,8 +326,7 @@ void LCallNewArray::PrintDataTo(StringStream* stream) {
|
| constructor()->PrintTo(stream);
|
| stream->Add(" #%d / ", arity());
|
| ASSERT(hydrogen()->property_cell()->value()->IsSmi());
|
| - ElementsKind kind = static_cast<ElementsKind>(
|
| - Smi::cast(hydrogen()->property_cell()->value())->value());
|
| + ElementsKind kind = hydrogen()->elements_kind();
|
| stream->Add(" (%s) ", ElementsKindToString(kind));
|
| }
|
|
|
| @@ -1686,8 +1685,8 @@ LInstruction* LChunkBuilder::DoCompareGeneric(HCompareGeneric* instr) {
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoCompareIDAndBranch(
|
| - HCompareIDAndBranch* instr) {
|
| +LInstruction* LChunkBuilder::DoCompareNumericAndBranch(
|
| + HCompareNumericAndBranch* instr) {
|
| Representation r = instr->representation();
|
| if (r.IsSmiOrInteger32()) {
|
| ASSERT(instr->left()->representation().IsSmiOrInteger32());
|
| @@ -1695,14 +1694,14 @@ LInstruction* LChunkBuilder::DoCompareIDAndBranch(
|
| instr->right()->representation()));
|
| LOperand* left = UseRegisterOrConstantAtStart(instr->left());
|
| LOperand* right = UseRegisterOrConstantAtStart(instr->right());
|
| - return new(zone()) LCmpIDAndBranch(left, right);
|
| + return new(zone()) LCompareNumericAndBranch(left, right);
|
| } else {
|
| ASSERT(r.IsDouble());
|
| ASSERT(instr->left()->representation().IsDouble());
|
| ASSERT(instr->right()->representation().IsDouble());
|
| LOperand* left = UseRegisterAtStart(instr->left());
|
| LOperand* right = UseRegisterAtStart(instr->right());
|
| - return new(zone()) LCmpIDAndBranch(left, right);
|
| + return new(zone()) LCompareNumericAndBranch(left, right);
|
| }
|
| }
|
|
|
| @@ -1797,13 +1796,6 @@ LInstruction* LChunkBuilder::DoClassOfTestAndBranch(
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoFixedArrayBaseLength(
|
| - HFixedArrayBaseLength* instr) {
|
| - LOperand* array = UseRegisterAtStart(instr->value());
|
| - return DefineAsRegister(new(zone()) LFixedArrayBaseLength(array));
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::DoMapEnumLength(HMapEnumLength* instr) {
|
| LOperand* map = UseRegisterAtStart(instr->value());
|
| return DefineAsRegister(new(zone()) LMapEnumLength(map));
|
| @@ -2006,6 +1998,18 @@ LInstruction* LChunkBuilder::DoCheckHeapObject(HCheckHeapObject* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoCheckSmi(HCheckSmi* instr) {
|
| + LOperand* value = UseRegisterAtStart(instr->value());
|
| + return AssignEnvironment(new(zone()) LCheckSmi(value));
|
| +}
|
| +
|
| +
|
| +LInstruction* LChunkBuilder::DoIsNumberAndBranch(HIsNumberAndBranch* instr) {
|
| + return new(zone())
|
| + LIsNumberAndBranch(UseRegisterOrConstantAtStart(instr->value()));
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoCheckInstanceType(HCheckInstanceType* instr) {
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
| LInstruction* result = new(zone()) LCheckInstanceType(value);
|
|
|