我正在尝试编写一个语句( GCCasm
中的内联汇编),它只调用一些函数,在浮点寄存器中返回一个值并且没有操作数,但可能会破坏所有浮点寄存器。
asm("call *%1"
: "=t"(result_)
: "d"(code_.data())
: "memory", "cc", "ax", "%st(1)", "%st(2)", "%st(3)", "%st(4)", "%st(5)", "%st(6)", "%st(7)"
);
我的问题是我不能告诉汇编器,这也破坏了顶部的浮点寄存器%st(0)
,因为我不能在 clobber 列表中指定"%st(0)"
(或"%st"
)(这会导致编译错误)。