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 | |
341 // Target machine word-size assumed by this builder. | 338 // Target machine word-size assumed by this builder. |
342 bool Is32() const { return word() == MachineRepresentation::kWord32; } | 339 bool Is32() const { return word() == MachineRepresentation::kWord32; } |
343 bool Is64() const { return word() == MachineRepresentation::kWord64; } | 340 bool Is64() const { return word() == MachineRepresentation::kWord64; } |
344 MachineRepresentation word() const { return word_; } | 341 MachineRepresentation word() const { return word_; } |
345 | 342 |
346 // Pseudo operators that translate to 32/64-bit operators depending on the | 343 // Pseudo operators that translate to 32/64-bit operators depending on the |
347 // word-size of the target machine assumed by this builder. | 344 // word-size of the target machine assumed by this builder. |
348 #define PSEUDO_OP_LIST(V) \ | 345 #define PSEUDO_OP_LIST(V) \ |
349 V(Word, And) \ | 346 V(Word, And) \ |
350 V(Word, Or) \ | 347 V(Word, Or) \ |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 }; | 379 }; |
383 | 380 |
384 | 381 |
385 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) | 382 DEFINE_OPERATORS_FOR_FLAGS(MachineOperatorBuilder::Flags) |
386 | 383 |
387 } // namespace compiler | 384 } // namespace compiler |
388 } // namespace internal | 385 } // namespace internal |
389 } // namespace v8 | 386 } // namespace v8 |
390 | 387 |
391 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ | 388 #endif // V8_COMPILER_MACHINE_OPERATOR_H_ |
OLD | NEW |