Index: src/regexp-macro-assembler-tracer.cc |
=================================================================== |
--- src/regexp-macro-assembler-tracer.cc (revision 5551) |
+++ src/regexp-macro-assembler-tracer.cc (working copy) |
@@ -47,8 +47,15 @@ |
} |
+// This is used for printing out debugging information. It makes an integer |
+// that is closely related to the address of an object. |
+static int IntForLabel(Label* label) { |
+ return static_cast<int>(reinterpret_cast<intptr_t>(label)); |
+} |
+ |
+ |
void RegExpMacroAssemblerTracer::Bind(Label* label) { |
- PrintF("label[%08x]: (Bind)\n", label, label); |
+ PrintF("label[%08x]: (Bind)\n", IntForLabel(label)); |
Vyacheslav Egorov (Chromium)
2010/09/29 14:55:20
consider renaming it to LabelToInt.
Erik Corry
2010/09/30 07:09:38
Done.
|
assembler_->Bind(label); |
} |
@@ -60,7 +67,7 @@ |
void RegExpMacroAssemblerTracer::CheckGreedyLoop(Label* label) { |
- PrintF(" CheckGreedyLoop(label[%08x]);\n\n", label); |
+ PrintF(" CheckGreedyLoop(label[%08x]);\n\n", IntForLabel(label)); |
assembler_->CheckGreedyLoop(label); |
} |
@@ -84,14 +91,13 @@ |
void RegExpMacroAssemblerTracer::GoTo(Label* label) { |
- PrintF(" GoTo(label[%08x]);\n\n", label); |
+ PrintF(" GoTo(label[%08x]);\n\n", IntForLabel(label)); |
assembler_->GoTo(label); |
} |
void RegExpMacroAssemblerTracer::PushBacktrack(Label* label) { |
- PrintF(" PushBacktrack(label[%08x]);\n", |
- label); |
+ PrintF(" PushBacktrack(label[%08x]);\n", IntForLabel(label)); |
assembler_->PushBacktrack(label); |
} |
@@ -176,7 +182,7 @@ |
const char* check_msg = check_bounds ? "" : " (unchecked)"; |
PrintF(" LoadCurrentCharacter(cp_offset=%d, label[%08x]%s (%d chars));\n", |
cp_offset, |
- on_end_of_input, |
+ IntForLabel(on_end_of_input), |
check_msg, |
characters); |
assembler_->LoadCurrentCharacter(cp_offset, |
@@ -187,39 +193,43 @@ |
void RegExpMacroAssemblerTracer::CheckCharacterLT(uc16 limit, Label* on_less) { |
- PrintF(" CheckCharacterLT(c='u%04x', label[%08x]);\n", limit, on_less); |
+ PrintF(" CheckCharacterLT(c='u%04x', label[%08x]);\n", |
+ limit, IntForLabel(on_less)); |
assembler_->CheckCharacterLT(limit, on_less); |
} |
void RegExpMacroAssemblerTracer::CheckCharacterGT(uc16 limit, |
Label* on_greater) { |
- PrintF(" CheckCharacterGT(c='u%04x', label[%08x]);\n", limit, on_greater); |
+ PrintF(" CheckCharacterGT(c='u%04x', label[%08x]);\n", |
+ limit, IntForLabel(on_greater)); |
assembler_->CheckCharacterGT(limit, on_greater); |
} |
void RegExpMacroAssemblerTracer::CheckCharacter(uint32_t c, Label* on_equal) { |
- PrintF(" CheckCharacter(c='u%04x', label[%08x]);\n", c, on_equal); |
+ PrintF(" CheckCharacter(c='u%04x', label[%08x]);\n", |
+ c, IntForLabel(on_equal)); |
assembler_->CheckCharacter(c, on_equal); |
} |
void RegExpMacroAssemblerTracer::CheckAtStart(Label* on_at_start) { |
- PrintF(" CheckAtStart(label[%08x]);\n", on_at_start); |
+ PrintF(" CheckAtStart(label[%08x]);\n", IntForLabel(on_at_start)); |
assembler_->CheckAtStart(on_at_start); |
} |
void RegExpMacroAssemblerTracer::CheckNotAtStart(Label* on_not_at_start) { |
- PrintF(" CheckNotAtStart(label[%08x]);\n", on_not_at_start); |
+ PrintF(" CheckNotAtStart(label[%08x]);\n", IntForLabel(on_not_at_start)); |
assembler_->CheckNotAtStart(on_not_at_start); |
} |
void RegExpMacroAssemblerTracer::CheckNotCharacter(uint32_t c, |
Label* on_not_equal) { |
- PrintF(" CheckNotCharacter(c='u%04x', label[%08x]);\n", c, on_not_equal); |
+ PrintF(" CheckNotCharacter(c='u%04x', label[%08x]);\n", |
+ c, IntForLabel(on_not_equal)); |
assembler_->CheckNotCharacter(c, on_not_equal); |
} |
@@ -231,7 +241,7 @@ |
PrintF(" CheckCharacterAfterAnd(c='u%04x', mask=0x%04x, label[%08x]);\n", |
c, |
mask, |
- on_equal); |
+ IntForLabel(on_equal)); |
assembler_->CheckCharacterAfterAnd(c, mask, on_equal); |
} |
@@ -243,7 +253,7 @@ |
PrintF(" CheckNotCharacterAfterAnd(c='u%04x', mask=0x%04x, label[%08x]);\n", |
c, |
mask, |
- on_not_equal); |
+ IntForLabel(on_not_equal)); |
assembler_->CheckNotCharacterAfterAnd(c, mask, on_not_equal); |
} |
@@ -258,7 +268,7 @@ |
c, |
minus, |
mask, |
- on_not_equal); |
+ IntForLabel(on_not_equal)); |
assembler_->CheckNotCharacterAfterMinusAnd(c, minus, mask, on_not_equal); |
} |
@@ -266,7 +276,7 @@ |
void RegExpMacroAssemblerTracer::CheckNotBackReference(int start_reg, |
Label* on_no_match) { |
PrintF(" CheckNotBackReference(register=%d, label[%08x]);\n", start_reg, |
- on_no_match); |
+ IntForLabel(on_no_match)); |
assembler_->CheckNotBackReference(start_reg, on_no_match); |
} |
@@ -275,7 +285,7 @@ |
int start_reg, |
Label* on_no_match) { |
PrintF(" CheckNotBackReferenceIgnoreCase(register=%d, label[%08x]);\n", |
- start_reg, on_no_match); |
+ start_reg, IntForLabel(on_no_match)); |
assembler_->CheckNotBackReferenceIgnoreCase(start_reg, on_no_match); |
} |
@@ -286,7 +296,7 @@ |
PrintF(" CheckNotRegistersEqual(reg1=%d, reg2=%d, label[%08x]);\n", |
reg1, |
reg2, |
- on_not_equal); |
+ IntForLabel(on_not_equal)); |
assembler_->CheckNotRegistersEqual(reg1, reg2, on_not_equal); |
} |
@@ -300,7 +310,8 @@ |
for (int i = 0; i < str.length(); i++) { |
PrintF("u%04x", str[i]); |
} |
- PrintF("\", cp_offset=%d, label[%08x])\n", cp_offset, on_failure); |
+ PrintF("\", cp_offset=%d, label[%08x])\n", |
+ cp_offset, IntForLabel(on_failure)); |
assembler_->CheckCharacters(str, cp_offset, on_failure, check_end_of_string); |
} |
@@ -312,7 +323,7 @@ |
on_no_match); |
PrintF(" CheckSpecialCharacterClass(type='%c', label[%08x]): %s;\n", |
type, |
- on_no_match, |
+ IntForLabel(on_no_match), |
supported ? "true" : "false"); |
return supported; |
} |
@@ -321,7 +332,7 @@ |
void RegExpMacroAssemblerTracer::IfRegisterLT(int register_index, |
int comparand, Label* if_lt) { |
PrintF(" IfRegisterLT(register=%d, number=%d, label[%08x]);\n", |
- register_index, comparand, if_lt); |
+ register_index, comparand, IntForLabel(if_lt)); |
assembler_->IfRegisterLT(register_index, comparand, if_lt); |
} |
@@ -329,7 +340,7 @@ |
void RegExpMacroAssemblerTracer::IfRegisterEqPos(int register_index, |
Label* if_eq) { |
PrintF(" IfRegisterEqPos(register=%d, label[%08x]);\n", |
- register_index, if_eq); |
+ register_index, IntForLabel(if_eq)); |
assembler_->IfRegisterEqPos(register_index, if_eq); |
} |
@@ -337,7 +348,7 @@ |
void RegExpMacroAssemblerTracer::IfRegisterGE(int register_index, |
int comparand, Label* if_ge) { |
PrintF(" IfRegisterGE(register=%d, number=%d, label[%08x]);\n", |
- register_index, comparand, if_ge); |
+ register_index, comparand, IntForLabel(if_ge)); |
assembler_->IfRegisterGE(register_index, comparand, if_ge); |
} |