Reviewers: Weiliang, Toon Verwaest,
Message:
weiliang & Toon.
please review and commit this patch.
thanks.
Description:
X87: Remove KeyedStoreIC::GenerateRuntimeSetProperty and move
Store::GenerateRuntimeSetProperty to the PropertyICCompiler
port r23311.
original commit message:
Remove KeyedStoreIC::GenerateRuntimeSetProperty and move
Store::GenerateRuntimeSetProperty to the PropertyICCompiler
x
BUG=
Please review this at https://codereview.chromium.org/503733002/
SVN Base: https://chromium.googlesource.com/external/v8.git@bleeding_edge
Affected files (+19, -35 lines):
M src/ic/x87/ic-compiler-x87.cc
M src/ic/x87/ic-x87.cc
Index: src/ic/x87/ic-compiler-x87.cc
diff --git a/src/ic/x87/ic-compiler-x87.cc b/src/ic/x87/ic-compiler-x87.cc
index
519cdb3028c6947661f5c60505e811b3617b4e8a..dab04fa9b25d04e84a1872d54addec6b6b55e684
100644
--- a/src/ic/x87/ic-compiler-x87.cc
+++ b/src/ic/x87/ic-compiler-x87.cc
@@ -981,6 +981,23 @@ void
ElementHandlerCompiler::GenerateLoadDictionaryElement(
}
+void PropertyICCompiler::GenerateRuntimeSetProperty(MacroAssembler* masm,
+ StrictMode
strict_mode) {
+ // Return address is on the stack.
+ DCHECK(!ebx.is(StoreIC::ReceiverRegister()) &&
+ !ebx.is(StoreIC::NameRegister())
&& !ebx.is(StoreIC::ValueRegister()));
+ __ pop(ebx);
+ __ push(StoreIC::ReceiverRegister());
+ __ push(StoreIC::NameRegister());
+ __ push(StoreIC::ValueRegister());
+ __ push(Immediate(Smi::FromInt(strict_mode)));
+ __ push(ebx); // return address
+
+ // Do tail-call to runtime routine.
+ __ TailCallRuntime(Runtime::kSetProperty, 4, 1);
+}
+
+
#undef __
}
} // namespace v8::internal
Index: src/ic/x87/ic-x87.cc
diff --git a/src/ic/x87/ic-x87.cc b/src/ic/x87/ic-x87.cc
index
ef088d5f62b2eff3c5f5a57a1cae95971f127154..83015888cdc80b14630ac791a854db912cc528c8
100644
--- a/src/ic/x87/ic-x87.cc
+++ b/src/ic/x87/ic-x87.cc
@@ -8,6 +8,7 @@
#include "src/codegen.h"
#include "src/ic/ic.h"
+#include "src/ic/ic-compiler.h"
#include "src/ic/stub-cache.h"
namespace v8 {
@@ -778,7 +779,7 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
// Slow case: call runtime.
__ bind(&slow);
- GenerateRuntimeSetProperty(masm, strict_mode);
+ PropertyICCompiler::GenerateRuntimeSetProperty(masm, strict_mode);
// Extra capacity case: Check if there is extra capacity to
// perform the store and update the length. Used for adding one
@@ -1007,40 +1008,6 @@ void StoreIC::GenerateNormal(MacroAssembler* masm) {
}
-void StoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
- StrictMode strict_mode) {
- // Return address is on the stack.
- DCHECK(!ebx.is(ReceiverRegister()) && !ebx.is(NameRegister()) &&
- !ebx.is(ValueRegister()));
- __ pop(ebx);
- __ push(ReceiverRegister());
- __ push(NameRegister());
- __ push(ValueRegister());
- __ push(Immediate(Smi::FromInt(strict_mode)));
- __ push(ebx); // return address
-
- // Do tail-call to runtime routine.
- __ TailCallRuntime(Runtime::kSetProperty, 4, 1);
-}
-
-
-void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
- StrictMode strict_mode) {
- // Return address is on the stack.
- DCHECK(!ebx.is(ReceiverRegister()) && !ebx.is(NameRegister()) &&
- !ebx.is(ValueRegister()));
- __ pop(ebx);
- __ push(ReceiverRegister());
- __ push(NameRegister());
- __ push(ValueRegister());
- __ push(Immediate(Smi::FromInt(strict_mode)));
- __ push(ebx); // return address
-
- // Do tail-call to runtime routine.
- __ TailCallRuntime(Runtime::kSetProperty, 4, 1);
-}
-
-
void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
// Return address is on the stack.
StoreIC_PushArgs(masm);
--
--
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.