nv50: address regs are 16 bit
This commit is contained in:
@@ -171,12 +171,14 @@ nv_value_allocated(struct nv_value *value)
|
||||
static INLINE void
|
||||
nv_print_address(const char c, int buf, struct nv_value *a, int offset)
|
||||
{
|
||||
const char ac = (a && nv_value_allocated(a)) ? '$' : '%';
|
||||
|
||||
if (buf >= 0)
|
||||
PRINT(" %s%c%i[", cyan, c, buf);
|
||||
else
|
||||
PRINT(" %s%c[", cyan, c);
|
||||
if (a)
|
||||
PRINT("%s$a%i%s+", mgta, nv_value_id(a), cyan);
|
||||
PRINT("%s%ca%i%s+", mgta, ac, nv_value_id(a), cyan);
|
||||
PRINT("%s0x%x%s]", orng, offset, cyan);
|
||||
}
|
||||
|
||||
|
||||
@@ -674,6 +674,7 @@ bld_get_address(struct bld_context *bld, int id, struct nv_value *indirect)
|
||||
|
||||
bld->saved_addr[i][0] = bld_load_imm_u32(bld, id);
|
||||
bld->saved_addr[i][0]->reg.file = NV_FILE_ADDR;
|
||||
bld->saved_addr[i][0]->reg.type = NV_TYPE_U16;
|
||||
bld->saved_addr[i][1] = indirect;
|
||||
return bld->saved_addr[i][0];
|
||||
}
|
||||
@@ -967,6 +968,7 @@ emit_store(struct bld_context *bld, const struct tgsi_full_instruction *inst,
|
||||
case TGSI_FILE_ADDRESS:
|
||||
assert(reg->Register.Index < BLD_MAX_ADDRS);
|
||||
value->reg.file = NV_FILE_ADDR;
|
||||
value->reg.type = NV_TYPE_U16;
|
||||
STORE_ADDR(reg->Register.Index, chan, value);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user