summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/nouveau/nv30_vertprog.c
diff options
context:
space:
mode:
authorBen Skeggs <darktama@iinet.net.au>2007-01-21 09:13:27 +1100
committerBen Skeggs <darktama@iinet.net.au>2007-01-21 09:13:27 +1100
commitee3d0617f923cd4bcc8bfdc1ce878648480c2679 (patch)
treeadfda18755c6407064594b261c709f3c12b65100 /src/mesa/drivers/dri/nouveau/nv30_vertprog.c
parent669fefd3da55e3946b4b65a5d1104540c04717cb (diff)
nouveau: shader backend branching support for all cards that support it.
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nv30_vertprog.c')
-rw-r--r--src/mesa/drivers/dri/nouveau/nv30_vertprog.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nv30_vertprog.c b/src/mesa/drivers/dri/nouveau/nv30_vertprog.c
index 6ba8e35d55..0b7678f55d 100644
--- a/src/mesa/drivers/dri/nouveau/nv30_vertprog.c
+++ b/src/mesa/drivers/dri/nouveau/nv30_vertprog.c
@@ -48,6 +48,12 @@ NV30VPUpdateConst(GLcontext *ctx, nouveauShader *nvs, int id)
/*****************************************************************************
* Assembly routines
*/
+static void
+NV30VPSetBranchTarget(nvsFunc *shader, int addr)
+{
+ shader->inst[2] &= ~NV30_VP_INST_IADDR_MASK;
+ shader->inst[2] |= (addr << NV30_VP_INST_IADDR_SHIFT);
+}
/*****************************************************************************
* Disassembly routines
@@ -349,5 +355,6 @@ NV30VPInitShaderFuncs(nvsFunc * shader)
shader->GetCondRegID = NV30VPGetCondRegID;
shader->GetBranch = NV30VPGetBranch;
+ shader->SetBranchTarget = NV30VPSetBranchTarget;
}