【发布时间】:2014-04-07 14:51:43
【问题描述】:
我正在尝试使用硬件指令来计算一些数学函数。例如平方根(sqrtpd 指令)。我正在用 GCC 编译我的 C 代码。
有谁知道强制使用硬件指令编译而不使用 libc 的 gcc 选项是什么?或者如果我需要对我的源代码做一些特别的事情? (不用写asm代码)。
【问题讨论】:
-
-ffast-math, -march...
我正在尝试使用硬件指令来计算一些数学函数。例如平方根(sqrtpd 指令)。我正在用 GCC 编译我的 C 代码。
有谁知道强制使用硬件指令编译而不使用 libc 的 gcc 选项是什么?或者如果我需要对我的源代码做一些特别的事情? (不用写asm代码)。
【问题讨论】:
最简单的方法是使用优化标志。 -O1 生成
sqrtsd %xmm1, %xmm0
在汇编代码中。尝试将 -S 标志与 gcc 一起使用来生成程序集并查看优化标志的工作原理。
【讨论】:
为什么不直接用汇编代码编写所需的硬件指令。
据我所知,直接用 c 代码编写汇编代码是可能的。它被称为内联汇编。 [见这里:http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html]
【讨论】: