mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
nouveau/mme: Add support for freeing registers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
parent
d83fb1d29c
commit
54fd3604ef
1 changed files with 16 additions and 1 deletions
|
|
@ -178,7 +178,15 @@ mme_imm64(uint64_t imm)
|
|||
static inline uint8_t
|
||||
__mme_alloc_reg(struct mme_builder *b)
|
||||
{
|
||||
return b->reg_alloc++;
|
||||
uint8_t reg = ffs(~b->reg_alloc) - 1;
|
||||
b->reg_alloc |= (1u << reg);
|
||||
return reg;
|
||||
}
|
||||
|
||||
static inline void
|
||||
__mme_free_reg(struct mme_builder *b, uint8_t reg)
|
||||
{
|
||||
b->reg_alloc &= ~(1u << reg);
|
||||
}
|
||||
|
||||
static inline struct mme_value
|
||||
|
|
@ -191,6 +199,13 @@ mme_alloc_reg(struct mme_builder *b)
|
|||
return val;
|
||||
}
|
||||
|
||||
static inline void
|
||||
mme_free_reg(struct mme_builder *b, struct mme_value val)
|
||||
{
|
||||
assert(val.type == MME_VALUE_TYPE_REG);
|
||||
__mme_free_reg(b, val.reg);
|
||||
}
|
||||
|
||||
static inline struct mme_value
|
||||
mme_tu104_alu(struct mme_builder *b,
|
||||
enum mme_tu104_alu_op op,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue