Chromium Code Reviews| 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 |