这一系列的 PowerPC 指令在做什么?

What is this series of PowerPC instructions doing?

我是 PowerPC 的业余爱好者,这是我第一次遇到这样的事情。

lis r10, loc_13462@h
addi r10, r10, loc_13462@l
stw r10, 0xE0+var_80(r1)

真的很奇怪。我唯一的猜测是它可能正在执行它而不是 r3 作为 return,它使用 r10 然后将它存储在堆栈中,但这没有意义,因为它可以用相同数量的指令完成。这个对吗?如果不是,请解释它在做什么,因为我迷路了。

不确定您对什么感到困惑。它正在将地址加载到 r10 中,然后大概将其存储在局部变量中。 lis/addi 对是加载立即词的普通习语。

it can be done in the same amount of instructions

下次你可以向我们展示这些说明。另外,如果是同样的数量,你为什么认为那个版本会更好?