Index: runtime/vm/constants_arm64.h |
=================================================================== |
--- runtime/vm/constants_arm64.h (revision 35975) |
+++ runtime/vm/constants_arm64.h (working copy) |
@@ -610,6 +610,7 @@ |
kImm9Bits = 9, |
kImm12Shift = 10, |
kImm12Bits = 12, |
+ kImm12Mask = 0xfff << kImm12Shift, |
kImm12ShiftShift = 22, |
kImm12ShiftBits = 2, |
kImm14Shift = 5, |
@@ -747,6 +748,11 @@ |
(static_cast<int32_t>(rn) << kRnShift)); |
} |
+ inline void SetImm12Bits(int32_t orig, int32_t imm12) { |
+ ASSERT((imm12 & 0xfffff000) == 0); |
+ SetInstructionBits((orig & ~kImm12Mask) | (imm12 << kImm12Shift)); |
+ } |
+ |
inline int NField() const { return Bit(22); } |
inline int SField() const { return Bit(kSShift); } |
inline int SFField() const { return Bit(kSFShift); } |