| Index: src/compiler/x64/code-generator-x64.cc
|
| diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc
|
| index fdf63855d59cac64d5f9083657a8688d769c4347..79e853191c49e91cb8003e9166ce2f1db2a0a6bf 100644
|
| --- a/src/compiler/x64/code-generator-x64.cc
|
| +++ b/src/compiler/x64/code-generator-x64.cc
|
| @@ -174,6 +174,16 @@ class X64OperandConverter : public InstructionOperandConverter {
|
| int32_t disp = InputInt32(NextOffset(offset));
|
| return Operand(base, disp);
|
| }
|
| + case kMode_MX1:
|
| + case kMode_MX2:
|
| + case kMode_MX4:
|
| + case kMode_MX8: {
|
| + Register base = InputRegister(NextOffset(offset));
|
| + Register index = base;
|
| + ScaleFactor scale = ScaleFor(kMode_MX1, mode);
|
| + int32_t disp = 0;
|
| + return Operand(base, index, scale, disp);
|
| + }
|
| case kMode_MR1:
|
| case kMode_MR2:
|
| case kMode_MR4:
|
| @@ -652,6 +662,12 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ movsd(operand, i.InputDoubleRegister(index));
|
| }
|
| break;
|
| + case kX64Lea32:
|
| + __ leal(i.OutputRegister(), i.MemoryOperand());
|
| + break;
|
| + case kX64Lea:
|
| + __ leaq(i.OutputRegister(), i.MemoryOperand());
|
| + break;
|
| case kX64Push:
|
| if (HasImmediateInput(instr, 0)) {
|
| __ pushq(i.InputImmediate(0));
|
|
|