I don't know SPARC assembly but it must have load indirect from address in register. Just load the constant to register and then load memory from that constant address
Update demo:
void set_register(int x)
{
volatile int* const reg = (volatile int*)0xA033C000;
*reg = x;
}
Assembly output
set_register:
save %sp, -96, %sp
sethi 2624752, %i1
st %i0, [%i1]
ret
restore