summaryrefslogtreecommitdiff
path: root/chromium/v8/src/compiler/linkage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/v8/src/compiler/linkage.cc')
-rw-r--r--chromium/v8/src/compiler/linkage.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/chromium/v8/src/compiler/linkage.cc b/chromium/v8/src/compiler/linkage.cc
index 8bb47b43e9f..1d88a27a5f7 100644
--- a/chromium/v8/src/compiler/linkage.cc
+++ b/chromium/v8/src/compiler/linkage.cc
@@ -137,13 +137,19 @@ bool CallDescriptor::CanTailCall(const Node* node) const {
return HasSameReturnLocationsAs(CallDescriptorOf(node->op()));
}
-int CallDescriptor::CalculateFixedFrameSize() const {
+// TODO(jkummerow, sigurds): Arguably frame size calculation should be
+// keyed on code/frame type, not on CallDescriptor kind. Think about a
+// good way to organize this logic.
+int CallDescriptor::CalculateFixedFrameSize(Code::Kind code_kind) const {
switch (kind_) {
case kCallJSFunction:
return PushArgumentCount()
? OptimizedBuiltinFrameConstants::kFixedSlotCount
: StandardFrameConstants::kFixedSlotCount;
case kCallAddress:
+ if (code_kind == Code::C_WASM_ENTRY) {
+ return CWasmEntryFrameConstants::kFixedSlotCount;
+ }
return CommonFrameConstants::kFixedSlotCountAboveFp +
CommonFrameConstants::kCPSlotCount;
case kCallCodeObject: