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

Side by Side Diff: src/typing-asm.cc

Issue 2057403003: Hooking up asm-wasm conversion. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 5 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
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/typing-asm.h" 5 #include "src/typing-asm.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
(...skipping 26 matching lines...) Expand all
37 } while (false) 37 } while (false)
38 38
39 AsmTyper::AsmTyper(Isolate* isolate, Zone* zone, Script* script, 39 AsmTyper::AsmTyper(Isolate* isolate, Zone* zone, Script* script,
40 FunctionLiteral* root) 40 FunctionLiteral* root)
41 : zone_(zone), 41 : zone_(zone),
42 isolate_(isolate), 42 isolate_(isolate),
43 script_(script), 43 script_(script),
44 root_(root), 44 root_(root),
45 valid_(true), 45 valid_(true),
46 allow_simd_(false), 46 allow_simd_(false),
47 fixed_signature_(false),
47 property_info_(nullptr), 48 property_info_(nullptr),
48 intish_(0), 49 intish_(0),
49 stdlib_types_(zone), 50 stdlib_types_(zone),
50 stdlib_heap_types_(zone), 51 stdlib_heap_types_(zone),
51 stdlib_math_types_(zone), 52 stdlib_math_types_(zone),
52 #define V(NAME, Name, name, lane_count, lane_type) \ 53 #define V(NAME, Name, name, lane_count, lane_type) \
53 stdlib_simd_##name##_types_(zone), 54 stdlib_simd_##name##_types_(zone),
54 SIMD128_TYPES(V) 55 SIMD128_TYPES(V)
55 #undef V 56 #undef V
56 global_variable_type_(base::HashMap::PointersMatch, 57 global_variable_type_(base::HashMap::PointersMatch,
(...skipping 22 matching lines...) Expand all
79 Scope* scope = fun->scope(); 80 Scope* scope = fun->scope();
80 if (!scope->is_function_scope()) FAIL(fun, "not at function scope"); 81 if (!scope->is_function_scope()) FAIL(fun, "not at function scope");
81 82
82 ExpressionStatement* use_asm = fun->body()->first()->AsExpressionStatement(); 83 ExpressionStatement* use_asm = fun->body()->first()->AsExpressionStatement();
83 if (use_asm == nullptr) FAIL(fun, "missing \"use asm\""); 84 if (use_asm == nullptr) FAIL(fun, "missing \"use asm\"");
84 Literal* use_asm_literal = use_asm->expression()->AsLiteral(); 85 Literal* use_asm_literal = use_asm->expression()->AsLiteral();
85 if (use_asm_literal == nullptr) FAIL(fun, "missing \"use asm\""); 86 if (use_asm_literal == nullptr) FAIL(fun, "missing \"use asm\"");
86 if (!use_asm_literal->raw_value()->AsString()->IsOneByteEqualTo("use asm")) 87 if (!use_asm_literal->raw_value()->AsString()->IsOneByteEqualTo("use asm"))
87 FAIL(fun, "missing \"use asm\""); 88 FAIL(fun, "missing \"use asm\"");
88 89
90 // TODO(bradnelson): Generalize this.
91 if (fixed_signature_ && scope->num_parameters() != 3) {
92 FAIL(fun, "only 3 parameter modules supported");
Mircea Trofin 2016/06/30 23:23:29 what's a 3-parameter module?
bradn 2016/07/01 01:06:08 Clarified.
93 }
94
89 // Module parameters. 95 // Module parameters.
90 for (int i = 0; i < scope->num_parameters(); ++i) { 96 for (int i = 0; i < scope->num_parameters(); ++i) {
91 Variable* param = scope->parameter(i); 97 Variable* param = scope->parameter(i);
92 DCHECK(GetType(param) == nullptr); 98 DCHECK(GetType(param) == nullptr);
93 SetType(param, Type::None()); 99 SetType(param, Type::None());
94 } 100 }
95 101
96 ZoneList<Declaration*>* decls = scope->declarations(); 102 ZoneList<Declaration*>* decls = scope->declarations();
97 103
98 // Set all globals to type Any. 104 // Set all globals to type Any.
(...skipping 1562 matching lines...) Expand 10 before | Expand all | Expand 10 after
1661 } 1667 }
1662 1668
1663 1669
1664 void AsmTyper::VisitRewritableExpression(RewritableExpression* expr) { 1670 void AsmTyper::VisitRewritableExpression(RewritableExpression* expr) {
1665 RECURSE(Visit(expr->expression())); 1671 RECURSE(Visit(expr->expression()));
1666 } 1672 }
1667 1673
1668 1674
1669 } // namespace internal 1675 } // namespace internal
1670 } // namespace v8 1676 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698