Index: runtime/vm/assembler_arm64.h |
=================================================================== |
--- runtime/vm/assembler_arm64.h (revision 36300) |
+++ runtime/vm/assembler_arm64.h (working copy) |
@@ -473,6 +473,9 @@ |
void and_(Register rd, Register rn, Operand o) { |
EmitLogicalShiftOp(AND, rd, rn, o, kDoubleWord); |
} |
+ void andw_(Register rd, Register rn, Operand o) { |
+ EmitLogicalShiftOp(AND, rd, rn, o, kWord); |
+ } |
void bic(Register rd, Register rn, Operand o) { |
EmitLogicalShiftOp(BIC, rd, rn, o, kDoubleWord); |
} |
@@ -485,6 +488,9 @@ |
void eor(Register rd, Register rn, Operand o) { |
EmitLogicalShiftOp(EOR, rd, rn, o, kDoubleWord); |
} |
+ void eorw(Register rd, Register rn, Operand o) { |
+ EmitLogicalShiftOp(EOR, rd, rn, o, kWord); |
+ } |
void eon(Register rd, Register rn, Operand o) { |
EmitLogicalShiftOp(EON, rd, rn, o, kDoubleWord); |
} |
@@ -780,9 +786,16 @@ |
void Lsl(Register rd, Register rn, int shift) { |
add(rd, ZR, Operand(rn, LSL, shift)); |
} |
+ void Lslw(Register rd, Register rn, int shift) { |
+ addw(rd, ZR, Operand(rn, LSL, shift)); |
+ } |
void Lsr(Register rd, Register rn, int shift) { |
add(rd, ZR, Operand(rn, LSR, shift)); |
} |
+ void Lsrw(Register rd, Register rn, int shift) { |
+ ASSERT((shift >= 0) && (shift < 32)); |
+ addw(rd, ZR, Operand(rn, LSR, shift)); |
+ } |
void Asr(Register rd, Register rn, int shift) { |
add(rd, ZR, Operand(rn, ASR, shift)); |
} |