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

Side by Side Diff: src/compiler/code-assembler.h

Issue 2564323003: Merged: [ic] Prevent KeyedStoreIC from being generic when storing doubles to integer typed arrays. (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
« no previous file with comments | « src/code-stub-assembler.cc ('k') | src/compiler/code-assembler.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 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 #ifndef V8_COMPILER_CODE_ASSEMBLER_H_ 5 #ifndef V8_COMPILER_CODE_ASSEMBLER_H_
6 #define V8_COMPILER_CODE_ASSEMBLER_H_ 6 #define V8_COMPILER_CODE_ASSEMBLER_H_
7 7
8 #include <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 V(TruncateFloat64ToFloat32) \ 141 V(TruncateFloat64ToFloat32) \
142 V(TruncateFloat64ToWord32) \ 142 V(TruncateFloat64ToWord32) \
143 V(TruncateInt64ToInt32) \ 143 V(TruncateInt64ToInt32) \
144 V(ChangeFloat32ToFloat64) \ 144 V(ChangeFloat32ToFloat64) \
145 V(ChangeFloat64ToUint32) \ 145 V(ChangeFloat64ToUint32) \
146 V(ChangeInt32ToFloat64) \ 146 V(ChangeInt32ToFloat64) \
147 V(ChangeInt32ToInt64) \ 147 V(ChangeInt32ToInt64) \
148 V(ChangeUint32ToFloat64) \ 148 V(ChangeUint32ToFloat64) \
149 V(ChangeUint32ToUint64) \ 149 V(ChangeUint32ToUint64) \
150 V(RoundFloat64ToInt32) \ 150 V(RoundFloat64ToInt32) \
151 V(RoundInt32ToFloat32) \
151 V(Float64SilenceNaN) \ 152 V(Float64SilenceNaN) \
152 V(Float64RoundDown) \ 153 V(Float64RoundDown) \
153 V(Float64RoundUp) \ 154 V(Float64RoundUp) \
155 V(Float64RoundTiesEven) \
154 V(Float64RoundTruncate) \ 156 V(Float64RoundTruncate) \
155 V(Word32Clz) \ 157 V(Word32Clz) \
156 V(Word32BinaryNot) 158 V(Word32BinaryNot)
157 159
158 // A "public" interface used by components outside of compiler directory to 160 // A "public" interface used by components outside of compiler directory to
159 // create code objects with TurboFan's backend. This class is mostly a thin shim 161 // create code objects with TurboFan's backend. This class is mostly a thin shim
160 // around the RawMachineAssembler, and its primary job is to ensure that the 162 // around the RawMachineAssembler, and its primary job is to ensure that the
161 // innards of the RawMachineAssembler and other compiler implementation details 163 // innards of the RawMachineAssembler and other compiler implementation details
162 // don't leak outside of the the compiler directory.. 164 // don't leak outside of the the compiler directory..
163 // 165 //
(...skipping 20 matching lines...) Expand all
184 CodeAssembler(Isolate* isolate, Zone* zone, int parameter_count, 186 CodeAssembler(Isolate* isolate, Zone* zone, int parameter_count,
185 Code::Flags flags, const char* name); 187 Code::Flags flags, const char* name);
186 188
187 virtual ~CodeAssembler(); 189 virtual ~CodeAssembler();
188 190
189 Handle<Code> GenerateCode(); 191 Handle<Code> GenerateCode();
190 192
191 bool Is64() const; 193 bool Is64() const;
192 bool IsFloat64RoundUpSupported() const; 194 bool IsFloat64RoundUpSupported() const;
193 bool IsFloat64RoundDownSupported() const; 195 bool IsFloat64RoundDownSupported() const;
196 bool IsFloat64RoundTiesEvenSupported() const;
194 bool IsFloat64RoundTruncateSupported() const; 197 bool IsFloat64RoundTruncateSupported() const;
195 198
196 class Label; 199 class Label;
197 class Variable { 200 class Variable {
198 public: 201 public:
199 explicit Variable(CodeAssembler* assembler, MachineRepresentation rep); 202 explicit Variable(CodeAssembler* assembler, MachineRepresentation rep);
200 ~Variable(); 203 ~Variable();
201 void Bind(Node* value); 204 void Bind(Node* value);
202 Node* value() const; 205 Node* value() const;
203 MachineRepresentation rep() const; 206 MachineRepresentation rep() const;
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
510 // Map of variables to the list of value nodes that have been added from each 513 // Map of variables to the list of value nodes that have been added from each
511 // merge path in their order of merging. 514 // merge path in their order of merging.
512 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_; 515 std::map<Variable::Impl*, std::vector<Node*>> variable_merges_;
513 }; 516 };
514 517
515 } // namespace compiler 518 } // namespace compiler
516 } // namespace internal 519 } // namespace internal
517 } // namespace v8 520 } // namespace v8
518 521
519 #endif // V8_COMPILER_CODE_ASSEMBLER_H_ 522 #endif // V8_COMPILER_CODE_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/code-stub-assembler.cc ('k') | src/compiler/code-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698