Reviewers: Yang,

Message:
PTAL.

Description:
Fix missing SmiTag in failure path of r27614

BUG=chromium:469768
LOG=n

Please review this at https://codereview.chromium.org/1061263003/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+12, -0 lines):
  M src/arm/builtins-arm.cc
  M src/arm64/builtins-arm64.cc
  M src/ia32/builtins-ia32.cc
  M src/x64/builtins-x64.cc


Index: src/arm/builtins-arm.cc
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
index e14570c542dd365787062d8c98a2bbbc7a183e9d..f97b99f0aa94db892484fc3cf5ca494dc1c66a46 100644
--- a/src/arm/builtins-arm.cc
+++ b/src/arm/builtins-arm.cc
@@ -856,6 +856,9 @@ static void Generate_CheckStackOverflow(MacroAssembler* masm,

   // Out of stack space.
   __ ldr(r1, MemOperand(fp, calleeOffset));
+  if (argc_is_tagged == kArgcIsUntaggedInt) {
+    __ SmiTag(argc);
+  }
   __ Push(r1, argc);
   __ InvokeBuiltin(Builtins::STACK_OVERFLOW, CALL_FUNCTION);

Index: src/arm64/builtins-arm64.cc
diff --git a/src/arm64/builtins-arm64.cc b/src/arm64/builtins-arm64.cc
index 97ccf196580b25c15e2e7ab6587652f25065effc..9a0c4a751a72b25dd6bd38714d273898399dfdb0 100644
--- a/src/arm64/builtins-arm64.cc
+++ b/src/arm64/builtins-arm64.cc
@@ -828,6 +828,9 @@ static void Generate_CheckStackOverflow(MacroAssembler* masm,
   __ B(gt, &enough_stack_space);
// There is not enough stack space, so use a builtin to throw an appropriate
   // error.
+  if (argc_is_tagged == kArgcIsUntaggedInt) {
+    __ SmiTag(argc);
+  }
   __ Push(function, argc);
   __ InvokeBuiltin(Builtins::STACK_OVERFLOW, CALL_FUNCTION);
   // We should never return from the APPLY_OVERFLOW builtin.
Index: src/ia32/builtins-ia32.cc
diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc
index b4966ba6a602e5727c4ab2cb130ac70742576b16..c778d5a53723d06ab2be00776bafb018e93917b5 100644
--- a/src/ia32/builtins-ia32.cc
+++ b/src/ia32/builtins-ia32.cc
@@ -605,6 +605,9 @@ static void Generate_CheckStackOverflow(MacroAssembler* masm,

   // Out of stack space.
   __ push(Operand(ebp, calleeOffset));  // push this
+  if (eax_is_tagged == kEaxIsUntaggedInt) {
+    __ SmiTag(eax);
+  }
   __ push(eax);
   __ InvokeBuiltin(Builtins::STACK_OVERFLOW, CALL_FUNCTION);

Index: src/x64/builtins-x64.cc
diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
index dbf2dc46fcf9588147fb6c6ef4838e79c304c19d..7c670d448b9b4712d63193252d55246cb8db1496 100644
--- a/src/x64/builtins-x64.cc
+++ b/src/x64/builtins-x64.cc
@@ -606,6 +606,9 @@ static void Generate_CheckStackOverflow(MacroAssembler* masm,

   // Out of stack space.
   __ Push(Operand(rbp, calleeOffset));
+  if (rax_is_tagged == kRaxIsUntaggedInt) {
+    __ Integer32ToSmi(rax, rax);
+  }
   __ Push(rax);
   __ InvokeBuiltin(Builtins::STACK_OVERFLOW, CALL_FUNCTION);



--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to