Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Side by Side Diff: test/cctest/interpreter/bytecode-expectations-printer.h

Issue 1698403002: [Interpreter] generate-bytecode-expectations improvements. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Renaming Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | test/cctest/interpreter/bytecode-expectations-printer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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 #ifndef TEST_CCTEST_INTERPRETER_BYTECODE_EXPECTATIONS_PRINTER_H_ 5 #ifndef TEST_CCTEST_INTERPRETER_BYTECODE_EXPECTATIONS_PRINTER_H_
6 #define TEST_CCTEST_INTERPRETER_BYTECODE_EXPECTATIONS_PRINTER_H_ 6 #define TEST_CCTEST_INTERPRETER_BYTECODE_EXPECTATIONS_PRINTER_H_
7 7
8 #include <iostream> 8 #include <iostream>
9 #include <string> 9 #include <string>
10 #include <vector>
10 11
11 #include "src/interpreter/bytecodes.h" 12 #include "src/interpreter/bytecodes.h"
12 #include "src/objects.h" 13 #include "src/objects.h"
13 14
14 namespace v8 { 15 namespace v8 {
15 16
16 class Isolate; 17 class Isolate;
17 18
18 namespace internal { 19 namespace internal {
19 namespace interpreter { 20 namespace interpreter {
20 21
21 class BytecodeArrayIterator; 22 class BytecodeArrayIterator;
22 23
23 class BytecodeExpectationsPrinter final { 24 class BytecodeExpectationsPrinter final {
24 public: 25 public:
25 enum class ConstantPoolType { 26 enum class ConstantPoolType {
26 kUnknown, 27 kUnknown,
27 kString, 28 kString,
28 kInteger, 29 kNumber,
29 kDouble,
30 kMixed, 30 kMixed,
31 }; 31 };
32 32
33 BytecodeExpectationsPrinter(v8::Isolate* i, 33 BytecodeExpectationsPrinter(v8::Isolate* i,
34 ConstantPoolType t = ConstantPoolType::kMixed) 34 ConstantPoolType t = ConstantPoolType::kMixed)
35 : isolate_(i), const_pool_type_(t) {} 35 : isolate_(i),
36 const_pool_type_(t),
37 execute_(true),
38 wrap_(true),
39 test_function_name_(kDefaultTopFunctionName) {}
36 40
37 void PrintExpectation(std::ostream& stream, // NOLINT 41 void PrintExpectation(std::ostream& stream, // NOLINT
38 const std::string& snippet) const; 42 const std::string& snippet) const;
39 43
40 void set_constant_pool_type(ConstantPoolType t) { const_pool_type_ = t; } 44 void set_constant_pool_type(ConstantPoolType const_pool_type) {
41 ConstantPoolType constant_pool_type() const { return const_pool_type_; } 45 const_pool_type_ = const_pool_type;
46 }
47 ConstantPoolType const_pool_type() const { return const_pool_type_; }
48
49 void set_execute(bool execute) { execute_ = execute; }
50 bool execute() const { return execute_; }
51
52 void set_wrap(bool wrap) { wrap_ = wrap; }
53 bool wrap() const { return wrap_; }
54
55 void set_top_level(bool top_level) { top_level_ = top_level; }
56 bool top_level() const { return top_level_; }
57
58 void set_test_function_name(const std::string& test_function_name) {
59 test_function_name_ = test_function_name;
60 }
61 std::string test_function_name() const { return test_function_name_; }
42 62
43 private: 63 private:
44 void PrintEscapedString(std::ostream& stream, // NOLINT 64 void PrintEscapedString(std::ostream& stream, // NOLINT
45 const std::string& string) const; 65 const std::string& string) const;
46 void PrintBytecodeOperand(std::ostream& stream, // NOLINT 66 void PrintBytecodeOperand(std::ostream& stream, // NOLINT
47 const BytecodeArrayIterator& bytecode_iter, 67 const BytecodeArrayIterator& bytecode_iter,
48 const Bytecode& bytecode, int op_index) const; 68 const Bytecode& bytecode, int op_index,
69 int parameter_count) const;
49 void PrintBytecode(std::ostream& stream, // NOLINT 70 void PrintBytecode(std::ostream& stream, // NOLINT
50 const BytecodeArrayIterator& bytecode_iter) const; 71 const BytecodeArrayIterator& bytecode_iter,
72 int parameter_count) const;
51 void PrintV8String(std::ostream& stream, // NOLINT 73 void PrintV8String(std::ostream& stream, // NOLINT
52 i::String* string) const; 74 i::String* string) const;
53 void PrintConstant(std::ostream& stream, // NOLINT 75 void PrintConstant(std::ostream& stream, // NOLINT
54 i::Handle<i::Object> constant) const; 76 i::Handle<i::Object> constant) const;
55 void PrintFrameSize(std::ostream& stream, // NOLINT 77 void PrintFrameSize(std::ostream& stream, // NOLINT
56 i::Handle<i::BytecodeArray> bytecode_array) const; 78 i::Handle<i::BytecodeArray> bytecode_array) const;
57 void PrintBytecodeSequence(std::ostream& stream, // NOLINT 79 void PrintBytecodeSequence(std::ostream& stream, // NOLINT
58 i::Handle<i::BytecodeArray> bytecode_array) const; 80 i::Handle<i::BytecodeArray> bytecode_array) const;
59 void PrintConstantPool(std::ostream& stream, // NOLINT 81 void PrintConstantPool(std::ostream& stream, // NOLINT
60 i::FixedArray* constant_pool) const; 82 i::FixedArray* constant_pool) const;
61 void PrintCodeSnippet(std::ostream& stream, // NOLINT 83 void PrintCodeSnippet(std::ostream& stream, // NOLINT
62 const std::string& body) const; 84 const std::string& body) const;
63 void PrintBytecodeArray(std::ostream& stream, // NOLINT 85 void PrintBytecodeArray(std::ostream& stream, // NOLINT
64 const std::string& body,
65 i::Handle<i::BytecodeArray> bytecode_array) const; 86 i::Handle<i::BytecodeArray> bytecode_array) const;
87 void PrintHandlers(std::ostream& stream, // NOLINT
88 i::Handle<i::BytecodeArray> bytecode_array) const;
66 89
67 v8::Local<v8::String> V8StringFromUTF8(const char* data) const; 90 v8::Local<v8::String> V8StringFromUTF8(const char* data) const;
68 std::string WrapCodeInFunction(const char* function_name, 91 std::string WrapCodeInFunction(const char* function_name,
69 const std::string& function_body) const; 92 const std::string& function_body) const;
70 93
71 v8::Local<v8::Value> CompileAndRun(const char* program) const; 94 v8::Local<v8::Script> Compile(const char* program) const;
95 void Run(v8::Local<v8::Script> script) const;
72 i::Handle<i::BytecodeArray> GetBytecodeArrayForGlobal( 96 i::Handle<i::BytecodeArray> GetBytecodeArrayForGlobal(
73 const char* global_name) const; 97 const char* global_name) const;
98 i::Handle<v8::internal::BytecodeArray> GetBytecodeArrayForScript(
99 v8::Local<v8::Script> script) const;
74 100
75 i::Isolate* i_isolate() const { 101 i::Isolate* i_isolate() const {
76 return reinterpret_cast<i::Isolate*>(isolate_); 102 return reinterpret_cast<i::Isolate*>(isolate_);
77 } 103 }
78 104
79 v8::Isolate* isolate_; 105 v8::Isolate* isolate_;
80 ConstantPoolType const_pool_type_; 106 ConstantPoolType const_pool_type_;
107 bool execute_;
108 bool wrap_;
109 bool top_level_;
110 std::string test_function_name_;
111
112 static const char* const kDefaultTopFunctionName;
81 }; 113 };
82 114
83 } // namespace interpreter 115 } // namespace interpreter
84 } // namespace internal 116 } // namespace internal
85 } // namespace v8 117 } // namespace v8
86 118
87 #endif // TEST_CCTEST_INTERPRETER_BYTECODE_EXPECTATIONS_PRINTER_H_ 119 #endif // TEST_CCTEST_INTERPRETER_BYTECODE_EXPECTATIONS_PRINTER_H_
OLDNEW
« no previous file with comments | « no previous file | test/cctest/interpreter/bytecode-expectations-printer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698