Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(366)

Unified Diff: src/compiler/gap-resolver.h

Issue 2082263002: [turbofan]: Support using push instructions for setting up tail call parameters (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Review feedback Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698