Index: src/IceAssemblerARM32.h |
diff --git a/src/IceAssemblerARM32.h b/src/IceAssemblerARM32.h |
index 8de4e258465d5bf88b77e88c77da8e16b9786f7c..4372085ebd4cac1bd6dfbb5d9931d5c3675a921f 100644 |
--- a/src/IceAssemblerARM32.h |
+++ b/src/IceAssemblerARM32.h |
@@ -223,6 +223,9 @@ public: |
ldr(OpRt, OpAddress, Cond, TInfo); |
} |
+ void lsl(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); |
@@ -312,28 +315,27 @@ private: |
void emitInst(IValueT Value) { Buffer.emit<IValueT>(Value); } |
+ // List of possible checks to apply when calling emitType01() (below). |
+ enum EmitChecks { NoChecks, RdIsPcAndSetFlags }; |
+ |
// Pattern cccctttoooosnnnnddddiiiiiiiiiiii where cccc=Cond, ttt=Type, |
- // oooo=Opcode, nnnn=Rn, dddd=Rd, iiiiiiiiiiii=imm12 (See ARM section A5.2.3). |
+ // s=SetFlags, oooo=Opcode, nnnn=Rn, dddd=Rd, iiiiiiiiiiii=imm12 (See ARM |
+ // section A5.2.3). |
void emitType01(CondARM32::Cond Cond, IValueT Type, IValueT Opcode, |
- bool SetCc, IValueT Rn, IValueT Rd, IValueT imm12); |
- |
- // List of possible checks to apply when calling emitType01() (below). |
- enum Type01Checks { |
- NoChecks, |
- RdIsPcAndSetFlags, |
- }; |
+ bool SetFlags, IValueT Rn, IValueT Rd, IValueT imm12, |
+ EmitChecks RuleChecks); |
// Converts appropriate representation on a data operation, and then calls |
// emitType01 above. |
void emitType01(IValueT Opcode, const Operand *OpRd, const Operand *OpRn, |
const Operand *OpSrc1, bool SetFlags, CondARM32::Cond Cond, |
- Type01Checks RuleChecks = RdIsPcAndSetFlags); |
+ EmitChecks RuleChecks); |
// Same as above, but the value for Rd and Rn have already been converted |
// into instruction values. |
void emitType01(IValueT Opcode, IValueT OpRd, IValueT OpRn, |
const Operand *OpSrc1, bool SetFlags, CondARM32::Cond Cond, |
- Type01Checks RuleChecks = RdIsPcAndSetFlags); |
+ EmitChecks RuleChecks); |
void emitType05(CondARM32::Cond COnd, int32_t Offset, bool Link); |
@@ -356,9 +358,9 @@ private: |
IValueT Rm); |
// Pattern ccccxxxxxxxfnnnnddddssss1001mmmm where cccc=Cond, dddd=Rd, nnnn=Rn, |
- // mmmm=Rm, ssss=Rs, f=SetCc, and xxxxxxx=Opcode. |
+ // mmmm=Rm, ssss=Rs, f=SetFlags and xxxxxxx=Opcode. |
void emitMulOp(CondARM32::Cond Cond, IValueT Opcode, IValueT Rd, IValueT Rn, |
- IValueT Rm, IValueT Rs, bool SetCc); |
+ IValueT Rm, IValueT Rs, bool SetFlags); |
// Implements various forms of Unsigned extend value, using pattern |
// ccccxxxxxxxxnnnnddddrr000111mmmm where cccc=Cond, xxxxxxxx<<20=Opcode, |