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. |