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