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

Unified Diff: src/a64/macro-assembler-a64.h

Issue 169303007: Revert r19403: "A64: Tidy up Push and Pop TODOs." (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 10 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
« no previous file with comments | « src/a64/full-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/a64/macro-assembler-a64.h
diff --git a/src/a64/macro-assembler-a64.h b/src/a64/macro-assembler-a64.h
index 25bc725136ea667492a8f86c3c6316e03af70a21..8bd24d3033f6eb9d945e5363359b37b6087de2af 100644
--- a/src/a64/macro-assembler-a64.h
+++ b/src/a64/macro-assembler-a64.h
@@ -28,8 +28,6 @@
#ifndef V8_A64_MACRO_ASSEMBLER_A64_H_
#define V8_A64_MACRO_ASSEMBLER_A64_H_
-#include <vector>
-
#include "v8globals.h"
#include "globals.h"
@@ -519,8 +517,7 @@ class MacroAssembler : public Assembler {
}
// Push the specified register 'count' times.
- void PushMultipleTimes(CPURegister src, Register count);
- void PushMultipleTimes(CPURegister src, int count);
+ void PushMultipleTimes(int count, Register src);
// This is a convenience method for pushing a single Handle<Object>.
inline void Push(Handle<Object> handle);
@@ -534,35 +531,6 @@ class MacroAssembler : public Assembler {
Pop(dst);
}
- // Sometimes callers need to push or pop multiple registers in a way that is
- // difficult to structure efficiently for fixed Push or Pop calls. This scope
- // allows push requests to be queued up, then flushed at once. The
- // MacroAssembler will try to generate the most efficient sequence required.
- //
- // Unlike the other Push and Pop macros, PushPopQueue can handle mixed sets of
- // register sizes and types.
- class PushPopQueue {
- public:
- explicit PushPopQueue(MacroAssembler* masm) : masm_(masm), size_(0) { }
-
- ~PushPopQueue() {
- ASSERT(queued_.empty());
- }
-
- void Queue(const CPURegister& rt) {
- size_ += rt.SizeInBytes();
- queued_.push_back(rt);
- }
-
- void PushQueued();
- void PopQueued();
-
- private:
- MacroAssembler* masm_;
- int size_;
- std::vector<CPURegister> queued_;
- };
-
// Poke 'src' onto the stack. The offset is in bytes.
//
// If the current stack pointer (according to StackPointer()) is csp, then
@@ -2035,12 +2003,9 @@ class MacroAssembler : public Assembler {
// Perform necessary maintenance operations before a push or pop.
//
- // Note that size is specified in bytes.
- void PrepareForPush(Operand total_size);
- void PrepareForPop(Operand total_size);
-
- void PrepareForPush(int count, int size) { PrepareForPush(count * size); }
- void PrepareForPop(int count, int size) { PrepareForPop(count * size); }
+ // Note that size is per register, and is specified in bytes.
+ void PrepareForPush(int count, int size);
+ void PrepareForPop(int count, int size);
// Call Printf. On a native build, a simple call will be generated, but if the
// simulator is being used then a suitable pseudo-instruction is used. The
« no previous file with comments | « src/a64/full-codegen-a64.cc ('k') | src/a64/macro-assembler-a64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698