Index: src/arm64/macro-assembler-arm64.h |
diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h |
index 95d69990d2f2b62608c3877c5d05fd130ca534d6..1375178d4f6b423d908a981d5886a5e3b932d46e 100644 |
--- a/src/arm64/macro-assembler-arm64.h |
+++ b/src/arm64/macro-assembler-arm64.h |
@@ -202,6 +202,18 @@ class MacroAssembler : public Assembler { |
static bool IsImmMovz(uint64_t imm, unsigned reg_size); |
static unsigned CountClearHalfWords(uint64_t imm, unsigned reg_size); |
+ // Try to move an immediate into the destination register in a single |
+ // instruction. Returns true for success, and updates the contents of dst. |
+ // Returns false, otherwise. |
+ bool TryOneInstrMoveImmediate(const Register& dst, int64_t imm); |
+ |
+ // Move an immediate into register dst, and return an Operand object for use |
+ // with a subsequent instruction that accepts a shift. The value moved into |
+ // dst is not necessarily equal to imm; it may have had a shifting operation |
+ // applied to it that will be subsequently undone by the shift applied in the |
+ // Operand. |
+ Operand MoveImmediateForShiftedOp(const Register& dst, int64_t imm); |
+ |
// Conditional macros. |
inline void Ccmp(const Register& rn, |
const Operand& operand, |