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.