Author: [email protected]
Date: Tue Mar  3 22:14:34 2009
New Revision: 1408

Modified:
    branches/bleeding_edge/src/builtins.cc
    branches/bleeding_edge/src/code-stubs.cc
    branches/bleeding_edge/src/codegen.cc
    branches/bleeding_edge/src/flag-definitions.h
    branches/bleeding_edge/src/objects-debug.cc
    branches/bleeding_edge/src/objects.cc
    branches/bleeding_edge/src/objects.h
    branches/bleeding_edge/src/stub-cache-arm.cc
    branches/bleeding_edge/src/stub-cache-ia32.cc
    branches/bleeding_edge/src/stub-cache.cc
    branches/bleeding_edge/src/stub-cache.h

Log:
Add a meaningful name when disassembling code. This makes it easier
to match generated code to the originating source.

Review URL: http://codereview.chromium.org/39014

Modified: branches/bleeding_edge/src/builtins.cc
==============================================================================
--- branches/bleeding_edge/src/builtins.cc      (original)
+++ branches/bleeding_edge/src/builtins.cc      Tue Mar  3 22:14:34 2009
@@ -699,10 +699,10 @@
        // Log the event and add the code to the builtins array.
        LOG(CodeCreateEvent("Builtin", Code::cast(code),  
functions[i].s_name));
        builtins_[i] = code;
-#ifdef DEBUG
+#ifdef ENABLE_DISASSEMBLER
        if (FLAG_print_builtin_code) {
          PrintF("Builtin: %s\n", functions[i].s_name);
-        code->Print();
+        Code::cast(code)->Disassemble(functions[i].s_name);
          PrintF("\n");
        }
  #endif

Modified: branches/bleeding_edge/src/code-stubs.cc
==============================================================================
--- branches/bleeding_edge/src/code-stubs.cc    (original)
+++ branches/bleeding_edge/src/code-stubs.cc    Tue Mar  3 22:14:34 2009
@@ -68,10 +68,12 @@
      LOG(CodeCreateEvent("Stub", *code, GetName()));
      Counters::total_stubs_code_size.Increment(code->instruction_size());

-#ifdef DEBUG
+#ifdef ENABLE_DISASSEMBLER
      if (FLAG_print_code_stubs) {
+#ifdef DEBUG
        Print();
-      code->Print();
+#endif
+      code->Disassemble(GetName());
        PrintF("\n");
      }
  #endif

Modified: branches/bleeding_edge/src/codegen.cc
==============================================================================
--- branches/bleeding_edge/src/codegen.cc       (original)
+++ branches/bleeding_edge/src/codegen.cc       Tue Mar  3 22:14:34 2009
@@ -179,7 +179,7 @@
        PrintF("\n\n");
      }
      PrintF("--- Code ---\n");
-    code->Disassemble();
+    code->Disassemble(*flit->name()->ToCString());
    }
  #endif  // ENABLE_DISASSEMBLER


Modified: branches/bleeding_edge/src/flag-definitions.h
==============================================================================
--- branches/bleeding_edge/src/flag-definitions.h       (original)
+++ branches/bleeding_edge/src/flag-definitions.h       Tue Mar  3 22:14:34 2009
@@ -246,9 +246,6 @@
  DEFINE_bool(enable_slow_asserts, false,
              "enable asserts that are slow to execute")

-// code-stubs.cc
-DEFINE_bool(print_code_stubs, false, "print code stubs")
-
  // codegen-ia32.cc / codegen-arm.cc
  DEFINE_bool(trace_codegen, false,
              "print name of functions for which code is generated")
@@ -345,6 +342,9 @@
  #else
  #define FLAG FLAG_READONLY
  #endif
+
+// code-stubs.cc
+DEFINE_bool(print_code_stubs, false, "print code stubs")

  // codegen-ia32.cc / codegen-arm.cc
  DEFINE_bool(print_code, false, "print generated code")

