| Index: src/IceTargetLoweringARM32.h
|
| diff --git a/src/IceTargetLoweringARM32.h b/src/IceTargetLoweringARM32.h
|
| index 969e17a6b49c9ac8cdfdfcbfa400a53a058b1551..743fdfb83f12fb6ad70d616abc50f6040949d020 100644
|
| --- a/src/IceTargetLoweringARM32.h
|
| +++ b/src/IceTargetLoweringARM32.h
|
| @@ -142,6 +142,8 @@ protected:
|
|
|
| void lowerAlloca(const InstAlloca *Inst) override;
|
| SafeBoolChain lowerInt1Arithmetic(const InstArithmetic *Inst);
|
| + void lowerInt64Arithmetic(InstArithmetic::OpKind Op, Variable *Dest,
|
| + Operand *Src0, Operand *Src1);
|
| void lowerArithmetic(const InstArithmetic *Inst) override;
|
| void lowerAssign(const InstAssign *Inst) override;
|
| void lowerBr(const InstBr *Inst) override;
|
| @@ -180,6 +182,8 @@ protected:
|
|
|
| CondWhenTrue lowerFcmpCond(const InstFcmp *Instr);
|
| void lowerFcmp(const InstFcmp *Instr) override;
|
| + CondWhenTrue lowerInt64IcmpCond(InstIcmp::ICond Condition, Operand *Src0,
|
| + Operand *Src1);
|
| CondWhenTrue lowerIcmpCond(const InstIcmp *Instr);
|
| void lowerIcmp(const InstIcmp *Instr) override;
|
| void lowerAtomicRMW(Variable *Dest, uint32_t Operation, Operand *Ptr,
|
| @@ -320,6 +324,12 @@ protected:
|
| CondARM32::Cond Pred = CondARM32::AL) {
|
| Context.insert(InstARM32Lsl::create(Func, Dest, Src0, Src1, Pred));
|
| }
|
| + void _lsls(Variable *Dest, Variable *Src0, Operand *Src1,
|
| + CondARM32::Cond Pred = CondARM32::AL) {
|
| + constexpr bool SetFlags = true;
|
| + Context.insert(
|
| + InstARM32Lsl::create(Func, Dest, Src0, Src1, Pred, SetFlags));
|
| + }
|
| void _lsr(Variable *Dest, Variable *Src0, Operand *Src1,
|
| CondARM32::Cond Pred = CondARM32::AL) {
|
| Context.insert(InstARM32Lsr::create(Func, Dest, Src0, Src1, Pred));
|
| @@ -642,6 +652,18 @@ protected:
|
| void _ret(Variable *LR, Variable *Src0 = nullptr) {
|
| Context.insert(InstARM32Ret::create(Func, LR, Src0));
|
| }
|
| + void _rscs(Variable *Dest, Variable *Src0, Operand *Src1,
|
| + CondARM32::Cond Pred = CondARM32::AL) {
|
| + constexpr bool SetFlags = true;
|
| + Context.insert(
|
| + InstARM32Rsc::create(Func, Dest, Src0, Src1, Pred, SetFlags));
|
| + }
|
| + void _rsbs(Variable *Dest, Variable *Src0, Operand *Src1,
|
| + CondARM32::Cond Pred = CondARM32::AL) {
|
| + constexpr bool SetFlags = true;
|
| + Context.insert(
|
| + InstARM32Rsb::create(Func, Dest, Src0, Src1, Pred, SetFlags));
|
| + }
|
| void _rsb(Variable *Dest, Variable *Src0, Operand *Src1,
|
| CondARM32::Cond Pred = CondARM32::AL) {
|
| Context.insert(InstARM32Rsb::create(Func, Dest, Src0, Src1, Pred));
|
| @@ -733,6 +755,10 @@ protected:
|
| CondARM32::Cond Pred = CondARM32::AL) {
|
| Context.insert(InstARM32Vcmp::create(Func, Src0, Src1, Pred));
|
| }
|
| + void _vcmp(Variable *Src0, OperandARM32FlexFpZero *FpZero,
|
| + CondARM32::Cond Pred = CondARM32::AL) {
|
| + Context.insert(InstARM32Vcmp::create(Func, Src0, FpZero, Pred));
|
| + }
|
| void _vmrs(CondARM32::Cond Pred = CondARM32::AL) {
|
| Context.insert(InstARM32Vmrs::create(Func, Pred));
|
| }
|
|
|