OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/ast.h" | 7 #include "src/ast.h" |
8 #include "src/regexp-macro-assembler.h" | 8 #include "src/regexp-macro-assembler.h" |
9 #include "src/regexp-macro-assembler-tracer.h" | 9 #include "src/regexp-macro-assembler-tracer.h" |
10 | 10 |
11 namespace v8 { | 11 namespace v8 { |
12 namespace internal { | 12 namespace internal { |
13 | 13 |
14 RegExpMacroAssemblerTracer::RegExpMacroAssemblerTracer( | 14 RegExpMacroAssemblerTracer::RegExpMacroAssemblerTracer( |
15 Isolate* isolate, RegExpMacroAssembler* assembler) | 15 Isolate* isolate, RegExpMacroAssembler* assembler) |
16 : RegExpMacroAssembler(isolate, assembler->zone()), assembler_(assembler) { | 16 : RegExpMacroAssembler(isolate, assembler->zone()), assembler_(assembler) { |
17 unsigned int type = assembler->Implementation(); | 17 unsigned int type = assembler->Implementation(); |
18 DCHECK(type < 6); | 18 DCHECK(type < 6); |
19 const char* impl_names[] = {"IA32", "ARM", "ARM64", | 19 const char* impl_names[] = {"IA32", "ARM", "ARM64", |
20 "MIPS", "X64", "X87", "Bytecode"}; | 20 "MIPS", "X64", "X87", "Bytecode"}; |
21 PrintF("RegExpMacroAssembler%s();\n", impl_names[type]); | 21 PrintF("RegExpMacroAssembler%s();\n", impl_names[type]); |
22 } | 22 } |
23 | 23 |
24 | 24 |
25 RegExpMacroAssemblerTracer::~RegExpMacroAssemblerTracer() { | 25 RegExpMacroAssemblerTracer::~RegExpMacroAssemblerTracer() { |
26 } | 26 } |
27 | 27 |
28 | 28 |
| 29 void RegExpMacroAssemblerTracer::AbortedCodeGeneration() { |
| 30 PrintF(" AbortedCodeGeneration\n"); |
| 31 assembler_->AbortedCodeGeneration(); |
| 32 } |
| 33 |
| 34 |
29 // This is used for printing out debugging information. It makes an integer | 35 // This is used for printing out debugging information. It makes an integer |
30 // that is closely related to the address of an object. | 36 // that is closely related to the address of an object. |
31 static int LabelToInt(Label* label) { | 37 static int LabelToInt(Label* label) { |
32 return static_cast<int>(reinterpret_cast<intptr_t>(label)); | 38 return static_cast<int>(reinterpret_cast<intptr_t>(label)); |
33 } | 39 } |
34 | 40 |
35 | 41 |
36 void RegExpMacroAssemblerTracer::Bind(Label* label) { | 42 void RegExpMacroAssemblerTracer::Bind(Label* label) { |
37 PrintF("label[%08x]: (Bind)\n", LabelToInt(label)); | 43 PrintF("label[%08x]: (Bind)\n", LabelToInt(label)); |
38 assembler_->Bind(label); | 44 assembler_->Bind(label); |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 return assembler_->Implementation(); | 409 return assembler_->Implementation(); |
404 } | 410 } |
405 | 411 |
406 | 412 |
407 Handle<HeapObject> RegExpMacroAssemblerTracer::GetCode(Handle<String> source) { | 413 Handle<HeapObject> RegExpMacroAssemblerTracer::GetCode(Handle<String> source) { |
408 PrintF(" GetCode(%s);\n", source->ToCString().get()); | 414 PrintF(" GetCode(%s);\n", source->ToCString().get()); |
409 return assembler_->GetCode(source); | 415 return assembler_->GetCode(source); |
410 } | 416 } |
411 | 417 |
412 }} // namespace v8::internal | 418 }} // namespace v8::internal |
OLD | NEW |