Reviewers: ulan,

Description:
Remove indirection when calling Runtime_StackGuard.

[email protected]
BUG=

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

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+10, -29 lines):
  M src/arm/full-codegen-arm.cc
  M src/arm/lithium-codegen-arm.cc
  M src/builtins.h
  M src/builtins.cc
  M src/ia32/lithium-codegen-ia32.cc
  M src/mips/full-codegen-mips.cc
  M src/mips/lithium-codegen-mips.cc
  M src/x64/full-codegen-x64.cc
  M src/x64/lithium-codegen-x64.cc


Index: src/arm/full-codegen-arm.cc
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc
index 28ec1a2a9a823415ab13f920a6e5c20363ba96b1..8214ebeafcf78b7d55b6a4b813cd6d3d4e0e9c65 100644
--- a/src/arm/full-codegen-arm.cc
+++ b/src/arm/full-codegen-arm.cc
@@ -296,7 +296,7 @@ void FullCodeGenerator::Generate() {
       __ cmp(sp, Operand(ip));
       __ b(hs, &ok);
PredictableCodeSizeScope predictable(masm_, 2 * Assembler::kInstrSize);
-      __ Call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET);
+      __ CallRuntime(Runtime::kStackCheck, 0);
       __ bind(&ok);
     }

@@ -414,8 +414,7 @@ void FullCodeGenerator::EmitReturnSequence() {
         __ push(r2);
         __ CallRuntime(Runtime::kOptimizeFunctionOnNextCall, 1);
       } else {
-        __ Call(isolate()->builtins()->InterruptCheck(),
-                RelocInfo::CODE_TARGET);
+        __ CallRuntime(Runtime::kInterrupt, 0);
       }
       __ pop(r0);
       EmitProfilingCounterReset();
