GLuint i915_emit_decl(struct i915_fragment_program *p, GLuint type, GLuint nr, GLuint d0_flags) { GLuint reg = UREG(type, nr); if (type == REG_TYPE_T) { if (p->decl_t & (1 << nr)) return reg; p->decl_t |= (1 << nr); } else if (type == REG_TYPE_S) { if (p->decl_s & (1 << nr)) return reg; p->decl_s |= (1 << nr); } else return reg; *(p->decl++) = (D0_DCL | D0_DEST(reg) | d0_flags); *(p->decl++) = D1_MBZ; *(p->decl++) = D2_MBZ; p->nr_decl_insn++; return reg; }
uint i915_emit_decl(struct i915_fp_compile *p, uint type, uint nr, uint d0_flags) { uint reg = UREG(type, nr); if (type == REG_TYPE_T) { if (p->decl_t & (1 << nr)) return reg; p->decl_t |= (1 << nr); } else if (type == REG_TYPE_S) { if (p->decl_s & (1 << nr)) return reg; p->decl_s |= (1 << nr); } else return reg; if (p->decl< p->declarations + I915_PROGRAM_SIZE) { *(p->decl++) = (D0_DCL | D0_DEST(reg) | d0_flags); *(p->decl++) = D1_MBZ; *(p->decl++) = D2_MBZ; } else i915_program_error(p, "Out of declarations"); p->nr_decl_insn++; return reg; }