radeonsi uses 32bit address.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22525>
Temp base = bld.as_uniform(get_ssa_temp(ctx, instr->src[0].ssa));
Temp offset = bld.as_uniform(get_ssa_temp(ctx, instr->src[1].ssa));
+ /* If base address is 32bit, convert to 64bit with the high 32bit part. */
+ if (base.bytes() == 4) {
+ base = bld.pseudo(aco_opcode::p_create_vector, bld.def(s2),
+ base, Operand::c32(ctx->options->address32_hi));
+ }
+
aco_opcode opcode = aco_opcode::s_load_dword;
unsigned size = 1;