diff options
author | Christoph Bumiller <[email protected]> | 2010-09-16 14:47:44 +0200 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2010-09-16 14:49:23 +0200 |
commit | 3a62365f402b1159afd526fb4b510cdb51de1365 (patch) | |
tree | 29c48ea4570967a69532fa239d939bfd5ffdfb6e /src/gallium/drivers/nv50/nv50_pc.h | |
parent | e0aa7e043803b10f503440ed088d89b67f5fd66f (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.h | 27 |
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 fd2799eba1e..2ead80430b0 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); |