summaryrefslogtreecommitdiff
path: root/compiler/utils/arm/assembler_thumb2.h
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/utils/arm/assembler_thumb2.h')
-rw-r--r--compiler/utils/arm/assembler_thumb2.h34
1 files changed, 21 insertions, 13 deletions
diff --git a/compiler/utils/arm/assembler_thumb2.h b/compiler/utils/arm/assembler_thumb2.h
index 60b9384e56..5f24e4e0e1 100644
--- a/compiler/utils/arm/assembler_thumb2.h
+++ b/compiler/utils/arm/assembler_thumb2.h
@@ -221,11 +221,25 @@ class Thumb2Assembler FINAL : public ArmAssembler {
void blx(Register rm, Condition cond = AL) OVERRIDE;
void bx(Register rm, Condition cond = AL) OVERRIDE;
- void Lsl(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL);
- void Lsr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL);
- void Asr(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL);
- void Ror(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL);
- void Rrx(Register rd, Register rm, Condition cond = AL);
+ void Lsl(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Lsr(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Asr(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Ror(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Rrx(Register rd, Register rm, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+
+ void Lsl(Register rd, Register rm, Register rn, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Lsr(Register rd, Register rm, Register rn, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Asr(Register rd, Register rm, Register rn, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
+ void Ror(Register rd, Register rm, Register rn, bool setcc = false,
+ Condition cond = AL) OVERRIDE;
void Push(Register rd, Condition cond = AL) OVERRIDE;
void Pop(Register rd, Condition cond = AL) OVERRIDE;
@@ -395,14 +409,8 @@ class Thumb2Assembler FINAL : public ArmAssembler {
static int DecodeBranchOffset(int32_t inst);
int32_t EncodeTstOffset(int offset, int32_t inst);
int DecodeTstOffset(int32_t inst);
-
- bool IsLowRegister(Register r) {
- return r < R8;
- }
-
- bool IsHighRegister(Register r) {
- return r >= R8;
- }
+ void EmitShift(Register rd, Register rm, Shift shift, uint8_t amount, bool setcc = false);
+ void EmitShift(Register rd, Register rn, Shift shift, Register rm, bool setcc = false);
bool force_32bit_; // Force the assembler to use 32 bit thumb2 instructions.