Index: src/full-codegen/x87/full-codegen-x87.cc |
diff --git a/src/full-codegen/x87/full-codegen-x87.cc b/src/full-codegen/x87/full-codegen-x87.cc |
index 35f1e89f8b50b164b09ad62749b28468a1d6618b..cbf290656871c01fe2aa97769fd6a9a35ccc26b3 100644 |
--- a/src/full-codegen/x87/full-codegen-x87.cc |
+++ b/src/full-codegen/x87/full-codegen-x87.cc |
@@ -4,15 +4,16 @@ |
#if V8_TARGET_ARCH_X87 |
-#include "src/full-codegen/full-codegen.h" |
#include "src/ast/compile-time-value.h" |
#include "src/ast/scopes.h" |
+#include "src/builtins/builtins-constructor.h" |
#include "src/code-factory.h" |
#include "src/code-stubs.h" |
#include "src/codegen.h" |
#include "src/compilation-info.h" |
#include "src/compiler.h" |
#include "src/debug/debug.h" |
+#include "src/full-codegen/full-codegen.h" |
#include "src/ic/ic.h" |
#include "src/x87/frames-x87.h" |
@@ -187,12 +188,14 @@ void FullCodeGenerator::Generate() { |
if (info->scope()->new_target_var() != nullptr) { |
__ push(edx); // Preserve new target. |
} |
- if (slots <= FastNewFunctionContextStub::MaximumSlots()) { |
- FastNewFunctionContextStub stub(isolate(), info->scope()->scope_type()); |
+ if (slots <= |
+ ConstructorBuiltinsAssembler::MaximumFunctionContextSlots()) { |
+ Callable callable = CodeFactory::FastNewFunctionContext( |
+ isolate(), info->scope()->scope_type()); |
__ mov(FastNewFunctionContextDescriptor::SlotsRegister(), |
Immediate(slots)); |
- __ CallStub(&stub); |
- // Result of FastNewFunctionContextStub is always in new space. |
+ __ Call(callable.code(), RelocInfo::CODE_TARGET); |
+ // Result of the FastNewFunctionContext builtin is always in new space. |
need_write_barrier = false; |
} else { |
__ push(edi); |