mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
Hexagon: Set isPredicatedFlase flag for all the instructions with negated predication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179387 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fb1cd69b90
commit
c1406d76ec
@ -107,7 +107,7 @@ multiclass ALU32_Pbase<string mnemonic, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ALU32_Pred<string mnemonic, bit PredNot> {
|
multiclass ALU32_Pred<string mnemonic, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ALU32_Pbase<mnemonic, PredNot, 0>;
|
defm _c#NAME : ALU32_Pbase<mnemonic, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ALU32_Pbase<mnemonic, PredNot, 1>;
|
defm _cdn#NAME : ALU32_Pbase<mnemonic, PredNot, 1>;
|
||||||
@ -153,7 +153,7 @@ multiclass ALU32ri_Pbase<string mnemonic, bit isNot, bit isPredNew> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ALU32ri_Pred<string mnemonic, bit PredNot> {
|
multiclass ALU32ri_Pred<string mnemonic, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ALU32ri_Pbase<mnemonic, PredNot, 0>;
|
defm _c#NAME : ALU32ri_Pbase<mnemonic, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ALU32ri_Pbase<mnemonic, PredNot, 1>;
|
defm _cdn#NAME : ALU32ri_Pbase<mnemonic, PredNot, 1>;
|
||||||
@ -222,7 +222,7 @@ def SUB_ri : ALU32_ri<(outs IntRegs:$dst),
|
|||||||
|
|
||||||
|
|
||||||
multiclass TFR_Pred<bit PredNot> {
|
multiclass TFR_Pred<bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
def _c#NAME : ALU32_rr<(outs IntRegs:$dst),
|
def _c#NAME : ALU32_rr<(outs IntRegs:$dst),
|
||||||
(ins PredRegs:$src1, IntRegs:$src2),
|
(ins PredRegs:$src1, IntRegs:$src2),
|
||||||
!if(PredNot, "if (!$src1", "if ($src1")#") $dst = $src2",
|
!if(PredNot, "if (!$src1", "if ($src1")#") $dst = $src2",
|
||||||
@ -274,7 +274,7 @@ class T_TFR64_Pred<bit PredNot, bit isPredNew>
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass TFR64_Pred<bit PredNot> {
|
multiclass TFR64_Pred<bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
def _c#NAME : T_TFR64_Pred<PredNot, 0>;
|
def _c#NAME : T_TFR64_Pred<PredNot, 0>;
|
||||||
|
|
||||||
let PNewValue = "new" in
|
let PNewValue = "new" in
|
||||||
@ -309,7 +309,7 @@ multiclass TFR64_base<string BaseName> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass TFRI_Pred<bit PredNot> {
|
multiclass TFRI_Pred<bit PredNot> {
|
||||||
let isMoveImm = 1, PredSense = !if(PredNot, "false", "true") in {
|
let isMoveImm = 1, isPredicatedFalse = PredNot in {
|
||||||
def _c#NAME : ALU32_ri<(outs IntRegs:$dst),
|
def _c#NAME : ALU32_ri<(outs IntRegs:$dst),
|
||||||
(ins PredRegs:$src1, s12Ext:$src2),
|
(ins PredRegs:$src1, s12Ext:$src2),
|
||||||
!if(PredNot, "if (!$src1", "if ($src1")#") $dst = #$src2",
|
!if(PredNot, "if (!$src1", "if ($src1")#") $dst = #$src2",
|
||||||
@ -901,7 +901,7 @@ multiclass LD_MEMri_Pbase<string mnemonic, RegisterClass RC,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass LD_MEMri_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass LD_MEMri_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : LD_MEMri_Pbase<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : LD_MEMri_Pbase<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : LD_MEMri_Pbase<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : LD_MEMri_Pbase<mnemonic, RC, PredNot, 1>;
|
||||||
@ -968,7 +968,7 @@ multiclass LD_Idxd_Pbase<string mnemonic, RegisterClass RC, Operand predImmOp,
|
|||||||
|
|
||||||
multiclass LD_Idxd_Pred<string mnemonic, RegisterClass RC, Operand predImmOp,
|
multiclass LD_Idxd_Pred<string mnemonic, RegisterClass RC, Operand predImmOp,
|
||||||
bit PredNot> {
|
bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : LD_Idxd_Pbase<mnemonic, RC, predImmOp, PredNot, 0>;
|
defm _c#NAME : LD_Idxd_Pbase<mnemonic, RC, predImmOp, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : LD_Idxd_Pbase<mnemonic, RC, predImmOp, PredNot, 1>;
|
defm _cdn#NAME : LD_Idxd_Pbase<mnemonic, RC, predImmOp, PredNot, 1>;
|
||||||
@ -1049,7 +1049,7 @@ multiclass LD_PostInc_Pbase<string mnemonic, RegisterClass RC, Operand ImmOp,
|
|||||||
|
|
||||||
multiclass LD_PostInc_Pred<string mnemonic, RegisterClass RC,
|
multiclass LD_PostInc_Pred<string mnemonic, RegisterClass RC,
|
||||||
Operand ImmOp, bit PredNot> {
|
Operand ImmOp, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : LD_PostInc_Pbase<mnemonic, RC, ImmOp, PredNot, 0>;
|
defm _c#NAME : LD_PostInc_Pbase<mnemonic, RC, ImmOp, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
let Predicates = [HasV4T], validSubTargets = HasV4SubT in
|
let Predicates = [HasV4T], validSubTargets = HasV4SubT in
|
||||||
@ -1377,7 +1377,7 @@ multiclass ST_PostInc_Pbase<string mnemonic, RegisterClass RC, Operand ImmOp,
|
|||||||
|
|
||||||
multiclass ST_PostInc_Pred<string mnemonic, RegisterClass RC,
|
multiclass ST_PostInc_Pred<string mnemonic, RegisterClass RC,
|
||||||
Operand ImmOp, bit PredNot> {
|
Operand ImmOp, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME# : ST_PostInc_Pbase<mnemonic, RC, ImmOp, PredNot, 0>;
|
defm _c#NAME# : ST_PostInc_Pbase<mnemonic, RC, ImmOp, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
let Predicates = [HasV4T], validSubTargets = HasV4SubT in
|
let Predicates = [HasV4T], validSubTargets = HasV4SubT in
|
||||||
@ -1440,7 +1440,7 @@ multiclass ST_MEMri_Pbase<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_MEMri_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ST_MEMri_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_MEMri_Pbase<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ST_MEMri_Pbase<mnemonic, RC, PredNot, 0>;
|
||||||
|
|
||||||
// Predicate new
|
// Predicate new
|
||||||
@ -1507,7 +1507,7 @@ multiclass ST_Idxd_Pbase<string mnemonic, RegisterClass RC, Operand predImmOp,
|
|||||||
|
|
||||||
multiclass ST_Idxd_Pred<string mnemonic, RegisterClass RC, Operand predImmOp,
|
multiclass ST_Idxd_Pred<string mnemonic, RegisterClass RC, Operand predImmOp,
|
||||||
bit PredNot> {
|
bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true"), isPredicated = 1 in {
|
let isPredicatedFalse = PredNot, isPredicated = 1 in {
|
||||||
defm _c#NAME : ST_Idxd_Pbase<mnemonic, RC, predImmOp, PredNot, 0>;
|
defm _c#NAME : ST_Idxd_Pbase<mnemonic, RC, predImmOp, PredNot, 0>;
|
||||||
|
|
||||||
// Predicate new
|
// Predicate new
|
||||||
|
@ -316,7 +316,7 @@ multiclass ld_idxd_shl_pbase<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ld_idxd_shl_pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ld_idxd_shl_pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ld_idxd_shl_pbase<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ld_idxd_shl_pbase<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ld_idxd_shl_pbase<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : ld_idxd_shl_pbase<mnemonic, RC, PredNot, 1>;
|
||||||
@ -609,7 +609,7 @@ multiclass ST_Idxd_shl_Pbase<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_Idxd_shl_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ST_Idxd_shl_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_Idxd_shl_Pbase<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ST_Idxd_shl_Pbase<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ST_Idxd_shl_Pbase<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : ST_Idxd_shl_Pbase<mnemonic, RC, PredNot, 1>;
|
||||||
@ -648,7 +648,7 @@ multiclass ST_Idxd_shl_Pbase_nv<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_Idxd_shl_Pred_nv<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ST_Idxd_shl_Pred_nv<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_Idxd_shl_Pbase_nv<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ST_Idxd_shl_Pbase_nv<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ST_Idxd_shl_Pbase_nv<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : ST_Idxd_shl_Pbase_nv<mnemonic, RC, PredNot, 1>;
|
||||||
@ -751,7 +751,7 @@ multiclass ST_Imm_Pbase<string mnemonic, Operand OffsetOp, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_Imm_Pred<string mnemonic, Operand OffsetOp, bit PredNot> {
|
multiclass ST_Imm_Pred<string mnemonic, Operand OffsetOp, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_Imm_Pbase<mnemonic, OffsetOp, PredNot, 0>;
|
defm _c#NAME : ST_Imm_Pbase<mnemonic, OffsetOp, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ST_Imm_Pbase<mnemonic, OffsetOp, PredNot, 1>;
|
defm _cdn#NAME : ST_Imm_Pbase<mnemonic, OffsetOp, PredNot, 1>;
|
||||||
@ -918,7 +918,7 @@ multiclass ST_Idxd_Pbase_nv<string mnemonic, RegisterClass RC,
|
|||||||
|
|
||||||
multiclass ST_Idxd_Pred_nv<string mnemonic, RegisterClass RC, Operand predImmOp,
|
multiclass ST_Idxd_Pred_nv<string mnemonic, RegisterClass RC, Operand predImmOp,
|
||||||
bit PredNot> {
|
bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_Idxd_Pbase_nv<mnemonic, RC, predImmOp, PredNot, 0>;
|
defm _c#NAME : ST_Idxd_Pbase_nv<mnemonic, RC, predImmOp, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ST_Idxd_Pbase_nv<mnemonic, RC, predImmOp, PredNot, 1>;
|
defm _cdn#NAME : ST_Idxd_Pbase_nv<mnemonic, RC, predImmOp, PredNot, 1>;
|
||||||
@ -970,7 +970,7 @@ multiclass ST_MEMri_Pbase_nv<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_MEMri_Pred_nv<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ST_MEMri_Pred_nv<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_MEMri_Pbase_nv<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ST_MEMri_Pbase_nv<mnemonic, RC, PredNot, 0>;
|
||||||
|
|
||||||
// Predicate new
|
// Predicate new
|
||||||
@ -1034,7 +1034,7 @@ multiclass ST_PostInc_Pbase_nv<string mnemonic, RegisterClass RC, Operand ImmOp,
|
|||||||
|
|
||||||
multiclass ST_PostInc_Pred_nv<string mnemonic, RegisterClass RC,
|
multiclass ST_PostInc_Pred_nv<string mnemonic, RegisterClass RC,
|
||||||
Operand ImmOp, bit PredNot> {
|
Operand ImmOp, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_PostInc_Pbase_nv<mnemonic, RC, ImmOp, PredNot, 0>;
|
defm _c#NAME : ST_PostInc_Pbase_nv<mnemonic, RC, ImmOp, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
let Predicates = [HasV4T], validSubTargets = HasV4SubT in
|
let Predicates = [HasV4T], validSubTargets = HasV4SubT in
|
||||||
@ -2779,7 +2779,7 @@ multiclass ST_Abs_Predbase<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_Abs_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ST_Abs_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_Abs_Predbase<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ST_Abs_Predbase<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ST_Abs_Predbase<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : ST_Abs_Predbase<mnemonic, RC, PredNot, 1>;
|
||||||
@ -2815,7 +2815,7 @@ multiclass ST_Abs_Predbase_nv<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass ST_Abs_Pred_nv<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass ST_Abs_Pred_nv<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : ST_Abs_Predbase_nv<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : ST_Abs_Predbase_nv<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : ST_Abs_Predbase_nv<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : ST_Abs_Predbase_nv<mnemonic, RC, PredNot, 1>;
|
||||||
@ -2984,7 +2984,7 @@ multiclass LD_Abs_Predbase<string mnemonic, RegisterClass RC, bit isNot,
|
|||||||
}
|
}
|
||||||
|
|
||||||
multiclass LD_Abs_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
multiclass LD_Abs_Pred<string mnemonic, RegisterClass RC, bit PredNot> {
|
||||||
let PredSense = !if(PredNot, "false", "true") in {
|
let isPredicatedFalse = PredNot in {
|
||||||
defm _c#NAME : LD_Abs_Predbase<mnemonic, RC, PredNot, 0>;
|
defm _c#NAME : LD_Abs_Predbase<mnemonic, RC, PredNot, 0>;
|
||||||
// Predicate new
|
// Predicate new
|
||||||
defm _cdn#NAME : LD_Abs_Predbase<mnemonic, RC, PredNot, 1>;
|
defm _cdn#NAME : LD_Abs_Predbase<mnemonic, RC, PredNot, 1>;
|
||||||
|
Loading…
Reference in New Issue
Block a user