Modified: branches/bleeding_edge/src/objects-debug.cc
==============================================================================
--- branches/bleeding_edge/src/objects-debug.cc (original)
+++ branches/bleeding_edge/src/objects-debug.cc Tue Mar  3 22:14:34 2009
@@ -658,7 +658,7 @@
  void Code::CodePrint() {
    HeapObject::PrintHeader("Code");
  #ifdef ENABLE_DISASSEMBLER
-  Disassemble();
+  Disassemble(NULL);
  #endif
  }


Modified: branches/bleeding_edge/src/objects.cc
==============================================================================
--- branches/bleeding_edge/src/objects.cc       (original)
+++ branches/bleeding_edge/src/objects.cc       Tue Mar  3 22:14:34 2009
@@ -4795,10 +4795,13 @@
  }


-void Code::Disassemble() {
-  PrintF("kind = %s", Kind2String(kind()));
+void Code::Disassemble(const char* name) {
+  PrintF("kind = %s\n", Kind2String(kind()));
+  if ((name != NULL) && (name[0] != '\0')) {
+    PrintF("name = %s\n", name);
+  }

-  PrintF("\nInstructions (size = %d)\n", instruction_size());
+  PrintF("Instructions (size = %d)\n", instruction_size());
    Disassembler::Decode(NULL, this);
    PrintF("\n");


Modified: branches/bleeding_edge/src/objects.h
==============================================================================
--- branches/bleeding_edge/src/objects.h        (original)
+++ branches/bleeding_edge/src/objects.h        Tue Mar  3 22:14:34 2009
@@ -2157,7 +2157,7 @@
    // Printing
    static const char* Kind2String(Kind kind);
    static const char* ICState2String(InlineCacheState state);
-  void Disassemble();
+  void Disassemble(const char* name);
  #endif  // ENABLE_DISASSEMBLER

    // [instruction_size]: Size of the native instructions

Modified: branches/bleeding_edge/src/stub-cache-arm.cc
==============================================================================
--- branches/bleeding_edge/src/stub-cache-arm.cc        (original)
+++ branches/bleeding_edge/src/stub-cache-arm.cc        Tue Mar  3 22:14:34 2009
@@ -488,13 +488,14 @@
    // Do a tail-call of the compiled function.
    __ Jump(r2);

-  return GetCodeWithFlags(flags);
+  return GetCodeWithFlags(flags, "LazyCompileStub");
  }


  Object* CallStubCompiler::CompileCallField(Object* object,
                                             JSObject* holder,
-                                           int index) {
+                                           int index,
+                                           String* name) {
    // ----------- S t a t e -------------
    //  -- lr: return address
    // -----------------------------------
@@ -538,7 +539,7 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(FIELD);
+  return GetCode(FIELD, name);
  }


@@ -659,7 +660,11 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(CONSTANT_FUNCTION);
+  String* function_name = NULL;
+  if (function->shared()->name()->IsString()) {
+    function_name = String::cast(function->shared()->name());
+  }
+  return GetCode(CONSTANT_FUNCTION, function_name);
  }


@@ -679,7 +684,7 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -712,7 +717,7 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION);
+  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION, name);
  }


@@ -767,7 +772,7 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -819,13 +824,14 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


  Object* LoadStubCompiler::CompileLoadField(JSObject* object,
                                             JSObject* holder,
-                                           int index) {
+                                           int index,
+                                           String* name) {
    // ----------- S t a t e -------------
    //  -- r2    : name
    //  -- lr    : return address
@@ -840,13 +846,14 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(FIELD);
+  return GetCode(FIELD, name);
  }


  Object* LoadStubCompiler::CompileLoadCallback(JSObject* object,
                                                JSObject* holder,
-                                              AccessorInfo* callback) {
+                                              AccessorInfo* callback,
+                                              String* name) {
    // ----------- S t a t e -------------
    //  -- r2    : name
    //  -- lr    : return address
@@ -860,13 +867,14 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


  Object* LoadStubCompiler::CompileLoadConstant(JSObject* object,
                                                JSObject* holder,
-                                              Object* value) {
+                                              Object* value,
+                                              String* name) {
    // ----------- S t a t e -------------
    //  -- r2    : name
    //  -- lr    : return address
@@ -881,7 +889,7 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(CONSTANT_FUNCTION);
+  return GetCode(CONSTANT_FUNCTION, name);
  }


@@ -902,7 +910,7 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -929,7 +937,7 @@
    __ bind(&miss);
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

-  return GetCode(FIELD);
+  return GetCode(FIELD, name);
  }


