X86 XRSTOR指令详解

时间:2024-04-03 09:10:16

1.SDM指令功能描述:
RFBM[0..7] 是xcr0 & eax的值
XMODIFIED[0..7]指定了fpu相关的寄存器是否被更改过 SDM没有说明这个隐式寄存器如何更改
XINUES[0..7]指定了fpu相关寄存器的状态不是是init
X86 XRSTOR指令详解

XRSTOR有两种”形式”–standard或compacted 由XCOMP_BV的第63位来指定
0 – standard form
1 – compacted form
这两种mode都有init和modified的优化
X86 XRSTOR指令详解

standard form下
如果rfbm[0-3]是1且xstate_bv[0-3]中的位是0的话则设置成初始化态
如果rfbm[0-3]是1且xstate_bv[0-3]中相应位是1则从内存操作数中读取相应数据写入到寄存器中

ompacted form下
如果rfbm[0-3]是1且xstate_bv[0-3]中的位是0的话则设置成初始化态
如果rfbm[0-3]是1且xstate_bv[0-3]中相应位是1则从内存操作数中读取相应数据写入到寄存器中
注意1:在compacted form下有内存的优化
X86 XRSTOR指令详解

注意2: 在compacted form下 只要xstate_bv[1]是1 则会加载mscsr,这个地方是compacted form和standard form的一个区别,standard form还需要查看xstate_bv[2]的值才能确定是否加载mscsr