如何将标签的地址加载到PowerPC的寄存器中

时间:2019-02-20 06:55:48

标签: inline-assembly powerpc

在一段内联汇编代码中,将标签地址加载到寄存器中的最佳方法是什么?

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

1 个答案:

答案 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;
}