| Index: src/compiler/arm64/code-generator-arm64.cc
|
| diff --git a/src/compiler/arm64/code-generator-arm64.cc b/src/compiler/arm64/code-generator-arm64.cc
|
| index 349950fee2635df529250867e9416b8f041b5b9a..fa821f58ca0975ee509c6ca0fedc5a65db08d5b9 100644
|
| --- a/src/compiler/arm64/code-generator-arm64.cc
|
| +++ b/src/compiler/arm64/code-generator-arm64.cc
|
| @@ -588,6 +588,10 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ Ubfx(i.OutputRegister32(), i.InputRegister32(0), i.InputInt8(1),
|
| i.InputInt8(2));
|
| break;
|
| + case kArm64Bfi:
|
| + __ Bfi(i.OutputRegister(), i.InputRegister(1), i.InputInt6(2),
|
| + i.InputInt6(3));
|
| + break;
|
| case kArm64TestAndBranch32:
|
| case kArm64TestAndBranch:
|
| // Pseudo instructions turned into tbz/tbnz in AssembleArchBranch.
|
| @@ -697,10 +701,12 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ Fmov(i.OutputRegister32(), i.InputFloat32Register(0));
|
| break;
|
| case kArm64Float64ExtractHighWord32:
|
| + // TODO(arm64): This should use MOV (to general) when NEON is supported.
|
| __ Fmov(i.OutputRegister(), i.InputFloat64Register(0));
|
| __ Lsr(i.OutputRegister(), i.OutputRegister(), 32);
|
| break;
|
| case kArm64Float64InsertLowWord32: {
|
| + // TODO(arm64): This should use MOV (from general) when NEON is supported.
|
| UseScratchRegisterScope scope(masm());
|
| Register tmp = scope.AcquireX();
|
| __ Fmov(tmp, i.InputFloat64Register(0));
|
| @@ -709,6 +715,7 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| break;
|
| }
|
| case kArm64Float64InsertHighWord32: {
|
| + // TODO(arm64): This should use MOV (from general) when NEON is supported.
|
| UseScratchRegisterScope scope(masm());
|
| Register tmp = scope.AcquireX();
|
| __ Fmov(tmp.W(), i.InputFloat32Register(0));
|
| @@ -716,6 +723,10 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ Fmov(i.OutputFloat64Register(), tmp);
|
| break;
|
| }
|
| + case kArm64Float64MoveU64: {
|
| + __ Fmov(i.OutputFloat64Register(), i.InputRegister(0));
|
| + break;
|
| + }
|
| case kArm64Ldrb:
|
| __ Ldrb(i.OutputRegister(), i.MemoryOperand());
|
| break;
|
|
|