关于NIOS II中C语言内嵌汇编操作64位数的问题
时间:10-02
整理:3721RD
点击:
下面是一段代码:
功能: /* equivalent to return (sum + ((__int64)x * y)); */
//ARM中的代码
static __inline __int64 MADD64(__int64 sum, int x, int y)
{
unsigned int sumLo = ((unsigned int *)&sum)[0];
int sumHi = ((int *)&sum)[1];
__asm {
mov eax, x
imul y
add eax, sumLo
adc edx, sumHi
}
/* equivalent to return (sum + ((__int64)x * y)); */
}
//NIOS II中的代码
static __inline __int64 MADD64(__int64 sum, int x, int y)
{
return (sum + ((__int64)x * y));
}
现在想提高速度,用NIOS II的C语言内嵌汇编重新实现上面的函数,但是其中涉及到了64位数,请问
怎么实现上述函数。
功能: /* equivalent to return (sum + ((__int64)x * y)); */
//ARM中的代码
static __inline __int64 MADD64(__int64 sum, int x, int y)
{
unsigned int sumLo = ((unsigned int *)&sum)[0];
int sumHi = ((int *)&sum)[1];
__asm {
mov eax, x
imul y
add eax, sumLo
adc edx, sumHi
}
/* equivalent to return (sum + ((__int64)x * y)); */
}
//NIOS II中的代码
static __inline __int64 MADD64(__int64 sum, int x, int y)
{
return (sum + ((__int64)x * y));
}
现在想提高速度,用NIOS II的C语言内嵌汇编重新实现上面的函数,但是其中涉及到了64位数,请问
怎么实现上述函数。
请教高手
