Assembly SPARC v8:本地寄存器的使用

Assembly SPARC v8:本地寄存器的使用,assembly,sparc,Assembly,Sparc,我使用汇编程序与高级语言混合。我可以使用本地寄存器(l0到l7)进行编程吗?因为我有两个观察 编译器生成的机器代码没有本地寄存器 由陷阱模型使用的寄存器l0到l3 考虑到以上两点,我可以使用本地寄存器进行汇编编程吗 提前感谢。您是指GNU C中C函数内的内联asm吗?使用诸如“=r”之类的约束让编译器进行寄存器分配。但是是的,如果这是在一个中断处理程序中或者中断被禁用,你可以手动使用编译器永远不会选择的寄存器,我猜。我对SPARC了解不够,无法写出答案。你确定你的编译器没有使用l0-l7?表示%

我使用汇编程序与高级语言混合。我可以使用本地寄存器(l0到l7)进行编程吗?因为我有两个观察

  • 编译器生成的机器代码没有本地寄存器
  • 由陷阱模型使用的寄存器l0到l3
  • 考虑到以上两点,我可以使用本地寄存器进行汇编编程吗

    提前感谢。

    您是指GNU C中C函数内的内联asm吗?使用诸如
    “=r”
    之类的约束让编译器进行寄存器分配。但是是的,如果这是在一个中断处理程序中或者中断被禁用,你可以手动使用编译器永远不会选择的寄存器,我猜。我对SPARC了解不够,无法写出答案。你确定你的编译器没有使用
    l0-l7
    ?表示
    %l0..%l7
    (又称
    %r16–%r23
    )用于标准ABI中函数内部的正常使用。我原以为陷阱处理会使用SPARC的寄存器窗口来访问它可以使用的一些寄存器。