Index: src/arm/lithium-codegen-arm.cc
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
index cf76a086720a7282487f2d59ddd09f6938c79759..39afd00840414e773b661d100a8d3e1ba11a5992 100644
--- a/src/arm/lithium-codegen-arm.cc
+++ b/src/arm/lithium-codegen-arm.cc
@@ -5660,9 +5660,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {
     __ cmp(sp, Operand(ip));
     __ b(hs, &done);
     PredictableCodeSizeScope predictable(masm_, 2 * Assembler::kInstrSize);
-    CallCode(isolate()->builtins()->StackCheck(),
-             RelocInfo::CODE_TARGET,
-             instr);
+    CallRuntime(Runtime::kStackGuard, 0, instr);
     EnsureSpaceForLazyDeopt();
     last_lazy_deopt_pc_ = masm()->pc_offset();
     __ bind(&done);
Index: src/builtins.cc
diff --git a/src/builtins.cc b/src/builtins.cc
index 9290852dc95e697d7761961a78cf9698a9dba3bd..e32d8c3e68bd17ec7a479527dd6673fba121aef1 100644
--- a/src/builtins.cc
+++ b/src/builtins.cc
@@ -1837,11 +1837,6 @@ void Builtins::Generate_InterruptCheck(MacroAssembler* masm) {
 }


-void Builtins::Generate_StackCheck(MacroAssembler* masm) {
-  masm->TailCallRuntime(Runtime::kStackGuard, 0, 1);
-}
-
-
 #define DEFINE_BUILTIN_ACCESSOR_C(name, ignore)               \
 Handle<Code> Builtins::name() {                               \
   Code** code_address =                                       \
Index: src/builtins.h
diff --git a/src/builtins.h b/src/builtins.h
index cbfa1d768816ded3715d6a441198d58a36a63232..6c072cb68802ac1cc39265eb9fd08ce79cfc84f0 100644
--- a/src/builtins.h
+++ b/src/builtins.h
@@ -221,8 +221,6 @@ enum BuiltinExtraArguments {
                                     Code::kNoExtraICState)              \
   V(InterruptCheck,                 BUILTIN, UNINITIALIZED,             \
                                     Code::kNoExtraICState)              \
-  V(StackCheck,                     BUILTIN, UNINITIALIZED,             \
-                                    Code::kNoExtraICState)              \
   CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V)

 #ifdef ENABLE_DEBUGGER_SUPPORT
@@ -408,7 +406,6 @@ class Builtins {
   static void Generate_OnStackReplacement(MacroAssembler* masm);

   static void Generate_InterruptCheck(MacroAssembler* masm);
-  static void Generate_StackCheck(MacroAssembler* masm);

 #define DECLARE_CODE_AGE_BUILTIN_GENERATOR(C)                \
   static void Generate_Make##C##CodeYoungAgainEvenMarking(   \
Index: src/ia32/lithium-codegen-ia32.cc
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc index 860646c2fd60417e2fdfe5640eabe15cb61c0211..ab5e0222d5eed42ce97adae4095a76e4c9b6b8c5 100644
--- a/src/ia32/lithium-codegen-ia32.cc
+++ b/src/ia32/lithium-codegen-ia32.cc
@@ -6223,9 +6223,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {

     ASSERT(instr->context()->IsRegister());
     ASSERT(ToRegister(instr->context()).is(esi));
-    CallCode(isolate()->builtins()->StackCheck(),
-             RelocInfo::CODE_TARGET,
-             instr);
+    CallRuntime(Runtime::kStackGuard, 0, instr);
     EnsureSpaceForLazyDeopt();
     __ bind(&done);
     RegisterEnvironmentForDeoptimization(env, Safepoint::kLazyDeopt);
Index: src/mips/full-codegen-mips.cc
diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc
index bf6f1c82e4a8a1b9d530241b3d115acebbff6147..676d1c31c688d201cabf2038ff1d5c0e9a9d4e1d 100644
--- a/src/mips/full-codegen-mips.cc
+++ b/src/mips/full-codegen-mips.cc
@@ -298,7 +298,7 @@ void FullCodeGenerator::Generate() {
       Label ok;
       __ LoadRoot(t0, Heap::kStackLimitRootIndex);
       __ Branch(&ok, hs, sp, Operand(t0));
-      __ Call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET);
+      __ CallRuntime(Runtime::kStackCheck, 0);
       __ bind(&ok);
     }

@@ -416,8 +416,7 @@ void FullCodeGenerator::EmitReturnSequence() {
         __ push(a2);
         __ CallRuntime(Runtime::kOptimizeFunctionOnNextCall, 1);
       } else {
-        __ Call(isolate()->builtins()->InterruptCheck(),
-                RelocInfo::CODE_TARGET);
+        __ CallRuntime(Runtime::kInterrupt, 0);
       }
       __ pop(v0);
       EmitProfilingCounterReset();
Index: src/mips/lithium-codegen-mips.cc
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc index ab713a3cec4a06d74e6c4e3edf1980eae0789283..96995010745082db716fb1ad2ef66759811be604 100644
--- a/src/mips/lithium-codegen-mips.cc
+++ b/src/mips/lithium-codegen-mips.cc
@@ -5658,9 +5658,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {
     Label done;
     __ LoadRoot(at, Heap::kStackLimitRootIndex);
     __ Branch(&done, hs, sp, Operand(at));
-    CallCode(isolate()->builtins()->StackCheck(),
-             RelocInfo::CODE_TARGET,
-             instr);
+    CallRuntime(Runtime::kStackGuard, 0, instr);
     EnsureSpaceForLazyDeopt();
     last_lazy_deopt_pc_ = masm()->pc_offset();
     __ bind(&done);
Index: src/x64/full-codegen-x64.cc
diff --git a/src/x64/full-codegen-x64.cc b/src/x64/full-codegen-x64.cc
index c182dd0ce5800d8db1247fcdf9d4490c0881e6ca..6df6fd46a6db6fe167516c4deb929e08eda2d938 100644
--- a/src/x64/full-codegen-x64.cc
+++ b/src/x64/full-codegen-x64.cc
@@ -280,7 +280,7 @@ void FullCodeGenerator::Generate() {
       Label ok;
       __ CompareRoot(rsp, Heap::kStackLimitRootIndex);
       __ j(above_equal, &ok, Label::kNear);
-      __ call(isolate()->builtins()->StackCheck(), RelocInfo::CODE_TARGET);
+      __ CallRuntime(Runtime::kStackCheck, 0);
       __ bind(&ok);
     }

@@ -386,8 +386,7 @@ void FullCodeGenerator::EmitReturnSequence() {
         __ push(Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
         __ CallRuntime(Runtime::kOptimizeFunctionOnNextCall, 1);
       } else {
-        __ call(isolate()->builtins()->InterruptCheck(),
-                RelocInfo::CODE_TARGET);
+        __ CallRuntime(Runtime::kInterrupt, 0);
       }
       __ pop(rax);
       EmitProfilingCounterReset();
Index: src/x64/lithium-codegen-x64.cc
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
index 836abe88776e64c9b5e67ea45bf7fe3c4cdd5ad2..b3a7097fea89530c230fc81fed0575c9e5a5b539 100644
--- a/src/x64/lithium-codegen-x64.cc
+++ b/src/x64/lithium-codegen-x64.cc
@@ -5390,9 +5390,7 @@ void LCodeGen::DoStackCheck(LStackCheck* instr) {
     Label done;
     __ CompareRoot(rsp, Heap::kStackLimitRootIndex);
     __ j(above_equal, &done, Label::kNear);
-    CallCode(isolate()->builtins()->StackCheck(),
-             RelocInfo::CODE_TARGET,
-             instr);
+    CallRuntime(Runtime::kStackGuard, 0, instr);
     EnsureSpaceForLazyDeopt(Deoptimizer::patch_size());
     last_lazy_deopt_pc_ = masm()->pc_offset();
     __ bind(&done);


--
--
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/groups/opt_out.

Reply via email to