在一段内联汇编代码中,将标签地址加载到寄存器中的最佳方法是什么?
I can do this easily in x86 or ARM. E.g.
lea my_label, %rax ... my_label: ...
In PPC, should I use $PC and relative address to compute the address of the label? How to do that?
Thanks
答案 0 :(得分:0)
好的,它可能比我想象的要复杂。这可能有效:
void* f(void)
{
void* var_reg;
asm volatile(
"lis %[var_reg], my_label@ha\n"
"la %[var_reg], my_label@l(%[var_reg])\n"
"my_label:\n"
: [var_reg]"=&r"(var_reg)
);
return var_reg;
}