Carregando um endereço no MIPS64

Provavelmente é uma coisa simples e óbvia que simplesmente não estou vendo, mas como carregar um endereço em um processador MIPS64? Em um processador MIPS32, a seguinte pseudo-instrução do assembler:

la $at, LabelAddr

Expande para:

lui $at, LabelAddr[31:16]
ori $at,$at, LabelAddr[15:0]

Olhando para o conjunto de instruções MIPS64, vejo quelui ainda carrega um imediato de 16 bits na metade superior de uma palavra de 32 bits. Não parece haver nenhum tipo de instrução expandida que carrega um imediato em qualquer lugar na área superior de uma palavra de 64 bits. Parece, então, que fazer o equivalente a umla pseudo-instrução eu precisaria expandir no código algo como:

lui $at, LabelAddr[63:48]
ori $at, $at, LabelAddr[47:32]
sll $at, 16
ori $at, $at, LabelAddr[31:16]
sll $at, 16
ori $at, $at, LabelAddr[15:0]

Isso me parece um pouco ... complicado para algo tão básico quanto carregar um endereço, para que eu me deixe convencido de que esqueci algo.

O que é que eu tenho esquecido (se alguma coisa)?

questionAnswers(2)

yourAnswerToTheQuestion