diff options
author | Tom Stellard <[email protected]> | 2012-08-17 19:07:37 +0000 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2012-08-23 15:00:48 +0000 |
commit | 3f9b6aa0f467b8d918ce277697db2f42abe1cf4c (patch) | |
tree | b7cfa9e20ce317831fb82dd1f0d28c335ab103b6 | |
parent | e30b4644b613a130318cdf240ad237b0afbc525a (diff) |
radeon/llvm: Lower RETFLAG DAG Node to S_ENDPGM on SI
-rw-r--r-- | src/gallium/drivers/radeon/AMDILInstrInfo.td | 7 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/R600Instructions.td | 8 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/SIInstructions.td | 5 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/gallium/drivers/radeon/AMDILInstrInfo.td b/src/gallium/drivers/radeon/AMDILInstrInfo.td index b683e49ea81..779566d4bf3 100644 --- a/src/gallium/drivers/radeon/AMDILInstrInfo.td +++ b/src/gallium/drivers/radeon/AMDILInstrInfo.td @@ -223,13 +223,6 @@ let isTerminator = 1, usesCustomInserter = 1 in { [(br bb:$target)]>; defm BRANCH_COND : BranchConditional<IL_brcond>; } -//===---------------------------------------------------------------------===// -// return instructions -//===---------------------------------------------------------------------===// -let isTerminator = 1, isReturn = 1, isBarrier = 1, hasCtrlDep = 1 in { - def RETURN : ILFormat<(outs), (ins variable_ops), - "RETURN", [(IL_retflag)]>; -} //===---------------------------------------------------------------------===// // Flow and Program control Instructions diff --git a/src/gallium/drivers/radeon/R600Instructions.td b/src/gallium/drivers/radeon/R600Instructions.td index 9651b85a36d..84f839e77ba 100644 --- a/src/gallium/drivers/radeon/R600Instructions.td +++ b/src/gallium/drivers/radeon/R600Instructions.td @@ -1213,6 +1213,14 @@ def MASK_WRITE : AMDGPUShaderInst < } // End usesCustomInserter = 1 +//===---------------------------------------------------------------------===// +// return instruction +//===---------------------------------------------------------------------===// +let isTerminator = 1, isReturn = 1, isBarrier = 1, hasCtrlDep = 1 in { + def RETURN : ILFormat<(outs), (ins variable_ops), + "RETURN", [(IL_retflag)]>; +} + //===----------------------------------------------------------------------===// // ISel Patterns //===----------------------------------------------------------------------===// diff --git a/src/gallium/drivers/radeon/SIInstructions.td b/src/gallium/drivers/radeon/SIInstructions.td index 152d7356a91..f09d6042457 100644 --- a/src/gallium/drivers/radeon/SIInstructions.td +++ b/src/gallium/drivers/radeon/SIInstructions.td @@ -595,8 +595,11 @@ def V_INTERP_MOV_F32 : VINTRP < let isTerminator = 1 in { -def S_ENDPGM : SOPP <0x00000001, (ins), "S_ENDPGM", []> { +def S_ENDPGM : SOPP <0x00000001, (ins), "S_ENDPGM", + [(IL_retflag)]> { let SIMM16 = 0; + let isBarrier = 1; + let hasCtrlDep = 1; } let isBranch = 1 in { |