Upgrade V8 to 5.1.281.57 DO NOT MERGE
FPIIM-449
Change-Id: Id981b686b4d587ac31697662eb98bb34be42ad90
(cherry picked from commit 3b9bc31999c9787eb726ecdbfd5796bfdec32a18)
diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h
index 9c978ce..a1fe494 100644
--- a/src/compiler/instruction.h
+++ b/src/compiler/instruction.h
@@ -773,6 +773,9 @@
DCHECK(output_count == 0 || outputs != nullptr);
DCHECK(input_count == 0 || inputs != nullptr);
DCHECK(temp_count == 0 || temps != nullptr);
+ // TODO(jarin/mstarzinger): Handle this gracefully. See crbug.com/582702.
+ CHECK(InputCountField::is_valid(input_count));
+
size_t total_extra_ops = output_count + input_count + temp_count;
if (total_extra_ops != 0) total_extra_ops--;
int size = static_cast<int>(
@@ -812,6 +815,23 @@
OutputCount() == 0 && TempCount() == 0;
}
+ bool IsDeoptimizeCall() const {
+ return arch_opcode() == ArchOpcode::kArchDeoptimize ||
+ FlagsModeField::decode(opcode()) == kFlags_deoptimize;
+ }
+
+ bool IsJump() const { return arch_opcode() == ArchOpcode::kArchJmp; }
+ bool IsRet() const { return arch_opcode() == ArchOpcode::kArchRet; }
+ bool IsTailCall() const {
+ return arch_opcode() == ArchOpcode::kArchTailCallCodeObject ||
+ arch_opcode() == ArchOpcode::kArchTailCallCodeObjectFromJSFunction ||
+ arch_opcode() == ArchOpcode::kArchTailCallJSFunction ||
+ arch_opcode() == ArchOpcode::kArchTailCallJSFunctionFromJSFunction;
+ }
+ bool IsThrow() const {
+ return arch_opcode() == ArchOpcode::kArchThrowTerminator;
+ }
+
enum GapPosition {
START,
END,
@@ -1354,7 +1374,9 @@
void PrintBlock(const RegisterConfiguration* config, int block_id) const;
void PrintBlock(int block_id) const;
- void Validate();
+ void ValidateEdgeSplitForm();
+ void ValidateDeferredBlockExitPaths();
+ void ValidateSSA();
private:
friend std::ostream& operator<<(std::ostream& os,