Skip to content

Commit 66e092d

Browse files
committed
[Xtensa] Correct CALLX/RET semantics.
Remove redundant bits from CALLX/RET descriptions.
1 parent 9677659 commit 66e092d

File tree

1 file changed

+30
-36
lines changed

1 file changed

+30
-36
lines changed

llvm/lib/Target/Xtensa/XtensaInstrInfo.td

Lines changed: 30 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -551,20 +551,17 @@ let isCall = 1, Defs = [A0] in
551551
let n = 0;
552552
}
553553

554-
let isIndirectBranch = 1 in
554+
def CALLX0: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
555+
"callx0\t$s", [(Xtensa_call AR:$s)]>
555556
{
556-
def CALLX0: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
557-
"callx0\t$s", [(Xtensa_call AR:$s)]>
558-
{
559-
let m = 0x3;
560-
let n = 0x0;
561-
let r = 0;
562-
}
557+
let m = 0x3;
558+
let n = 0x0;
559+
let r = 0;
563560
}
564561
}
565562

566563
let isReturn = 1, isTerminator = 1,
567-
isBarrier = 1, hasCtrlDep = 1, Uses = [A0] in
564+
isBarrier = 1, Uses = [A0] in
568565
{
569566

570567
def RET: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins),
@@ -803,7 +800,7 @@ let mayStore = 1, usesCustomInserter = 1 in
803800

804801
//Return instruction
805802
let isReturn = 1, isTerminator = 1,
806-
isBarrier = 1, hasCtrlDep = 1, Uses = [A0] in
803+
isBarrier = 1, Uses = [A0] in
807804
{
808805
def RET_N: RRRN_Inst<0x0D, (outs), (ins),
809806
"ret.n", [(Xtensa_retflag)]>, Requires<[HasDensity]>
@@ -848,31 +845,28 @@ let isCall = 1, Defs = [A0] in
848845
let n = 3;
849846
}
850847

851-
let isIndirectBranch = 1 in
848+
def CALLX4: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
849+
"callx4\t$s", []>, Requires<[HasWindowed]>
850+
{
851+
let m = 0x3;
852+
let n = 0x1;
853+
let r = 0;
854+
}
855+
856+
def CALLX8: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
857+
"callx8\t$s", []>, Requires<[HasWindowed]>
852858
{
853-
def CALLX4: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
854-
"callx4\t$s", []>, Requires<[HasWindowed]>
855-
{
856-
let m = 0x3;
857-
let n = 0x1;
858-
let r = 0;
859-
}
860-
861-
def CALLX8: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
862-
"callx8\t$s", []>, Requires<[HasWindowed]>
863-
{
864-
let m = 0x3;
865-
let n = 0x2;
866-
let r = 0;
867-
}
868-
869-
def CALLX12: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
870-
"callx12\t$s", []>, Requires<[HasWindowed]>
871-
{
872-
let m = 0x3;
873-
let n = 0x3;
874-
let r = 0;
875-
}
859+
let m = 0x3;
860+
let n = 0x2;
861+
let r = 0;
862+
}
863+
864+
def CALLX12: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins AR:$s),
865+
"callx12\t$s", []>, Requires<[HasWindowed]>
866+
{
867+
let m = 0x3;
868+
let n = 0x3;
869+
let r = 0;
876870
}
877871
}
878872

@@ -893,7 +887,7 @@ def MOVSP: RRR_Inst<0x00, 0x00, 0x00, (outs AR:$t), (ins AR:$s),
893887

894888
//Return instructions
895889
let isReturn = 1, isTerminator = 1,
896-
isBarrier = 1, hasCtrlDep = 1, Uses = [A0] in
890+
isBarrier = 1, Uses = [A0] in
897891
{
898892
def RETW_N: RRRN_Inst<0x0D, (outs), (ins),
899893
"retw.n", [(Xtensa_retWflag)]>, Requires<[HasWindowed, HasDensity]>
@@ -903,7 +897,7 @@ let isReturn = 1, isTerminator = 1,
903897
let t = 1;
904898
}
905899

906-
def RETW: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins),
900+
def RETW: CALLX_Inst<0x00, 0x00, 0x00, (outs), (ins),
907901
"retw", [(Xtensa_retWflag)]>, Requires<[HasWindowed]>
908902
{
909903
let m = 0x2;

0 commit comments

Comments
 (0)