freedreno: Fix OUT_REG() on address regs without a .bo supplied.

Sometimes you want to zero out an address by supplying a NULL BO, but
without this we would end up only emitting one dword.  Increases size of
fd6_gmem.o by .8%, though it's not clear to me why (no obvious terrible
codegen happening)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3455>
This commit is contained in:
Eric Anholt 2020-01-17 14:28:13 -08:00 committed by Marge Bot
parent c1327bc283
commit d4bc3c93ea
2 changed files with 4 additions and 0 deletions

View File

@ -179,6 +179,7 @@ class Bitset(object):
print(" fields.unknown | fields.dword,")
if address:
print(" .is_address = true,")
print(" .bo = fields.bo,")
if f.type == "waddress":
print(" .bo_write = true,")

View File

@ -30,6 +30,7 @@ struct fd_reg_pair {
uint32_t reg;
uint64_t value;
struct fd_bo *bo;
bool is_address;
bool bo_write;
uint32_t bo_offset;
uint32_t bo_shift;
@ -68,6 +69,8 @@ struct fd_reg_pair {
fd_ringbuffer_reloc(ring, &reloc); \
} else { \
*p++ = regs[i].value; \
if (regs[i].is_address) \
*p++ = regs[i].value >> 32; \
} \
} \
} while (0)