summaryrefslogtreecommitdiff
path: root/compiler/utils/arm/assembler_arm32.h
diff options
context:
space:
mode:
author Artem Serov <artem.serov@linaro.org> 2016-02-02 13:49:43 +0000
committer Artem Serov <artem.serov@linaro.org> 2016-02-24 13:10:06 +0000
commitc257da7b0fb6737f65aba426add8831e45404755 (patch)
treeef5545cd8177583d88fc7acaa7b1336e18a00e6a /compiler/utils/arm/assembler_arm32.h
parentd15ede2df7d157ea5480614fd18c2bf0d37a6c2a (diff)
ARM: Implement Reverse bits and bytes intrinsic.
- IntegerReverse - LongReverse - IntegerReverseBytes - LongReverseBytes - ShortReverseBytes Change-Id: I3ec202696b245148a0237ff6e46ac3f1a3f8402a
Diffstat (limited to 'compiler/utils/arm/assembler_arm32.h')
-rw-r--r--compiler/utils/arm/assembler_arm32.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/utils/arm/assembler_arm32.h b/compiler/utils/arm/assembler_arm32.h
index bf332feb62..e3e05caf92 100644
--- a/compiler/utils/arm/assembler_arm32.h
+++ b/compiler/utils/arm/assembler_arm32.h
@@ -91,6 +91,9 @@ class Arm32Assembler FINAL : public ArmAssembler {
void movw(Register rd, uint16_t imm16, Condition cond = AL) OVERRIDE;
void movt(Register rd, uint16_t imm16, Condition cond = AL) OVERRIDE;
void rbit(Register rd, Register rm, Condition cond = AL) OVERRIDE;
+ void rev(Register rd, Register rm, Condition cond = AL) OVERRIDE;
+ void rev16(Register rd, Register rm, Condition cond = AL) OVERRIDE;
+ void revsh(Register rd, Register rm, Condition cond = AL) OVERRIDE;
// Multiply instructions.
void mul(Register rd, Register rn, Register rm, Condition cond = AL) OVERRIDE;
@@ -388,6 +391,11 @@ class Arm32Assembler FINAL : public ArmAssembler {
void EmitVPushPop(uint32_t reg, int nregs, bool push, bool dbl, Condition cond);
+ void EmitMiscellaneous(Condition cond, uint8_t op1, uint8_t op2,
+ uint32_t a_part, uint32_t rest);
+ void EmitReverseBytes(Register rd, Register rm, Condition cond,
+ uint8_t op1, uint8_t op2);
+
void EmitBranch(Condition cond, Label* label, bool link);
static int32_t EncodeBranchOffset(int offset, int32_t inst);
static int DecodeBranchOffset(int32_t inst);