X87: Unify JSEntryStub and JSConstructEntryStub, and some more code stub cleanups.
authorweiliang.lin@intel.com <weiliang.lin@intel.com>
Wed, 10 Sep 2014 07:17:23 +0000 (07:17 +0000)
committerweiliang.lin@intel.com <weiliang.lin@intel.com>
Wed, 10 Sep 2014 07:17:23 +0000 (07:17 +0000)
port r23742.

original commit message:

  Unify JSEntryStub and JSConstructEntryStub, and some more code stub cleanups.

BUG=
R=weiliang.lin@intel.com

Review URL: https://codereview.chromium.org/557233002

Patch from Jing Bao <jing.bao@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/x87/code-stubs-x87.cc
src/x87/code-stubs-x87.h

index acee4c9..f36ef80 100644 (file)
@@ -2073,7 +2073,7 @@ void CEntryStub::Generate(MacroAssembler* masm) {
 }
 
 
-void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
+void JSEntryStub::Generate(MacroAssembler* masm) {
   Label invoke, handler_entry, exit;
   Label not_outermost_js, not_outermost_js_2;
 
@@ -2084,7 +2084,7 @@ void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
   __ mov(ebp, esp);
 
   // Push marker in two places.
-  int marker = is_construct ? StackFrame::ENTRY_CONSTRUCT : StackFrame::ENTRY;
+  int marker = type();
   __ push(Immediate(Smi::FromInt(marker)));  // context slot
   __ push(Immediate(Smi::FromInt(marker)));  // function slot
   // Save callee-saved registers (C calling conventions).
@@ -2135,7 +2135,7 @@ void JSEntryStub::GenerateBody(MacroAssembler* masm, bool is_construct) {
   // pop the faked function when we return. Notice that we cannot store a
   // reference to the trampoline code directly in this stub, because the
   // builtin stubs may not have been generated yet.
-  if (is_construct) {
+  if (type() == StackFrame::ENTRY_CONSTRUCT) {
     ExternalReference construct_entry(Builtins::kJSConstructEntryTrampoline,
                                       isolate());
     __ mov(edx, Immediate(construct_entry));
index b500364..581d5ea 100644 (file)
@@ -66,8 +66,6 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
                  IndexBits::encode(index.code()) | LookupModeBits::encode(mode);
   }
 
-  void Generate(MacroAssembler* masm);
-
   static void GenerateNegativeLookup(MacroAssembler* masm,
                                      Label* miss,
                                      Label* done,
@@ -116,7 +114,7 @@ class NameDictionaryLookupStub: public PlatformCodeStub {
   class IndexBits: public BitField<int, 6, 3> {};
   class LookupModeBits: public BitField<LookupMode, 9, 1> {};
 
-  DEFINE_CODE_STUB(NameDictionaryLookup, PlatformCodeStub);
+  DEFINE_PLATFORM_CODE_STUB(NameDictionaryLookup, PlatformCodeStub);
 };
 
 
@@ -324,7 +322,7 @@ class RecordWriteStub: public PlatformCodeStub {
 
   virtual inline Major MajorKey() const FINAL OVERRIDE { return RecordWrite; }
 
-  void Generate(MacroAssembler* masm);
+  virtual void Generate(MacroAssembler* masm) OVERRIDE;
   void GenerateIncremental(MacroAssembler* masm, Mode mode);
   void CheckNeedsToInformIncrementalMarker(
       MacroAssembler* masm,