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; |