freedreno/ir3: shuffle a few ir3_register fields
It makes life easier for postsched to always be able to rely on wrmask. Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3569>
This commit is contained in:
parent
95831e2f66
commit
f0b792ea06
|
@ -102,6 +102,22 @@ struct ir3_register {
|
||||||
|
|
||||||
} flags;
|
} flags;
|
||||||
|
|
||||||
|
/* used for cat5 instructions, but also for internal/IR level
|
||||||
|
* tracking of what registers are read/written by an instruction.
|
||||||
|
* wrmask may be a bad name since it is used to represent both
|
||||||
|
* src and dst that touch multiple adjacent registers.
|
||||||
|
*/
|
||||||
|
unsigned wrmask : 16; /* up to vec16 */
|
||||||
|
|
||||||
|
/* for relative addressing, 32bits for array size is too small,
|
||||||
|
* but otoh we don't need to deal with disjoint sets, so instead
|
||||||
|
* use a simple size field (number of scalar components).
|
||||||
|
*
|
||||||
|
* Note the size field isn't important for relative const (since
|
||||||
|
* we don't have to do register allocation for constants).
|
||||||
|
*/
|
||||||
|
unsigned size : 15;
|
||||||
|
|
||||||
bool merged : 1; /* half-regs conflict with full regs (ie >= a6xx) */
|
bool merged : 1; /* half-regs conflict with full regs (ie >= a6xx) */
|
||||||
|
|
||||||
/* normal registers:
|
/* normal registers:
|
||||||
|
@ -129,20 +145,6 @@ struct ir3_register {
|
||||||
* back to a previous instruction that we depend on).
|
* back to a previous instruction that we depend on).
|
||||||
*/
|
*/
|
||||||
struct ir3_instruction *instr;
|
struct ir3_instruction *instr;
|
||||||
|
|
||||||
union {
|
|
||||||
/* used for cat5 instructions, but also for internal/IR level
|
|
||||||
* tracking of what registers are read/written by an instruction.
|
|
||||||
* wrmask may be a bad name since it is used to represent both
|
|
||||||
* src and dst that touch multiple adjacent registers.
|
|
||||||
*/
|
|
||||||
unsigned wrmask;
|
|
||||||
/* for relative addressing, 32bits for array size is too small,
|
|
||||||
* but otoh we don't need to deal with disjoint sets, so instead
|
|
||||||
* use a simple size field (number of scalar components).
|
|
||||||
*/
|
|
||||||
unsigned size;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue