如何使用ARM64程序集执行浮点运算,例如加法,减法,乘法和除法?
我尝试过
static double __attribute__((naked, pure)) MyASMAdd(double sub1, double sub2) {
#ifndef __arm__
asm(" ADD x0, x0, x1");
asm(" RET");
#endif
}
如上所述,如果我使用两个double或float操作,则结果将始终是第一个参数如3.2 + 4.6,应等于7.8,但答案是3.2。在其他情况下也是如此。但是,如果我对两个参数都使用int,则可以获得所需的结果。
static int __attribute__((naked, pure)) MyASMAdd(int sub1, int sub2) {
#ifndef __arm__
asm(" ADD x0, x0, x1");
asm(" RET");
#endif
}