海湾合作委员会大会"+ t"

Joe*_* J. 5 c c++ x86 assembly gcc

我目前正在使用旧编译器(大约2004年的GCC)在C++中测试一些内联汇编,我想在浮点数上执行平方根函数.在尝试并搜索成功的方法后,我遇到了以下代码

float r3(float n){
    __asm__("fsqrt" : "+t" (n));
    return n;
};
Run Code Online (Sandbox Code Playgroud)

哪个有效.问题是,即使我理解所使用的汇编指令,我也无法找到关于该"+t"标志对n变量的含义的任何特定文档.我真的认为它似乎是一种将变量n视为输入和输出变量的方式,但我无法找到它的任何信息.那么,"t"旗帜究竟是什么?它在这里如何运作?

小智 3

+

表示该操作数既可以由指令读取也可以写入。(从这里)

t

80387 浮点堆栈顶部 (%st(0))。(从这里)