请问一个关于浮点处理的问题

发布于 2022-09-18 22:24:12 字数 195 浏览 12 评论 0

用的处理器是SPARC体系结构,想把long double类型的数据处理成128位的,用-mhard-

quad-float选项只能得到64位的处理结果,如:
执行加法指令,只能得到faddd的汇编指令,
请问,如何才能将long double类型的数据加法处理成faddq这种类型的指令?

期待大家的解答,多谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

静水深流 2022-09-25 22:24:12

什么编译器?
是gcc吗?
如果是gcc的话,我不知道最新的gcc是否支持硬件级的128bit
这是man gcc的结果
-msoft-quad-float
           Generate output containing library calls for quad-word (long double) floating point instructions.  The functions called are those specified in
           the SPARC ABI.  This is the default.

           As of this writing, there are no SPARC implementations that have hardware support for the quad-word floating point instructions.  They all
           invoke a trap handler for one of these instructions, and then the trap handler emulates the effect of the instruction.  Because of the trap
           handler overhead, this is much slower than calling the ABI library routines.  Thus the -msoft-quad-float option is the default.
2006-6-16

滿滿的愛 2022-09-25 22:24:12

多谢版主cjaizss的回答.
是用的GCC,从手册上看是有选项-mhard-quad-float的,只是用了这个选项之后,还是按照64位处理的,也就是long double的变量的加还是处理成faddd,不知道如何才能够处理成faddq,因为faddq才是处理quad类型的数据的。
选项-mhard-quad-float为何没起作用?
多谢!

小…红帽 2022-09-25 22:24:12

原帖由 danate 于 2008-5-5 00:45 发表
多谢版主cjaizss的回答.
是用的GCC,从手册上看是有选项-mhard-quad-float的,只是用了这个选项之后,还是按照64位处理的,也就是long double的变量的加还是处理成faddd,不知道如何才能够处理成faddq,因为fa ...

把示例代码和gcc 的编译命令贴上来.

蓝礼 2022-09-25 22:24:12

把示例代码和gcc 的编译命令贴上来.

a.c:

long double a = 1.0;
long double b = 2.0;
long double c = 1.0;

c = a + b;

编译命令:
gcc -mfpu -mhard-quad-float -mcpu=v8 a.c

请问:如何将c = a + b;翻译为可以使用faddq指令?我查看反汇编之后的结果是使用的faddd指令。

雨轻弹 2022-09-25 22:24:12

原帖由 danate 于 2008-5-5 13:16 发表

a.c:

long double a = 1.0;
long double b = 2.0;
long double c = 1.0;

c = a + b;

编译命令:
gcc -mfpu -mhard-quad-float -mcpu=v8 a.c

请问:如何将c = a + b;翻译为可以使用f ...

将a,b 的其中一个扩大到64bit的最大值,或使a+b超出64bit的最大纸看看.

[ 本帖最后由 system888net 于 2008-5-5 13:56 编辑 ]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文