X86: Implement SHLD.
This commit is contained in:
parent
3a55fc5cac
commit
4f5270f946
2 changed files with 48 additions and 2 deletions
|
@ -820,8 +820,8 @@
|
|||
Rdx = result.rdx;
|
||||
}});
|
||||
0x3: Inst::BT(Ev,Gv);
|
||||
0x4: shld_Ev_Gv_Ib();
|
||||
0x5: shld_Ev_Gv_rCl();
|
||||
0x4: Inst::SHLD(Ev,Gv,Ib);
|
||||
0x5: Inst::SHLD(Ev,Gv);
|
||||
0x6: xbts_and_cmpxchg();
|
||||
0x7: ibts_and_cmpxchg();
|
||||
}
|
||||
|
|
|
@ -114,6 +114,52 @@ def macroop SAL_P_R
|
|||
st t1, seg, riprel, disp
|
||||
};
|
||||
|
||||
def macroop SHLD_R_R
|
||||
{
|
||||
mdbi regm, 0
|
||||
sld reg, reg, rcx, flags=(CF,OF,SF,ZF,PF)
|
||||
};
|
||||
|
||||
def macroop SHLD_M_R
|
||||
{
|
||||
ldst t1, seg, sib, disp
|
||||
mdbi reg, 0
|
||||
sld t1, t1, rcx, flags=(CF,OF,SF,ZF,PF)
|
||||
st t1, seg, sib, disp
|
||||
};
|
||||
|
||||
def macroop SHLD_P_R
|
||||
{
|
||||
rdip t7
|
||||
ldst t1, seg, riprel, disp
|
||||
mdbi reg, 0
|
||||
sld t1, t1, rcx, flags=(CF,OF,SF,ZF,PF)
|
||||
st t1, seg, riprel, disp
|
||||
};
|
||||
|
||||
def macroop SHLD_R_R_I
|
||||
{
|
||||
mdbi regm, 0
|
||||
sldi reg, reg, imm, flags=(CF,OF,SF,ZF,PF)
|
||||
};
|
||||
|
||||
def macroop SHLD_M_R_I
|
||||
{
|
||||
ldst t1, seg, sib, disp
|
||||
mdbi reg, 0
|
||||
sldi t1, t1, imm, flags=(CF,OF,SF,ZF,PF)
|
||||
st t1, seg, sib, disp
|
||||
};
|
||||
|
||||
def macroop SHLD_P_R_I
|
||||
{
|
||||
rdip t7
|
||||
ldst t1, seg, riprel, disp
|
||||
mdbi reg, 0
|
||||
sldi t1, t1, imm, flags=(CF,OF,SF,ZF,PF)
|
||||
st t1, seg, riprel, disp
|
||||
};
|
||||
|
||||
def macroop SHR_R_I
|
||||
{
|
||||
srli reg, reg, imm, flags=(CF,OF,SF,ZF,PF)
|
||||
|
|
Loading…
Reference in a new issue