This will be used in the ddx/ddy support for "Am I the top half?" or "Am I
the left half?" checks.
[QFILE_FRAG_X] = "frag_x",
[QFILE_FRAG_Y] = "frag_y",
[QFILE_FRAG_REV_FLAG] = "frag_rev_flag",
+ [QFILE_QPU_ELEMENT] = "elem",
};
switch (reg.file) {
QFILE_FRAG_X,
QFILE_FRAG_Y,
QFILE_FRAG_REV_FLAG,
+ QFILE_QPU_ELEMENT,
/**
* Stores an immediate value in the index field that will be used
case QFILE_FRAG_X:
case QFILE_FRAG_Y:
case QFILE_FRAG_REV_FLAG:
+ case QFILE_QPU_ELEMENT:
case QFILE_SMALL_IMM:
case QFILE_LOAD_IMM:
fail_instr(c, inst, "Bad dest file");
case QFILE_UNIF:
case QFILE_VPM:
case QFILE_LOAD_IMM:
+ case QFILE_QPU_ELEMENT:
break;
case QFILE_SMALL_IMM:
case QFILE_FRAG_REV_FLAG:
src[i] = qpu_rb(QPU_R_MS_REV_FLAGS);
break;
+ case QFILE_QPU_ELEMENT:
+ src[i] = qpu_ra(QPU_R_ELEM_QPU);
+ break;
case QFILE_TLB_COLOR_WRITE:
case QFILE_TLB_COLOR_WRITE_MS:
case QFILE_FRAG_X:
case QFILE_FRAG_Y:
case QFILE_FRAG_REV_FLAG:
+ case QFILE_QPU_ELEMENT:
assert(!"not reached");
break;
}