Encapsulated the AST ID recording a bit, this time for MIPS.
Review URL: http://codereview.chromium.org/7400019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
6098abf46e
commit
a58580011e
@ -285,7 +285,7 @@ Assembler::Assembler(Isolate* arg_isolate, void* buffer, int buffer_size)
|
||||
unbound_labels_count_ = 0;
|
||||
block_buffer_growth_ = false;
|
||||
|
||||
ast_id_for_reloc_info_ = kNoASTId;
|
||||
ClearRecordedAstId();
|
||||
}
|
||||
|
||||
|
||||
@ -1947,9 +1947,8 @@ void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) {
|
||||
}
|
||||
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);
|
||||
|
@ -833,7 +833,17 @@ class Assembler : public AssemblerBase {
|
||||
|
||||
// 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.
|
||||
@ -926,7 +936,7 @@ class Assembler : public AssemblerBase {
|
||||
// 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_; }
|
||||
|
||||
|
@ -2080,8 +2080,7 @@ void MacroAssembler::Call(Handle<Code> code,
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user