海湾合作委员会大会"+t"
GCC Assembly "+t"
本文关键字:委员会 更新时间:2023-10-16
我目前正在旧编译器(GCC 大约 2004 年(上测试一些C++的内联程序集,我想在浮点数上执行平方根函数。在尝试并搜索成功的方法后,我遇到了以下代码
float r3(float n){
__asm__("fsqrt" : "+t" (n));
return n;
};
这奏效了。问题是,即使我理解所使用的汇编指令,我也无法找到任何关于"+t"
标志在n
变量上的含义的特定文档。我的真实想法是,这似乎是一种将变量n
视为输入和输出变量的方式,但我无法找到有关它的任何信息。那么,"t"
标志到底是什么,它在这里是如何工作的?
+
表示此操作数由指令读取和写入。 (从这里开始(
t
80387 浮点堆栈 (%st(0(( 的顶部。 (从这里开始(
+
表示您正在读取和写入寄存器。
t
表示该值位于 80387 浮点堆栈的顶部。
引用:
- GCC 手册,扩展 Asm 包含有关约束的一般信息 - 搜索"约束">
- GCC 手册,计算机约束包含有关每个体系结构支持的特定约束的信息 - 搜索"x86 系列">
相关文章:
- 海湾合作委员会 ARM 性能下降
- 海湾合作委员会手册中提到的"C++ ABI Specification"是什么?
- 比较 -INT_MIN (海湾合作委员会)
- 使用海湾合作委员会进行消毒,导致意外提前退出
- 为什么海湾合作委员会在实施is_nothrow_constructible时需要static_cast?
- 海湾合作委员会中 -faligned-new 的值
- 如何在进程之间共享大量数据而不重复?(国际刑罚委员会)
- 我们可以直接致电海湾合作委员会的simd_fast_mersenne_twister_engine(sfmt19937_64)吗?
- 如何(以及谁可以)实现C++委员会定义的标准库功能
- 海湾合作委员会在升压源中的警告
- 海湾合作委员会制作的不可拆卸的符号
- "this" Lambda 捕获的是不正确的。海湾合作委员会编译器错误?
- 为什么不能在 Visual C++ 中动态分配堆栈内存?但海湾合作委员会可以做到
- 海湾合作委员会非法指导
- 海湾合作委员会"__builtin_popcount"如何运作?
- 为什么海湾合作委员会抱怨"declaration of 'foo' shadows a previous call [-Werror=shadow]"
- CodeBlocks成功地编译了,但海湾合作委员会失败了,为什么
- 海湾合作委员会和Clang在lambda的constexpr-ness上存在分歧?
- 海湾合作委员会中的通用 lambda
- 写信给工会,与海湾合作委员会