Index: src/IceAssemblerARM32.h |
diff --git a/src/IceAssemblerARM32.h b/src/IceAssemblerARM32.h |
index d2523f610531529f02e6cc2c757c5020de9c1f65..427382a3eb7e2df0ef77ac1f945d2aa99572073d 100644 |
--- a/src/IceAssemblerARM32.h |
+++ b/src/IceAssemblerARM32.h |
@@ -131,13 +131,16 @@ public: |
void b(Label *L, CondARM32::Cond Cond); |
+ void bx(RegARM32::GPRRegister Rm, CondARM32::Cond Cond = CondARM32::AL); |
+ |
void bkpt(uint16_t Imm16); |
void ldr(const Operand *OpRt, const Operand *OpAddress, CondARM32::Cond Cond); |
void mov(const Operand *OpRd, const Operand *OpSrc, CondARM32::Cond Cond); |
- void bx(RegARM32::GPRRegister Rm, CondARM32::Cond Cond = CondARM32::AL); |
+ void mul(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
+ bool SetFlags, CondARM32::Cond Cond); |
void sbc(const Operand *OpRd, const Operand *OpRn, const Operand *OpSrc1, |
bool SetFlags, CondARM32::Cond Cond); |
@@ -180,6 +183,11 @@ private: |
void emitMemOp(CondARM32::Cond Cond, IValueT InstType, bool IsLoad, |
bool IsByte, uint32_t Rt, uint32_t Address); |
+ // Pattern ccccxxxxxxxfnnnnddddssss1001mmmm where cccc=Cond, dddd=Rd, nnnn=Rn, |
+ // mmmm=Rm, ssss=Rs, f=SetCc, and xxxxxxx=Opcode. |
+ void emitMulOp(CondARM32::Cond Cond, IValueT Opcode, IValueT Rd, IValueT Rn, |
+ IValueT Rm, IValueT Rs, bool SetCc); |
+ |
void emitBranch(Label *L, CondARM32::Cond, bool Link); |
// Encodes the given Offset into the branch instruction Inst. |