| Index: src/IceAssemblerARM32.h
|
| diff --git a/src/IceAssemblerARM32.h b/src/IceAssemblerARM32.h
|
| index 37ea4416fde43ff8fca9a7bc859e4d6c7ace8d72..705bfe0948c5631c9f31e186425924aae285bb4c 100644
|
| --- a/src/IceAssemblerARM32.h
|
| +++ b/src/IceAssemblerARM32.h
|
| @@ -222,6 +222,9 @@ public:
|
| void lsl(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1,
|
| bool SetFlags, CondARM32::Cond Cond);
|
|
|
| + void lsr(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1,
|
| + bool SetFlags, CondARM32::Cond Cond);
|
| +
|
| void mov(const Operand *OpRd, const Operand *OpSrc, CondARM32::Cond Cond);
|
|
|
| void movw(const Operand *OpRd, const Operand *OpSrc, CondARM32::Cond Cond);
|
| @@ -376,6 +379,14 @@ private:
|
| void emitMulOp(CondARM32::Cond Cond, IValueT Opcode, IValueT Rd, IValueT Rn,
|
| IValueT Rm, IValueT Rs, bool SetFlags, const char *InstName);
|
|
|
| + // Pattern cccc0001101s0000ddddxxxxxtt0mmmm where cccc=Cond, s=SetFlags,
|
| + // dddd=Rd, mmmm=Rm, tt=Shift, and xxxxx is defined by OpSrc1. OpSrc1 defines
|
| + // either xxxxx=Imm5, or xxxxx=ssss0 where ssss=Rs.
|
| + void emitShift(const CondARM32::Cond Cond,
|
| + const OperandARM32::ShiftKind Shift, const Operand *OpRd,
|
| + const Operand *OpRm, const Operand *OpSrc1,
|
| + const bool SetFlags, const char *InstName);
|
| +
|
| // Implements various forms of Unsigned extend value, using pattern
|
| // ccccxxxxxxxxnnnnddddrr000111mmmm where cccc=Cond, xxxxxxxx<<20=Opcode,
|
| // nnnn=Rn, dddd=Rd, rr=Rotation, and mmmm=Rm.
|
|
|