Merge V8 5.4.500.40

Test: Manual - built & ran d8
Change-Id: I4edfa2853d3e565b729723645395688ece3193f4
diff --git a/src/compiler/code-generator-impl.h b/src/compiler/code-generator-impl.h
index 4e09a27..4dccdc9 100644
--- a/src/compiler/code-generator-impl.h
+++ b/src/compiler/code-generator-impl.h
@@ -39,6 +39,10 @@
     return ToDoubleRegister(instr_->InputAt(index));
   }
 
+  Simd128Register InputSimd128Register(size_t index) {
+    return ToSimd128Register(instr_->InputAt(index));
+  }
+
   double InputDouble(size_t index) { return ToDouble(instr_->InputAt(index)); }
 
   float InputFloat32(size_t index) { return ToFloat32(instr_->InputAt(index)); }
@@ -101,6 +105,10 @@
     return ToDoubleRegister(instr_->Output());
   }
 
+  Simd128Register OutputSimd128Register() {
+    return ToSimd128Register(instr_->Output());
+  }
+
   // -- Conversions for operands -----------------------------------------------
 
   Label* ToLabel(InstructionOperand* op) {
@@ -115,12 +123,16 @@
     return LocationOperand::cast(op)->GetRegister();
   }
 
+  FloatRegister ToFloatRegister(InstructionOperand* op) {
+    return LocationOperand::cast(op)->GetFloatRegister();
+  }
+
   DoubleRegister ToDoubleRegister(InstructionOperand* op) {
     return LocationOperand::cast(op)->GetDoubleRegister();
   }
 
-  FloatRegister ToFloatRegister(InstructionOperand* op) {
-    return LocationOperand::cast(op)->GetFloatRegister();
+  Simd128Register ToSimd128Register(InstructionOperand* op) {
+    return LocationOperand::cast(op)->GetSimd128Register();
   }
 
   Constant ToConstant(InstructionOperand* op) {
@@ -198,8 +210,6 @@
 static inline void FinishCode(MacroAssembler* masm) {
 #if V8_TARGET_ARCH_ARM64 || V8_TARGET_ARCH_ARM
   masm->CheckConstPool(true, false);
-#elif V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64
-  masm->ud2();
 #endif
 }