一个mips内联汇编的问题
我最近在做一个视频解码器,跑在mips上。代码中有一个求绝对值的函数,调用很频繁,我就把他改写成了内敛汇编以提高解码器性能。可是将改后的汇编函数放到程序里发现解出来的图像和修改之前的不一样。先把汇编函数贴出来:int
abs(int iNum)
{
asm volatile (
"nor $2,$0,%1\n\t"
"addiu $2,$2,1\n\t"
"slti $3,%1,0\n\t"
"movz %0,$2,$3\n\t"
:"=r"(iNum)
:"0"(iNum)
:"$2","$3");
return iNum;
}
我觉得这个函数没错!!难道这段代码会对c代码有影响吗?另外,我想知道,在调用这个函数之前对它的参数进行强制类型转换后会不会影响这段代码
页:
[1]