x86系统中的浮点操作转换为ARMV8 System中的一个系统

问题描述 投票:0回答:1

我读了一些有关浮点操作的内联汇编C代码。代码如下。

__asm__ __volatile__ ("fninit);
//There are some other in line assembly here, I omit them because they have nothing to do with my question.
__asm__ __volatile__ ("fcomp %st");
这些代码在X86系统中运行。但是,我想将这些代码更改为可以在ARMV8系统中运行的代码。

首先,我想知道上述代码的含义。其次,我想知道如何更改上述代码以使其在ARMV8系统中运行。

floating-point x86 stack arm inline-assembly
1个回答
0
投票
解释了X87 FPU的工作原理,当英特尔Insn Ref手册不告诉您这些件如何结合在一起时,这是有用的参考。 我将其添加到X86标签Wiki.

您自己独自为Asm. 您确定您甚至需要在ASM中写任何东西,而不仅仅是让编译器这样做? 如果您不需要设置舍入模式,或设置有限的精度或任何内容,则只需使用Cdouble

float

是@notlikethat评论:
您不能以孤立的方式向单个说明端口。 这不会有用,尤其是对于诸如to的古怪说明,这些说明非常特定于在特定体系结构上管理寄存器状态。 X87是寄存器堆栈与其他所有其他寄存器的库存库,这是一个巨大的差异。 (例如X86上的SSE2和VFP或霓虹灯)
    


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.