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* Float64ExtractWord32(int location); | |
Sven Panne
2015/03/05 07:40:12
If I see this correctly, location == 0 means "Low"
Benedikt Meurer
2015/03/05 08:51:46
Turned into dedicated opcodes instead, as per offl
| |
182 const Operator* Float64InsertWord32(int location); | |
183 | |
180 // load [base + index] | 184 // load [base + index] |
181 const Operator* Load(LoadRepresentation rep); | 185 const Operator* Load(LoadRepresentation rep); |
182 | 186 |
183 // store [base + index], value | 187 // store [base + index], value |
184 const Operator* Store(StoreRepresentation rep); | 188 const Operator* Store(StoreRepresentation rep); |
185 | 189 |
186 // Access to the machine stack. | 190 // Access to the machine stack. |
187 const Operator* LoadStackPointer(); | 191 const Operator* LoadStackPointer(); |
188 | 192 |
189 // checked-load heap, index, length | 193 // checked-load heap, index, length |
(...skipping 29 matching lines...) Expand all Loading... | |
219 V(Uint, Mod) | 223 V(Uint, Mod) |
220 #define PSEUDO_OP(Prefix, Suffix) \ | 224 #define PSEUDO_OP(Prefix, Suffix) \ |
221 const Operator* Prefix##Suffix() { \ | 225 const Operator* Prefix##Suffix() { \ |
222 return Is32() ? Prefix##32##Suffix() : Prefix##64##Suffix(); \ | 226 return Is32() ? Prefix##32##Suffix() : Prefix##64##Suffix(); \ |
223 } | 227 } |
224 PSEUDO_OP_LIST(PSEUDO_OP) | 228 PSEUDO_OP_LIST(PSEUDO_OP) |
225 #undef PSEUDO_OP | 229 #undef PSEUDO_OP |
226 #undef PSEUDO_OP_LIST | 230 #undef PSEUDO_OP_LIST |
227 | 231 |
228 private: | 232 private: |
229 Zone* zone_; | 233 Zone* const zone_; |
230 const MachineOperatorGlobalCache& cache_; | 234 MachineOperatorGlobalCache const& cache_; |
231 const MachineType word_; | 235 MachineType const word_; |
232 const Flags flags_; | 236 Flags const flags_; |
233 | 237 |
234 DISALLOW_COPY_AND_ASSIGN(MachineOperatorBuilder); | 238 DISALLOW_COPY_AND_ASSIGN(MachineOperatorBuilder); |
235 }; | 239 }; |
236 | 240 |
237 | 241 |
238 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) | 242 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) |
239 | 243 |
240 } // namespace compiler | 244 } // namespace compiler |
241 } // namespace internal | 245 } // namespace internal |
242 } // namespace v8 | 246 } // namespace v8 |
243 | 247 |
244 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ | 248 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ |
OLD | NEW |