Chromium Code Reviews| Index: src/compiler/gap-resolver.h |
| diff --git a/src/compiler/gap-resolver.h b/src/compiler/gap-resolver.h |
| index 19806f568a82faf27b5d6e60f12b195d1bed5208..7459b8964e5df898fd04bab84767df0d34dfb2fd 100644 |
| --- a/src/compiler/gap-resolver.h |
| +++ b/src/compiler/gap-resolver.h |
| @@ -31,6 +31,22 @@ class GapResolver final { |
| // Resolve a set of parallel moves, emitting assembler instructions. |
| void Resolve(ParallelMove* parallel_move) const; |
| + enum PushTypeFlag { |
| + kImmediatePush = 0x1, |
| + kScalarPush = 0x2, |
| + kFloat32Push = 0x4, |
| + kFloat64Push = 0x8, |
| + kFloatPush = kFloat32Push | kFloat64Push |
| + }; |
| + |
| + typedef base::Flags<PushTypeFlag> PushTypeFlags; |
| + |
| + // Generate a list moves from an instruction that are candidates to be turned |
| + // into push instructions on platforms that support them. |
| + static void GetPushCompatibleMoves(Zone* zone, Instruction* instr, |
|
Mircea Trofin
2016/06/30 15:32:34
Is this just for tail calls cases, or in general?
danno
2016/07/01 07:31:57
Eventually, I'd like to convert the "normal" call
|
| + PushTypeFlags push_type, |
| + ZoneVector<MoveOperands*>* pushes); |
| + |
| private: |
| // Perform the given move, possibly requiring other moves to satisfy |
| // dependencies. |