| Index: src/a64/lithium-a64.cc
|
| diff --git a/src/a64/lithium-a64.cc b/src/a64/lithium-a64.cc
|
| index 6d187ac539218d7a68a2c438fceef55d58ff7537..76d1325d17fcd9319206bac83e3d4a49e174e38a 100644
|
| --- a/src/a64/lithium-a64.cc
|
| +++ b/src/a64/lithium-a64.cc
|
| @@ -106,8 +106,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));
|
| }
|
|
|
| @@ -122,7 +121,7 @@ void LClassOfTestAndBranch::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()));
|
| @@ -1236,6 +1235,12 @@ LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoCheckSmi(HCheckSmi* instr) {
|
| + LOperand* value = UseRegisterAtStart(instr->value());
|
| + return AssignEnvironment(new(zone()) LCheckSmi(value));
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) {
|
| HValue* value = instr->value();
|
| Representation input_rep = value->representation();
|
| @@ -1264,7 +1269,8 @@ LInstruction* LChunkBuilder::DoClassOfTestAndBranch(
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoCompareIDAndBranch(HCompareIDAndBranch* instr) {
|
| +LInstruction* LChunkBuilder::DoCompareNumericAndBranch(
|
| + HCompareNumericAndBranch* instr) {
|
| Representation r = instr->representation();
|
|
|
| // TODO(all): This instruction has been replaced by HCompareNumericAndBranch
|
| @@ -1274,7 +1280,7 @@ LInstruction* LChunkBuilder::DoCompareIDAndBranch(HCompareIDAndBranch* instr) {
|
| ASSERT(instr->right()->representation().Equals(r));
|
| 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());
|
| @@ -1288,7 +1294,7 @@ LInstruction* LChunkBuilder::DoCompareIDAndBranch(HCompareIDAndBranch* instr) {
|
| // issue has been addressed in crankshaft.
|
| LOperand* left = UseRegisterOrConstantAtStart(instr->left());
|
| LOperand* right = UseRegisterOrConstantAtStart(instr->right());
|
| - return new(zone()) LCmpIDAndBranch(left, right);
|
| + return new(zone()) LCompareNumericAndBranch(left, right);
|
| }
|
| }
|
|
|
| @@ -1453,13 +1459,6 @@ LInstruction* LChunkBuilder::DoEnvironmentMarker(HEnvironmentMarker* instr) {
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoFixedArrayBaseLength(
|
| - HFixedArrayBaseLength* instr) {
|
| - LOperand* array = UseRegisterAtStart(instr->value());
|
| - return DefineAsRegister(new(zone()) LFixedArrayBaseLength(array));
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::DoForceRepresentation(
|
| HForceRepresentation* instr) {
|
| UNIMPLEMENTED_INSTRUCTION();
|
| @@ -1570,6 +1569,12 @@ LInstruction* LChunkBuilder::DoIsConstructCallAndBranch(
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoIsNumberAndBranch(HIsNumberAndBranch* instr) {
|
| + return new(zone())
|
| + LIsNumberAndBranch(UseRegisterOrConstantAtStart(instr->value()));
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoIsObjectAndBranch(HIsObjectAndBranch* instr) {
|
| ASSERT(instr->value()->representation().IsTagged());
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
|
|