| OLD | NEW | 
|---|
| 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  Loading... | 
| 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  Loading... | 
| 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  Loading... | 
| 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_ | 
| OLD | NEW | 
|---|