Загрузка адреса в MIPS64

Вероятно, это простая, очевидная вещь, которую я просто не вижу, но как мне загрузить адрес в процессор MIPS64? В процессоре MIPS32 следующая псевдоинструкция ассемблера:

la $at, LabelAddr

Расширяется в:

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

Глядя на набор инструкций MIPS64, я вижу, чтоlui по-прежнему загружает 16-битный непосредственно в верхнюю половину 32-битного слова. Похоже, не существует какой-либо расширенной инструкции, которая загружает непосредственно в верхнюю область 64-битного слова. Таким образом, кажется, что сделать эквивалентla псевдоинструкцию, которую мне нужно расширить в код, например:

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]

Это кажется мне немного ... замысловатым для чего-то столь же базового, как загрузка адреса, так что я уверен, что я что-то упустил.

Что я пропустил (если вообще что-нибудь)?

Ответы на вопрос(2)

Ваш ответ на вопрос