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

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

Issue 2785773002: [turbofan] introduce Int32/64AbsWithOverflow optional operator (Closed)
Patch Set: add base impl Created 3 years, 8 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 | « src/compiler/arm64/instruction-selector-arm64.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 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 V(ChangeUint32ToUint64) \ 160 V(ChangeUint32ToUint64) \
161 V(RoundFloat64ToInt32) \ 161 V(RoundFloat64ToInt32) \
162 V(RoundInt32ToFloat32) \ 162 V(RoundInt32ToFloat32) \
163 V(Float64SilenceNaN) \ 163 V(Float64SilenceNaN) \
164 V(Float64RoundDown) \ 164 V(Float64RoundDown) \
165 V(Float64RoundUp) \ 165 V(Float64RoundUp) \
166 V(Float64RoundTiesEven) \ 166 V(Float64RoundTiesEven) \
167 V(Float64RoundTruncate) \ 167 V(Float64RoundTruncate) \
168 V(Word32Clz) \ 168 V(Word32Clz) \
169 V(Word32Not) \ 169 V(Word32Not) \
170 V(Int32AbsWithOverflow) \
171 V(Int64AbsWithOverflow) \
172 V(IntPtrAbsWithOverflow) \
170 V(Word32BinaryNot) 173 V(Word32BinaryNot)
171 174
172 // A "public" interface used by components outside of compiler directory to 175 // A "public" interface used by components outside of compiler directory to
173 // create code objects with TurboFan's backend. This class is mostly a thin shim 176 // create code objects with TurboFan's backend. This class is mostly a thin shim
174 // around the RawMachineAssembler, and its primary job is to ensure that the 177 // around the RawMachineAssembler, and its primary job is to ensure that the
175 // innards of the RawMachineAssembler and other compiler implementation details 178 // innards of the RawMachineAssembler and other compiler implementation details
176 // don't leak outside of the the compiler directory.. 179 // don't leak outside of the the compiler directory..
177 // 180 //
178 // V8 components that need to generate low-level code using this interface 181 // V8 components that need to generate low-level code using this interface
179 // should include this header--and this header only--from the compiler directory 182 // should include this header--and this header only--from the compiler directory
(...skipping 14 matching lines...) Expand all
194 explicit CodeAssembler(CodeAssemblerState* state) : state_(state) {} 197 explicit CodeAssembler(CodeAssemblerState* state) : state_(state) {}
195 ~CodeAssembler(); 198 ~CodeAssembler();
196 199
197 static Handle<Code> GenerateCode(CodeAssemblerState* state); 200 static Handle<Code> GenerateCode(CodeAssemblerState* state);
198 201
199 bool Is64() const; 202 bool Is64() const;
200 bool IsFloat64RoundUpSupported() const; 203 bool IsFloat64RoundUpSupported() const;
201 bool IsFloat64RoundDownSupported() const; 204 bool IsFloat64RoundDownSupported() const;
202 bool IsFloat64RoundTiesEvenSupported() const; 205 bool IsFloat64RoundTiesEvenSupported() const;
203 bool IsFloat64RoundTruncateSupported() const; 206 bool IsFloat64RoundTruncateSupported() const;
207 bool IsInt32AbsWithOverflowSupported() const;
208 bool IsInt64AbsWithOverflowSupported() const;
209 bool IsIntPtrAbsWithOverflowSupported() const;
204 210
205 // Shortened aliases for use in CodeAssembler subclasses. 211 // Shortened aliases for use in CodeAssembler subclasses.
206 typedef CodeAssemblerLabel Label; 212 typedef CodeAssemblerLabel Label;
207 typedef CodeAssemblerVariable Variable; 213 typedef CodeAssemblerVariable Variable;
208 typedef CodeAssemblerVariableList VariableList; 214 typedef CodeAssemblerVariableList VariableList;
209 215
210 // =========================================================================== 216 // ===========================================================================
211 // Base Assembler 217 // Base Assembler
212 // =========================================================================== 218 // ===========================================================================
213 219
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 CodeAssemblerCallback call_epilogue_; 537 CodeAssemblerCallback call_epilogue_;
532 538
533 DISALLOW_COPY_AND_ASSIGN(CodeAssemblerState); 539 DISALLOW_COPY_AND_ASSIGN(CodeAssemblerState);
534 }; 540 };
535 541
536 } // namespace compiler 542 } // namespace compiler
537 } // namespace internal 543 } // namespace internal
538 } // namespace v8 544 } // namespace v8
539 545
540 #endif // V8_COMPILER_CODE_ASSEMBLER_H_ 546 #endif // V8_COMPILER_CODE_ASSEMBLER_H_
OLDNEW
« no previous file with comments | « src/compiler/arm64/instruction-selector-arm64.cc ('k') | src/compiler/code-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698