Index: src/compiler/code-assembler.cc |
diff --git a/src/compiler/code-assembler.cc b/src/compiler/code-assembler.cc |
index 39efdea79b401c613c3e94e82af0effa52095811..ae393feb83d74efcffb8ef203757bd9e40616d28 100644 |
--- a/src/compiler/code-assembler.cc |
+++ b/src/compiler/code-assembler.cc |
@@ -985,6 +985,15 @@ Node* CodeAssembler::CallCFunction2(MachineType return_type, |
function, arg0, arg1); |
} |
+Node* CodeAssembler::CallCFunction3(MachineType return_type, |
+ MachineType arg0_type, |
+ MachineType arg1_type, |
+ MachineType arg2_type, Node* function, |
+ Node* arg0, Node* arg1, Node* arg2) { |
+ return raw_assembler()->CallCFunction3(return_type, arg0_type, arg1_type, |
+ arg2_type, function, arg0, arg1, arg2); |
+} |
+ |
void CodeAssembler::Goto(Label* label) { |
label->MergeVariables(); |
raw_assembler()->Goto(label->label_); |
@@ -1157,12 +1166,13 @@ void CodeAssemblerLabel::Bind() { |
for (auto var : variable_phis_) { |
CodeAssemblerVariable::Impl* var_impl = var.first; |
auto i = variable_merges_.find(var_impl); |
- // If the following assert fires, then a variable that has been marked as |
+ // If the following asserts fire, then a variable that has been marked as |
// being merged at the label--either by explicitly marking it so in the |
// label constructor or by having seen different bound values at branches |
// into the label--doesn't have a bound value along all of the paths that |
// have been merged into the label up to this point. |
- DCHECK(i != variable_merges_.end() && i->second.size() == merge_count_); |
+ DCHECK(i != variable_merges_.end()); |
+ DCHECK_EQ(i->second.size(), merge_count_); |
Node* phi = state_->raw_assembler_->Phi( |
var.first->rep_, static_cast<int>(merge_count_), &(i->second[0])); |
variable_phis_[var_impl] = phi; |