Index: src/IceAssemblerARM32.h |
diff --git a/src/IceAssemblerARM32.h b/src/IceAssemblerARM32.h |
index 705bfe0948c5631c9f31e186425924aae285bb4c..0ac8bc7359072e6a537705bfdf54a19dc9cc45cf 100644 |
--- a/src/IceAssemblerARM32.h |
+++ b/src/IceAssemblerARM32.h |
@@ -273,6 +273,9 @@ public: |
void sub(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
bool SetFlags, CondARM32::Cond Cond); |
+ // Implements sxtb/sxth depending on type of OpSrc0. |
+ void sxt(const Operand *OpRd, const Operand *OpSrc0, CondARM32::Cond Cond); |
+ |
void tst(const Operand *OpRn, const Operand *OpSrc1, CondARM32::Cond Cond); |
void udiv(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
@@ -387,11 +390,11 @@ private: |
const Operand *OpRm, const Operand *OpSrc1, |
const bool SetFlags, const char *InstName); |
- // Implements various forms of Unsigned extend value, using pattern |
+ // Implements various forms of signed/unsigned extend value, using pattern |
// ccccxxxxxxxxnnnnddddrr000111mmmm where cccc=Cond, xxxxxxxx<<20=Opcode, |
// nnnn=Rn, dddd=Rd, rr=Rotation, and mmmm=Rm. |
- void emitUxt(CondARM32::Cond, IValueT Opcode, IValueT Rd, IValueT Rn, |
- IValueT Rm, RotationValue Rotation, const char *InstName); |
+ void emitSignExtend(CondARM32::Cond, IValueT Opcode, const Operand *OpRd, |
+ const Operand *OpSrc0, const char *InstName); |
// Pattern cccctttxxxxnnnn0000iiiiiiiiiiii where cccc=Cond, nnnn=Rn, |
// ttt=Instruction type (derived from OpSrc1), iiiiiiiiiiii is derived from |