summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/nouveau/nv40_vertprog.c
diff options
context:
space:
mode:
authorJeremy Kolb <jkolb@brandeis.edu>2007-01-21 20:47:10 -0500
committerJeremy Kolb <jkolb@brandeis.edu>2007-01-21 20:47:10 -0500
commit95fc270b06f07268732ade745084410bbc877168 (patch)
tree8666e2d1052afc3881038a34d94ffbf001a2160e /src/mesa/drivers/dri/nouveau/nv40_vertprog.c
parentea441355d304ceff0d7eac4e112ed713ea08a43f (diff)
parentd1f0a55af42c8a34c2d59ca003e7d7a8263665fb (diff)
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/mesa
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nv40_vertprog.c')
-rw-r--r--src/mesa/drivers/dri/nouveau/nv40_vertprog.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nv40_vertprog.c b/src/mesa/drivers/dri/nouveau/nv40_vertprog.c
index 0493e18403..1ba1cfd155 100644
--- a/src/mesa/drivers/dri/nouveau/nv40_vertprog.c
+++ b/src/mesa/drivers/dri/nouveau/nv40_vertprog.c
@@ -228,6 +228,15 @@ NV40VPSetSource(nvsFunc *shader, nvsRegister * src, int pos)
}
static void
+NV40VPSetBranchTarget(nvsFunc *shader, int addr)
+{
+ shader->inst[2] &= ~NV40_VP_INST_IADDRH_MASK;
+ shader->inst[2] |= ((addr & 0xf8) >> 3) << NV40_VP_INST_IADDRH_SHIFT;
+ shader->inst[3] &= ~NV40_VP_INST_IADDRL_MASK;
+ shader->inst[3] |= ((addr & 0x07) << NV40_VP_INST_IADDRL_SHIFT);
+}
+
+static void
NV40VPInitInstruction(nvsFunc *shader)
{
unsigned int hwsrc = 0;
@@ -657,6 +666,7 @@ NV40VPInitShaderFuncs(nvsFunc * shader)
shader->SetResult = NV40VPSetResult;
shader->SetSource = NV40VPSetSource;
shader->SetLastInst = NV40VPSetLastInst;
+ shader->SetBranchTarget = NV40VPSetBranchTarget;
shader->HasMergedInst = NV40VPHasMergedInst;
shader->GetOpcodeHW = NV40VPGetOpcodeHW;