summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
diff options
context:
space:
mode:
authorTom Stellard <[email protected]>2012-08-17 19:07:37 +0000
committerTom Stellard <[email protected]>2012-08-23 15:00:48 +0000
commit3f9b6aa0f467b8d918ce277697db2f42abe1cf4c (patch)
treeb7cfa9e20ce317831fb82dd1f0d28c335ab103b6 /src/gallium/drivers/radeon
parente30b4644b613a130318cdf240ad237b0afbc525a (diff)
radeon/llvm: Lower RETFLAG DAG Node to S_ENDPGM on SI
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r--src/gallium/drivers/radeon/AMDILInstrInfo.td7
-rw-r--r--src/gallium/drivers/radeon/R600Instructions.td8
-rw-r--r--src/gallium/drivers/radeon/SIInstructions.td5
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 {