使用xmm寄存器来保存通用寄存器是否安全?

时间:2012-07-24 12:09:51

标签: assembly inline-assembly

        pushf       //couldnt store this in other registers 
        movd xmm0,eax//storing in xmm registers instead of   pushing
        movd xmm1,ebx//
        movd xmm2,ecx//
        movd xmm3,edx//
        movd xmm4,edi//end of push backups
        .
        .//doing work
        .
        movd edi,xmm4//pop edi
        movd edx,xmm3//pop edx
        movd ecx,xmm2//pop ecx
        movd ebx,xmm1//pop ebx
        movd eax,xmm0//pop eax
        popf

比我的计算机中的push eax版本快50%。这样安全吗?

1 个答案:

答案 0 :(得分:4)

是的,只要您(或您正在调用的某些代码)在此期间不使用XMM regs进行任何其他操作。实际上,这个技巧通常在RAM init之前的BIOS代码中使用。