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/machine-type.h" | 9 #include "src/machine-type.h" |
10 | 10 |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
328 // Access to the machine stack. | 328 // Access to the machine stack. |
329 const Operator* LoadStackPointer(); | 329 const Operator* LoadStackPointer(); |
330 const Operator* LoadFramePointer(); | 330 const Operator* LoadFramePointer(); |
331 const Operator* LoadParentFramePointer(); | 331 const Operator* LoadParentFramePointer(); |
332 | 332 |
333 // checked-load heap, index, length | 333 // checked-load heap, index, length |
334 const Operator* CheckedLoad(CheckedLoadRepresentation); | 334 const Operator* CheckedLoad(CheckedLoadRepresentation); |
335 // checked-store heap, index, length, value | 335 // checked-store heap, index, length, value |
336 const Operator* CheckedStore(CheckedStoreRepresentation); | 336 const Operator* CheckedStore(CheckedStoreRepresentation); |
337 | 337 |
| 338 // atomic-load [base + index] |
| 339 const Operator* AtomicLoad(LoadRepresentation rep); |
| 340 |
338 // Target machine word-size assumed by this builder. | 341 // Target machine word-size assumed by this builder. |
339 bool Is32() const { return word() == MachineRepresentation::kWord32; } | 342 bool Is32() const { return word() == MachineRepresentation::kWord32; } |
340 bool Is64() const { return word() == MachineRepresentation::kWord64; } | 343 bool Is64() const { return word() == MachineRepresentation::kWord64; } |
341 MachineRepresentation word() const { return word_; } | 344 MachineRepresentation word() const { return word_; } |
342 | 345 |
343 // Pseudo operators that translate to 32/64-bit operators depending on the | 346 // Pseudo operators that translate to 32/64-bit operators depending on the |
344 // word-size of the target machine assumed by this builder. | 347 // word-size of the target machine assumed by this builder. |
345 #define PSEUDO_OP_LIST(V) \ | 348 #define PSEUDO_OP_LIST(V) \ |
346 V(Word, And) \ | 349 V(Word, And) \ |
347 V(Word, Or) \ | 350 V(Word, Or) \ |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 }; | 382 }; |
380 | 383 |
381 | 384 |
382 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) | 385 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) |
383 | 386 |
384 } // namespace compiler | 387 } // namespace compiler |
385 } // namespace internal | 388 } // namespace internal |
386 } // namespace v8 | 389 } // namespace v8 |
387 | 390 |
388 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ | 391 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ |
OLD | NEW |