summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv50/nv50_pc.h
diff options
context:
space:
mode:
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-09-16 14:47:44 +0200
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>2010-09-16 14:49:23 +0200
commit3a62365f402b1159afd526fb4b510cdb51de1365 (patch)
tree29c48ea4570967a69532fa239d939bfd5ffdfb6e /src/gallium/drivers/nv50/nv50_pc.h
parente0aa7e043803b10f503440ed088d89b67f5fd66f (diff)
nv50: get shader fixups/relocations into working state
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_pc.h')
-rw-r--r--src/gallium/drivers/nv50/nv50_pc.h27
1 files changed, 3 insertions, 24 deletions
diff --git a/src/gallium/drivers/nv50/nv50_pc.h b/src/gallium/drivers/nv50/nv50_pc.h
index fd2799eba1..2ead80430b 100644
--- a/src/gallium/drivers/nv50/nv50_pc.h
+++ b/src/gallium/drivers/nv50/nv50_pc.h
@@ -295,28 +295,6 @@ struct nv_basic_block {
uint32_t live_set[NV_PC_MAX_VALUES / 32];
};
-#define NV_FIXUP_CFLOW_RELOC 0
-#define NV_FIXUP_PARAM_RELOC 1
-
-struct nv_fixup {
- ubyte type;
- ubyte shift;
- uint32_t mask;
- uint32_t data;
- uint32_t offset;
-};
-
-static INLINE void
-nv_fixup_apply(uint32_t *bin, struct nv_fixup *fixup, uint32_t data)
-{
- uint32_t val;
-
- val = bin[fixup->offset / 4] & ~fixup->mask;
- data = (fixup->shift < 0) ? (data >> fixup->shift) : (data << fixup->shift);
- val |= (fixup->data + data) & fixup->mask;
- bin[fixup->offset / 4] = val;
-}
-
struct nv50_translation_info;
struct nv_pc {
@@ -346,8 +324,8 @@ struct nv_pc {
unsigned bin_size;
unsigned bin_pos;
- struct nv_fixup *fixups;
- int num_fixups;
+ void *fixups;
+ unsigned num_fixups;
/* optimization enables */
boolean opt_reload_elim;
@@ -471,6 +449,7 @@ nv_reference(struct nv_pc *pc, struct nv_ref **d, struct nv_value *s)
/* nv50_emit.c */
void nv50_emit_instruction(struct nv_pc *, struct nv_instruction *);
+unsigned nv50_inst_min_size(struct nv_instruction *);
/* nv50_print.c */
const char *nv_opcode_name(uint opcode);