diff options
author | Christoph Bumiller <[email protected]> | 2010-09-12 20:55:09 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2010-09-13 17:26:41 +0200 |
commit | 1f1411f2ccc7f808d181c09f925b0780306a05ca (patch) | |
tree | 26febe9a4a5354030444d87a60c8a398292b8517 /src/gallium/drivers/nv50/nv50_pc.c | |
parent | cca3906a9b1d994c431ceeccccbde0ce87a2f6b4 (diff) |
nv50: interp cannot write flags reg
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_pc.c')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_pc.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv50/nv50_pc.c b/src/gallium/drivers/nv50/nv50_pc.c index c934450d424..78aca8fd563 100644 --- a/src/gallium/drivers/nv50/nv50_pc.c +++ b/src/gallium/drivers/nv50/nv50_pc.c @@ -170,6 +170,27 @@ nv50_supported_src_mods(uint opcode, int s) } } +/* We may want an opcode table. */ +boolean +nv50_op_can_write_flags(uint opcode) +{ + if (nv_is_vector_op(opcode)) + return FALSE; + switch (opcode) { /* obvious ones like KIL, CALL, etc. not included */ + case NV_OP_PHI: + case NV_OP_MOV: + case NV_OP_LINTERP: + case NV_OP_PINTERP: + case NV_OP_LDA: + return FALSE; + default: + break; + } + if (opcode >= NV_OP_RCP && opcode <= NV_OP_PREEX2) + return FALSE; + return TRUE; +} + int nv_nvi_refcount(struct nv_instruction *nvi) { |