@@ -955,7 +963,7 @@
    __ bind(&miss);
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -982,7 +990,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(CONSTANT_FUNCTION);
+  return GetCode(CONSTANT_FUNCTION, name);
  }


@@ -1007,7 +1015,7 @@
    __ bind(&miss);
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -1030,7 +1038,7 @@
    __ bind(&miss);
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -1055,7 +1063,7 @@

    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -1068,7 +1076,7 @@
    // -----------------------------------
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -1108,7 +1116,7 @@
    __ Jump(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION);
+  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION, name);
  }



Modified: branches/bleeding_edge/src/stub-cache-ia32.cc
==============================================================================
--- branches/bleeding_edge/src/stub-cache-ia32.cc       (original)
+++ branches/bleeding_edge/src/stub-cache-ia32.cc       Tue Mar  3 22:14:34 2009
@@ -465,13 +465,14 @@
    __ lea(ecx, FieldOperand(eax, Code::kHeaderSize));
    __ jmp(Operand(ecx));

-  return GetCodeWithFlags(flags);
+  return GetCodeWithFlags(flags, "LazyCompileStub");
  }


  Object* CallStubCompiler::CompileCallField(Object* object,
                                             JSObject* holder,
-                                           int index) {
+                                           int index,
+                                           String* name) {
    // ----------- S t a t e -------------
    // -----------------------------------
    Label miss;
@@ -514,7 +515,7 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(FIELD);
+  return GetCode(FIELD, name);
  }


@@ -634,7 +635,11 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(CONSTANT_FUNCTION);
+  String* function_name = NULL;
+  if (function->shared()->name()->IsString()) {
+    function_name = String::cast(function->shared()->name());
+  }
+  return GetCode(CONSTANT_FUNCTION, function_name);
  }


@@ -707,7 +712,7 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -742,7 +747,7 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION);
+  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION, name);
  }


@@ -797,7 +802,7 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -850,7 +855,7 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -893,13 +898,14 @@
    __ jmp(ic, RelocInfo::CODE_TARGET);

    // Return the generated code.
-  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION);
+  return GetCode(transition == NULL ? FIELD : MAP_TRANSITION, name);
  }


  Object* LoadStubCompiler::CompileLoadField(JSObject* object,
                                             JSObject* holder,
-                                           int index) {
+                                           int index,
+                                           String* name) {
    // ----------- S t a t e -------------
    //  -- ecx    : name
    //  -- esp[0] : return address
@@ -913,13 +919,14 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(FIELD);
+  return GetCode(FIELD, name);
  }


  Object* LoadStubCompiler::CompileLoadCallback(JSObject* object,
                                                JSObject* holder,
-                                              AccessorInfo* callback) {
+                                              AccessorInfo* callback,
+                                              String* name) {
    // ----------- S t a t e -------------
    //  -- ecx    : name
    //  -- esp[0] : return address
@@ -934,13 +941,14 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


  Object* LoadStubCompiler::CompileLoadConstant(JSObject* object,
                                                JSObject* holder,
-                                              Object* value) {
+                                              Object* value,
+                                              String* name) {
    // ----------- S t a t e -------------
    //  -- ecx    : name
    //  -- esp[0] : return address
@@ -954,7 +962,7 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(CONSTANT_FUNCTION);
+  return GetCode(CONSTANT_FUNCTION, name);
  }


@@ -974,7 +982,7 @@
    GenerateLoadMiss(masm(), Code::LOAD_IC);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -1003,7 +1011,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(FIELD);
+  return GetCode(FIELD, name);
  }


