OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_MACHINE_OPERATOR_H_ | 5 #ifndef V8_COMPILER_MACHINE_OPERATOR_H_ |
6 #define V8_COMPILER_MACHINE_OPERATOR_H_ | 6 #define V8_COMPILER_MACHINE_OPERATOR_H_ |
7 | 7 |
8 #include "src/base/flags.h" | 8 #include "src/base/flags.h" |
9 #include "src/compiler/machine-type.h" | 9 #include "src/compiler/machine-type.h" |
10 | 10 |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 // Floating point rounding. | 170 // Floating point rounding. |
171 const Operator* Float64Floor(); | 171 const Operator* Float64Floor(); |
172 const Operator* Float64Ceil(); | 172 const Operator* Float64Ceil(); |
173 const Operator* Float64RoundTruncate(); | 173 const Operator* Float64RoundTruncate(); |
174 const Operator* Float64RoundTiesAway(); | 174 const Operator* Float64RoundTiesAway(); |
175 bool HasFloat64Floor() { return flags_ & kFloat64Floor; } | 175 bool HasFloat64Floor() { return flags_ & kFloat64Floor; } |
176 bool HasFloat64Ceil() { return flags_ & kFloat64Ceil; } | 176 bool HasFloat64Ceil() { return flags_ & kFloat64Ceil; } |
177 bool HasFloat64RoundTruncate() { return flags_ & kFloat64RoundTruncate; } | 177 bool HasFloat64RoundTruncate() { return flags_ & kFloat64RoundTruncate; } |
178 bool HasFloat64RoundTiesAway() { return flags_ & kFloat64RoundTiesAway; } | 178 bool HasFloat64RoundTiesAway() { return flags_ & kFloat64RoundTiesAway; } |
179 | 179 |
| 180 // Floating point bit representation. |
| 181 const Operator* Float64ExtractLowWord32(); |
| 182 const Operator* Float64ExtractHighWord32(); |
| 183 const Operator* Float64InsertLowWord32(); |
| 184 const Operator* Float64InsertHighWord32(); |
| 185 |
180 // load [base + index] | 186 // load [base + index] |
181 const Operator* Load(LoadRepresentation rep); | 187 const Operator* Load(LoadRepresentation rep); |
182 | 188 |
183 // store [base + index], value | 189 // store [base + index], value |
184 const Operator* Store(StoreRepresentation rep); | 190 const Operator* Store(StoreRepresentation rep); |
185 | 191 |
186 // Access to the machine stack. | 192 // Access to the machine stack. |
187 const Operator* LoadStackPointer(); | 193 const Operator* LoadStackPointer(); |
188 | 194 |
189 // checked-load heap, index, length | 195 // checked-load heap, index, length |
(...skipping 29 matching lines...) Expand all Loading... |
219 V(Uint, Mod) | 225 V(Uint, Mod) |
220 #define PSEUDO_OP(Prefix, Suffix) \ | 226 #define PSEUDO_OP(Prefix, Suffix) \ |
221 const Operator* Prefix##Suffix() { \ | 227 const Operator* Prefix##Suffix() { \ |
222 return Is32() ? Prefix##32##Suffix() : Prefix##64##Suffix(); \ | 228 return Is32() ? Prefix##32##Suffix() : Prefix##64##Suffix(); \ |
223 } | 229 } |
224 PSEUDO_OP_LIST(PSEUDO_OP) | 230 PSEUDO_OP_LIST(PSEUDO_OP) |
225 #undef PSEUDO_OP | 231 #undef PSEUDO_OP |
226 #undef PSEUDO_OP_LIST | 232 #undef PSEUDO_OP_LIST |
227 | 233 |
228 private: | 234 private: |
229 Zone* zone_; | 235 Zone* const zone_; |
230 const MachineOperatorGlobalCache& cache_; | 236 MachineOperatorGlobalCache const& cache_; |
231 const MachineType word_; | 237 MachineType const word_; |
232 const Flags flags_; | 238 Flags const flags_; |
233 | 239 |
234 DISALLOW_COPY_AND_ASSIGN(MachineOperatorBuilder); | 240 DISALLOW_COPY_AND_ASSIGN(MachineOperatorBuilder); |
235 }; | 241 }; |
236 | 242 |
237 | 243 |
238 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) | 244 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) |
239 | 245 |
240 } // namespace compiler | 246 } // namespace compiler |
241 } // namespace internal | 247 } // namespace internal |
242 } // namespace v8 | 248 } // namespace v8 |
243 | 249 |
244 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ | 250 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ |
OLD | NEW |