summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nvc0/nvc0_pc_emit.c
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-12-09 14:43:11 +0100
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-12-09 14:43:11 +0100
commit14a09095d30f926c7d6869784d61cc59e6bd0578 (patch)
tree49cb832dadbc54a54e171176b688e2a2d502dd6d /src/gallium/drivers/nvc0/nvc0_pc_emit.c
parent2bb377ee02cc956cb3328b6f13320ac709987dd0 (diff)
nvc0: fix immediate arg for SHL/SHR
Diffstat (limited to 'src/gallium/drivers/nvc0/nvc0_pc_emit.c')
-rw-r--r--src/gallium/drivers/nvc0/nvc0_pc_emit.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gallium/drivers/nvc0/nvc0_pc_emit.c b/src/gallium/drivers/nvc0/nvc0_pc_emit.c
index 4edbdb22e5..6735f93fd3 100644
--- a/src/gallium/drivers/nvc0/nvc0_pc_emit.c
+++ b/src/gallium/drivers/nvc0/nvc0_pc_emit.c
@@ -153,10 +153,15 @@ set_immd_u32(struct nv_pc *pc, uint32_t u32)
{
if ((pc->emit[0] & 0xf) == 0x2) {
set_immd_u32_l(pc, u32);
+ } else
+ if ((pc->emit[0] & 0xf) == 0x3) {
+ assert(!(pc->emit[1] & 0xc000));
+ pc->emit[1] |= 0xc000;
+ assert(!(u32 & 0xfff00000));
+ set_immd_u32_l(pc, u32);
} else {
assert(!(pc->emit[1] & 0xc000));
pc->emit[1] |= 0xc000;
-
assert(!(u32 & 0xfff));
set_immd_u32_l(pc, u32 >> 12);
}