@@ -1033,7 +1041,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -1062,7 +1070,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(CONSTANT_FUNCTION);
+  return GetCode(CONSTANT_FUNCTION, name);
  }


@@ -1090,7 +1098,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(INTERCEPTOR);
+  return GetCode(INTERCEPTOR, name);
  }


@@ -1118,7 +1126,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -1144,7 +1152,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }


@@ -1170,7 +1178,7 @@
    GenerateLoadMiss(masm(), Code::KEYED_LOAD_IC);

    // Return the generated code.
-  return GetCode(CALLBACKS);
+  return GetCode(CALLBACKS, name);
  }



Modified: branches/bleeding_edge/src/stub-cache.cc
==============================================================================
--- branches/bleeding_edge/src/stub-cache.cc    (original)
+++ branches/bleeding_edge/src/stub-cache.cc    Tue Mar  3 22:14:34 2009
@@ -100,7 +100,7 @@
    Object* code = receiver->map()->FindInCodeCache(name, flags);
    if (code->IsUndefined()) {
      LoadStubCompiler compiler;
-    code = compiler.CompileLoadField(receiver, holder, field_index);
+    code = compiler.CompileLoadField(receiver, holder, field_index, name);
      if (code->IsFailure()) return code;
      LOG(CodeCreateEvent("LoadIC", Code::cast(code), name));
      Object* result = receiver->map()->UpdateCodeCache(name,  
Code::cast(code));
@@ -119,7 +119,7 @@
    Object* code = receiver->map()->FindInCodeCache(name, flags);
    if (code->IsUndefined()) {
      LoadStubCompiler compiler;
-    code = compiler.CompileLoadCallback(receiver, holder, callback);
+    code = compiler.CompileLoadCallback(receiver, holder, callback, name);
      if (code->IsFailure()) return code;
      LOG(CodeCreateEvent("LoadIC", Code::cast(code), name));
      Object* result = receiver->map()->UpdateCodeCache(name,  
Code::cast(code));
@@ -138,7 +138,7 @@
    Object* code = receiver->map()->FindInCodeCache(name, flags);
    if (code->IsUndefined()) {
      LoadStubCompiler compiler;
-    code = compiler.CompileLoadConstant(receiver, holder, value);
+    code = compiler.CompileLoadConstant(receiver, holder, value, name);
      if (code->IsFailure()) return code;
      LOG(CodeCreateEvent("LoadIC", Code::cast(code), name));
      Object* result = receiver->map()->UpdateCodeCache(name,  
Code::cast(code));
@@ -434,7 +434,7 @@
    Object* code = map->FindInCodeCache(name, flags);
    if (code->IsUndefined()) {
      CallStubCompiler compiler(argc);
-    code = compiler.CompileCallField(object, holder, index);
+    code = compiler.CompileCallField(object, holder, index, name);
      if (code->IsFailure()) return code;
      LOG(CodeCreateEvent("CallIC", Code::cast(code), name));
      Object* result = map->UpdateCodeCache(name, Code::cast(code));
@@ -788,7 +788,7 @@
    HandleScope scope;
    int argc = Code::ExtractArgumentsCountFromFlags(flags);
    CallIC::GenerateInitialize(masm(), argc);
-  Object* result = GetCodeWithFlags(flags);
+  Object* result = GetCodeWithFlags(flags, "CompileCallInitialize");
    if (!result->IsFailure()) {
      Counters::call_initialize_stubs.Increment();
      Code* code = Code::cast(result);
@@ -803,7 +803,7 @@
    HandleScope scope;
    int argc = Code::ExtractArgumentsCountFromFlags(flags);
    CallIC::GenerateInitialize(masm(), argc);
-  Object* result = GetCodeWithFlags(flags);
+  Object* result = GetCodeWithFlags(flags, "CompileCallPreMonomorphic");
    if (!result->IsFailure()) {
      Counters::call_premonomorphic_stubs.Increment();
      Code* code = Code::cast(result);
@@ -818,7 +818,7 @@
    HandleScope scope;
    int argc = Code::ExtractArgumentsCountFromFlags(flags);
    CallIC::GenerateNormal(masm(), argc);
-  Object* result = GetCodeWithFlags(flags);
+  Object* result = GetCodeWithFlags(flags, "CompileCallNormal");
    if (!result->IsFailure()) {
      Counters::call_normal_stubs.Increment();
      Code* code = Code::cast(result);
@@ -833,7 +833,7 @@
    HandleScope scope;
    int argc = Code::ExtractArgumentsCountFromFlags(flags);
    CallIC::GenerateMegamorphic(masm(), argc);
-  Object* result = GetCodeWithFlags(flags);
+  Object* result = GetCodeWithFlags(flags, "CompileCallMegamorphic");
    if (!result->IsFailure()) {
      Counters::call_megamorphic_stubs.Increment();
      Code* code = Code::cast(result);
@@ -848,7 +848,7 @@
    HandleScope scope;
    int argc = Code::ExtractArgumentsCountFromFlags(flags);
    CallIC::GenerateMiss(masm(), argc);
-  Object* result = GetCodeWithFlags(flags);
+  Object* result = GetCodeWithFlags(flags, "CompileCallMiss");
    if (!result->IsFailure()) {
      Counters::call_megamorphic_stubs.Increment();
      Code* code = Code::cast(result);
@@ -862,7 +862,7 @@
  Object* StubCompiler::CompileCallDebugBreak(Code::Flags flags) {
    HandleScope scope;
    Debug::GenerateCallICDebugBreak(masm());
-  Object* result = GetCodeWithFlags(flags);
+  Object* result = GetCodeWithFlags(flags, "CompileCallDebugBreak");
    if (!result->IsFailure()) {
      Code* code = Code::cast(result);
      USE(code);
@@ -878,7 +878,7 @@
    // the miss case.
    int argc = Code::ExtractArgumentsCountFromFlags(flags);
    CallIC::GenerateMiss(masm(), argc);
-  Object* result = GetCodeWithFlags(flags);
+  Object* result =  
GetCodeWithFlags(flags, "CompileCallDebugPrepareStepIn");
    if (!result->IsFailure()) {
      Code* code = Code::cast(result);
      USE(code);
@@ -889,45 +889,55 @@
  }


-Object* StubCompiler::GetCodeWithFlags(Code::Flags flags) {
+Object* StubCompiler::GetCodeWithFlags(Code::Flags flags, char* name) {
    CodeDesc desc;
    masm_.GetCode(&desc);
    Object* result = Heap::CreateCode(desc, NULL, flags, masm_.CodeObject());
-#ifdef DEBUG
+#ifdef ENABLE_DISASSEMBLER
    if (FLAG_print_code_stubs && !result->IsFailure()) {
-    Code::cast(result)->Print();
+    Code::cast(result)->Disassemble(name);
    }
  #endif
    return result;
  }


-Object* LoadStubCompiler::GetCode(PropertyType type) {
-  return GetCodeWithFlags(Code::ComputeMonomorphicFlags(Code::LOAD_IC,  
type));
+Object* StubCompiler::GetCodeWithFlags(Code::Flags flags, String* name) {
+  if (FLAG_print_code_stubs && (name != NULL)) {
+    return GetCodeWithFlags(flags, *name->ToCString());
+  }
+  return GetCodeWithFlags(flags, reinterpret_cast<char*>(NULL));
+}
+
+
+Object* LoadStubCompiler::GetCode(PropertyType type, String* name) {
+  Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC, type);
+  return GetCodeWithFlags(flags, name);
  }


-Object* KeyedLoadStubCompiler::GetCode(PropertyType type) {
-  return  
GetCodeWithFlags(Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC,
-                                                        type));
+Object* KeyedLoadStubCompiler::GetCode(PropertyType type, String* name) {
+  Code::Flags flags = Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC,  
type);
+  return GetCodeWithFlags(flags, name);
  }


-Object* StoreStubCompiler::GetCode(PropertyType type) {
-  return GetCodeWithFlags(Code::ComputeMonomorphicFlags(Code::STORE_IC,  
type));
+Object* StoreStubCompiler::GetCode(PropertyType type, String* name) {
+  Code::Flags flags = Code::ComputeMonomorphicFlags(Code::STORE_IC, type);
+  return GetCodeWithFlags(flags, name);
  }


-Object* KeyedStoreStubCompiler::GetCode(PropertyType type) {
-  return  
GetCodeWithFlags(Code::ComputeMonomorphicFlags(Code::KEYED_STORE_IC,
-                                                        type));
+Object* KeyedStoreStubCompiler::GetCode(PropertyType type, String* name) {
+  Code::Flags flags = Code::ComputeMonomorphicFlags(Code::KEYED_STORE_IC,  
type);
+  return GetCodeWithFlags(flags, name);
  }


-Object* CallStubCompiler::GetCode(PropertyType type) {
+Object* CallStubCompiler::GetCode(PropertyType type, String* name) {
    int argc = arguments_.immediate();
    Code::Flags flags = Code::ComputeMonomorphicFlags(Code::CALL_IC, type,  
argc);
-  return GetCodeWithFlags(flags);
+  return GetCodeWithFlags(flags, name);
  }



Modified: branches/bleeding_edge/src/stub-cache.h
==============================================================================
--- branches/bleeding_edge/src/stub-cache.h     (original)
+++ branches/bleeding_edge/src/stub-cache.h     Tue Mar  3 22:14:34 2009
@@ -362,7 +362,8 @@
    static void GenerateLoadMiss(MacroAssembler* masm, Code::Kind kind);

   protected:
-  Object* GetCodeWithFlags(Code::Flags flags);
+  Object* GetCodeWithFlags(Code::Flags flags, char* name);
+  Object* GetCodeWithFlags(Code::Flags flags, String* name);

    MacroAssembler* masm() { return &masm_; }

@@ -374,19 +375,24 @@

  class LoadStubCompiler: public StubCompiler {
   public:
-  Object* CompileLoadField(JSObject* object, JSObject* holder, int index);
+  Object* CompileLoadField(JSObject* object,
+                           JSObject* holder,
+                           int index,
+                           String* name);
    Object* CompileLoadCallback(JSObject* object,
                                JSObject* holder,
-                              AccessorInfo* callback);
+                              AccessorInfo* callback,
+                              String* name);
    Object* CompileLoadConstant(JSObject* object,
                                JSObject* holder,
-                              Object* value);
+                              Object* value,
+                              String* name);
    Object* CompileLoadInterceptor(JSObject* object,
                                   JSObject* holder,
                                   String* name);

   private:
-  Object* GetCode(PropertyType);
+  Object* GetCode(PropertyType type, String* name);
  };


@@ -412,7 +418,7 @@
    Object* CompileLoadFunctionPrototype(String* name);

   private:
-  Object* GetCode(PropertyType);
+  Object* GetCode(PropertyType type, String* name);
  };


@@ -428,7 +434,7 @@
    Object* CompileStoreInterceptor(JSObject* object, String* name);

   private:
-  Object* GetCode(PropertyType type);
+  Object* GetCode(PropertyType type, String* name);
  };


@@ -440,7 +446,7 @@
                              String* name);

   private:
-  Object* GetCode(PropertyType type);
+  Object* GetCode(PropertyType type, String* name);
  };


@@ -448,7 +454,10 @@
   public:
    explicit CallStubCompiler(int argc) : arguments_(argc) { }

-  Object* CompileCallField(Object* object, JSObject* holder, int index);
+  Object* CompileCallField(Object* object,
+                           JSObject* holder,
+                           int index,
+                           String* name);
    Object* CompileCallConstant(Object* object,
                                JSObject* holder,
                                JSFunction* function,
@@ -462,7 +471,7 @@

    const ParameterCount& arguments() { return arguments_; }

-  Object* GetCode(PropertyType type);
+  Object* GetCode(PropertyType type, String* name);
  };



--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to