我如何告诉 gcc 我的内联汇编破坏了堆栈的一部分?
How do I tell gcc that my inline assembly clobbers part of the stack?
像这样考虑内联汇编:
uint64_t flags;
asm ("pushf\n\tpop %0" : "=rm"(flags) : : /* ??? */);
尽管可能存在某种内在函数来获取 RFLAGS 的内容,但我如何向编译器指示我的内联汇编破坏了堆栈顶部的一个四字内存?
据我所知,目前这是不可能的。
像这样考虑内联汇编:
uint64_t flags;
asm ("pushf\n\tpop %0" : "=rm"(flags) : : /* ??? */);
尽管可能存在某种内在函数来获取 RFLAGS 的内容,但我如何向编译器指示我的内联汇编破坏了堆栈顶部的一个四字内存?
据我所知,目前这是不可能的。