Reviewers: Mads Ager,

Description:
 Encapsulated the AST ID recording a bit, this time for MIPS.

Please review this at http://codereview.chromium.org/7400019/

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

Affected files:
  M     src/mips/assembler-mips.h
  M     src/mips/assembler-mips.cc
  M     src/mips/macro-assembler-mips.cc


Index: src/mips/assembler-mips.cc
===================================================================
--- src/mips/assembler-mips.cc  (revision 8670)
+++ src/mips/assembler-mips.cc  (working copy)
@@ -285,7 +285,7 @@
   unbound_labels_count_ = 0;
   block_buffer_growth_ = false;

-  ast_id_for_reloc_info_ = kNoASTId;
+  ClearRecordedAstId();
 }


@@ -1947,9 +1947,8 @@
     }
ASSERT(buffer_space() >= kMaxRelocSize); // Too late to grow buffer here.
     if (rmode == RelocInfo::CODE_TARGET_WITH_ID) {
-      ASSERT(ast_id_for_reloc_info_ != kNoASTId);
-      RelocInfo reloc_info_with_ast_id(pc_, rmode, ast_id_for_reloc_info_);
-      ast_id_for_reloc_info_ = kNoASTId;
+      RelocInfo reloc_info_with_ast_id(pc_, rmode, RecordedAstId());
+      ClearRecordedAstId();
       reloc_info_writer.Write(&reloc_info_with_ast_id);
     } else {
       reloc_info_writer.Write(&rinfo);
Index: src/mips/assembler-mips.h
===================================================================
--- src/mips/assembler-mips.h   (revision 8670)
+++ src/mips/assembler-mips.h   (working copy)
@@ -833,8 +833,18 @@

// Record the AST id of the CallIC being compiled, so that it can be placed
   // in the relocation information.
-  void RecordAstId(unsigned ast_id) { ast_id_for_reloc_info_ = ast_id; }
+  void SetRecordedAstId(unsigned ast_id) {
+    ASSERT(recorded_ast_id_ == kNoASTId);
+    recorded_ast_id_ = ast_id;
+  }

+  unsigned RecordedAstId() {
+    ASSERT(recorded_ast_id_ != kNoASTId);
+    return recorded_ast_id_;
+  }
+
+  void ClearRecordedAstId() { recorded_ast_id_ = kNoASTId; }
+
   // Record a comment relocation entry that can be used by a disassembler.
   // Use --code-comments to enable.
   void RecordComment(const char* msg);
@@ -926,7 +936,7 @@
   // Relocation for a type-recording IC has the AST id added to it.  This
   // member variable is a way to pass the information from the call site to
   // the relocation info.
-  unsigned ast_id_for_reloc_info_;
+  unsigned recorded_ast_id_;

   bool emit_debug_code() const { return emit_debug_code_; }

Index: src/mips/macro-assembler-mips.cc
===================================================================
--- src/mips/macro-assembler-mips.cc    (revision 8670)
+++ src/mips/macro-assembler-mips.cc    (working copy)
@@ -2080,8 +2080,7 @@
   bind(&start);
   ASSERT(RelocInfo::IsCodeTarget(rmode));
   if (rmode == RelocInfo::CODE_TARGET && ast_id != kNoASTId) {
-    ASSERT(ast_id_for_reloc_info_ == kNoASTId);
-    ast_id_for_reloc_info_ = ast_id;
+    SetRecordedAstId(ast_id);
     rmode = RelocInfo::CODE_TARGET_WITH_ID;
   }
Call(reinterpret_cast<Address>(code.location()), rmode, cond, rs, rt, bd);


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

Reply via email to