| Index: src/compiler/code-generator.cc
|
| diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc
|
| index 800002eda84018d0514fdbc54b3c5f606667f10a..9ca4f5fafb2124e3981c651a31dfda3f0c6708ad 100644
|
| --- a/src/compiler/code-generator.cc
|
| +++ b/src/compiler/code-generator.cc
|
| @@ -510,7 +510,8 @@ OperandAndType TypedOperandForFrameState(FrameStateDescriptor* descriptor,
|
| descriptor->GetSize(OutputFrameStateCombine::Ignore());
|
| // If the index is past the existing stack items, return the output.
|
| if (index >= size_without_output) {
|
| - return {instr->OutputAt(index - size_without_output), kMachAnyTagged};
|
| + return {instr->OutputAt(index - size_without_output),
|
| + MachineType::AnyTagged()};
|
| }
|
| break;
|
| }
|
| @@ -519,7 +520,8 @@ OperandAndType TypedOperandForFrameState(FrameStateDescriptor* descriptor,
|
| descriptor->GetSize(combine) - 1 - combine.GetOffsetToPokeAt();
|
| if (index >= index_from_top &&
|
| index < index_from_top + instr->OutputCount()) {
|
| - return {instr->OutputAt(index - index_from_top), kMachAnyTagged};
|
| + return {instr->OutputAt(index - index_from_top),
|
| + MachineType::AnyTagged()};
|
| }
|
| break;
|
| }
|
| @@ -603,37 +605,39 @@ void CodeGenerator::AddTranslationForOperand(Translation* translation,
|
| InstructionOperand* op,
|
| MachineType type) {
|
| if (op->IsStackSlot()) {
|
| - if (type == kMachBool || type == kRepBit) {
|
| + if (type.representation() == MachineRepresentation::kBit) {
|
| translation->StoreBoolStackSlot(LocationOperand::cast(op)->index());
|
| - } else if (type == kMachInt32 || type == kMachInt8 || type == kMachInt16) {
|
| + } else if (type == MachineType::Int8() || type == MachineType::Int16() ||
|
| + type == MachineType::Int32()) {
|
| translation->StoreInt32StackSlot(LocationOperand::cast(op)->index());
|
| - } else if (type == kMachUint32 || type == kMachUint16 ||
|
| - type == kMachUint8) {
|
| + } else if (type == MachineType::Uint8() || type == MachineType::Uint16() ||
|
| + type == MachineType::Uint32()) {
|
| translation->StoreUint32StackSlot(LocationOperand::cast(op)->index());
|
| - } else if ((type & kRepMask) == kRepTagged) {
|
| + } else if (type.representation() == MachineRepresentation::kTagged) {
|
| translation->StoreStackSlot(LocationOperand::cast(op)->index());
|
| } else {
|
| CHECK(false);
|
| }
|
| } else if (op->IsDoubleStackSlot()) {
|
| - DCHECK((type & (kRepFloat32 | kRepFloat64)) != 0);
|
| + DCHECK(IsFloatingPoint(type.representation()));
|
| translation->StoreDoubleStackSlot(LocationOperand::cast(op)->index());
|
| } else if (op->IsRegister()) {
|
| InstructionOperandConverter converter(this, instr);
|
| - if (type == kMachBool || type == kRepBit) {
|
| + if (type.representation() == MachineRepresentation::kBit) {
|
| translation->StoreBoolRegister(converter.ToRegister(op));
|
| - } else if (type == kMachInt32 || type == kMachInt8 || type == kMachInt16) {
|
| + } else if (type == MachineType::Int8() || type == MachineType::Int16() ||
|
| + type == MachineType::Int32()) {
|
| translation->StoreInt32Register(converter.ToRegister(op));
|
| - } else if (type == kMachUint32 || type == kMachUint16 ||
|
| - type == kMachUint8) {
|
| + } else if (type == MachineType::Uint8() || type == MachineType::Uint16() ||
|
| + type == MachineType::Uint32()) {
|
| translation->StoreUint32Register(converter.ToRegister(op));
|
| - } else if ((type & kRepMask) == kRepTagged) {
|
| + } else if (type.representation() == MachineRepresentation::kTagged) {
|
| translation->StoreRegister(converter.ToRegister(op));
|
| } else {
|
| CHECK(false);
|
| }
|
| } else if (op->IsDoubleRegister()) {
|
| - DCHECK((type & (kRepFloat32 | kRepFloat64)) != 0);
|
| + DCHECK(IsFloatingPoint(type.representation()));
|
| InstructionOperandConverter converter(this, instr);
|
| translation->StoreDoubleRegister(converter.ToDoubleRegister(op));
|
| } else if (op->IsImmediate()) {
|
| @@ -642,21 +646,23 @@ void CodeGenerator::AddTranslationForOperand(Translation* translation,
|
| Handle<Object> constant_object;
|
| switch (constant.type()) {
|
| case Constant::kInt32:
|
| - DCHECK(type == kMachInt32 || type == kMachUint32 || type == kMachBool ||
|
| - type == kRepBit);
|
| + DCHECK(type == MachineType::Int32() || type == MachineType::Uint32() ||
|
| + type.representation() == MachineRepresentation::kBit);
|
| constant_object =
|
| isolate()->factory()->NewNumberFromInt(constant.ToInt32());
|
| break;
|
| case Constant::kFloat32:
|
| - DCHECK((type & (kRepFloat32 | kRepTagged)) != 0);
|
| + DCHECK(type.representation() == MachineRepresentation::kFloat32 ||
|
| + type.representation() == MachineRepresentation::kTagged);
|
| constant_object = isolate()->factory()->NewNumber(constant.ToFloat32());
|
| break;
|
| case Constant::kFloat64:
|
| - DCHECK((type & (kRepFloat64 | kRepTagged)) != 0);
|
| + DCHECK(type.representation() == MachineRepresentation::kFloat64 ||
|
| + type.representation() == MachineRepresentation::kTagged);
|
| constant_object = isolate()->factory()->NewNumber(constant.ToFloat64());
|
| break;
|
| case Constant::kHeapObject:
|
| - DCHECK((type & kRepMask) == kRepTagged);
|
| + DCHECK(type.representation() == MachineRepresentation::kTagged);
|
| constant_object = constant.ToHeapObject();
|
| break;
|
| default:
|
|
|