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

Side by Side Diff: src/wasm/ast-decoder.cc

Issue 2520853003: [wasm] Add a flag to generate an mjsunit test out of a wasm-code fuzzer test case. (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/signature.h" 5 #include "src/signature.h"
6 6
7 #include "src/bit-vector.h" 7 #include "src/bit-vector.h"
8 #include "src/flags.h" 8 #include "src/flags.h"
9 #include "src/handles.h" 9 #include "src/handles.h"
10 #include "src/zone/zone-containers.h" 10 #include "src/zone/zone-containers.h"
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 base_(body.base), 374 base_(body.base),
375 local_type_vec_(zone), 375 local_type_vec_(zone),
376 stack_(zone), 376 stack_(zone),
377 control_(zone), 377 control_(zone),
378 last_end_found_(false), 378 last_end_found_(false),
379 current_catch_(kNullCatch) { 379 current_catch_(kNullCatch) {
380 local_types_ = &local_type_vec_; 380 local_types_ = &local_type_vec_;
381 } 381 }
382 382
383 bool Decode() { 383 bool Decode() {
384 if (FLAG_wasm_code_generate_test) {
385 PrintAstForDebugging(start_, end_);
386 }
384 base::ElapsedTimer decode_timer; 387 base::ElapsedTimer decode_timer;
385 if (FLAG_trace_wasm_decode_time) { 388 if (FLAG_trace_wasm_decode_time) {
386 decode_timer.Start(); 389 decode_timer.Start();
387 } 390 }
388 stack_.clear(); 391 stack_.clear();
389 control_.clear(); 392 control_.clear();
390 393
391 if (end_ < pc_) { 394 if (end_ < pc_) {
392 error("function body end < start"); 395 error("function body end < start");
393 return false; 396 return false;
(...skipping 1527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1921 1924
1922 // Print the function signature. 1925 // Print the function signature.
1923 if (body.sig) { 1926 if (body.sig) {
1924 os << "// signature: " << *body.sig << std::endl; 1927 os << "// signature: " << *body.sig << std::endl;
1925 ++line_nr; 1928 ++line_nr;
1926 } 1929 }
1927 1930
1928 // Print the local declarations. 1931 // Print the local declarations.
1929 AstLocalDecls decls(&zone); 1932 AstLocalDecls decls(&zone);
1930 BytecodeIterator i(body.start, body.end, &decls); 1933 BytecodeIterator i(body.start, body.end, &decls);
1931 if (body.start != i.pc()) { 1934 if (body.start != i.pc() && !FLAG_wasm_code_generate_test) {
1932 os << "// locals: "; 1935 os << "// locals: ";
1933 for (auto p : decls.local_types) { 1936 for (auto p : decls.local_types) {
1934 LocalType type = p.first; 1937 LocalType type = p.first;
1935 uint32_t count = p.second; 1938 uint32_t count = p.second;
1936 os << " " << count << " " << WasmOpcodes::TypeName(type); 1939 os << " " << count << " " << WasmOpcodes::TypeName(type);
1937 } 1940 }
1938 os << std::endl; 1941 os << std::endl;
1939 ++line_nr; 1942 ++line_nr;
1940 1943
1941 for (const byte* locals = body.start; locals < i.pc(); locals++) { 1944 for (const byte* locals = body.start; locals < i.pc(); locals++) {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
2035 BitVector* AnalyzeLoopAssignmentForTesting(Zone* zone, size_t num_locals, 2038 BitVector* AnalyzeLoopAssignmentForTesting(Zone* zone, size_t num_locals,
2036 const byte* start, const byte* end) { 2039 const byte* start, const byte* end) {
2037 FunctionBody body = {nullptr, nullptr, nullptr, start, end}; 2040 FunctionBody body = {nullptr, nullptr, nullptr, start, end};
2038 WasmFullDecoder decoder(zone, nullptr, body); 2041 WasmFullDecoder decoder(zone, nullptr, body);
2039 return decoder.AnalyzeLoopAssignmentForTesting(start, num_locals); 2042 return decoder.AnalyzeLoopAssignmentForTesting(start, num_locals);
2040 } 2043 }
2041 2044
2042 } // namespace wasm 2045 } // namespace wasm
2043 } // namespace internal 2046 } // namespace internal
2044 } // namespace v8 2047 } // namespace v8
OLDNEW
« src/flag-definitions.h ('K') | « src/flag-definitions.h ('k') | test/fuzzer/wasm-code.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698