microcode = '''
def macroop SAL_R_I
{
- slli reg, reg, imm
+ slli reg, reg, imm, flags=(SF,ZF,PF)
};
def macroop SAL_M_I
{
ld t1, seg, sib, disp
- slli t1, t1, imm
+ slli t1, t1, imm, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- slli t1, t1, imm
+ slli t1, t1, imm, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SAL_1_R
{
- slli reg, reg, 1
+ slli reg, reg, 1, flags=(SF,ZF,PF)
};
def macroop SAL_1_M
{
ld t1, seg, sib, disp
- slli t1, t1, 1
+ slli t1, t1, 1, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- slli t1, t1, 1
+ slli t1, t1, 1, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SAL_R_R
{
- sll reg, reg, regm
+ sll reg, reg, regm, flags=(SF,ZF,PF)
};
def macroop SAL_M_R
{
ld t1, seg, sib, disp
- sll t1, t1, reg
+ sll t1, t1, reg, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- sll t1, t1, reg
+ sll t1, t1, reg, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SHR_R_I
{
- srli reg, reg, imm
+ srli reg, reg, imm, flags=(SF,ZF,PF)
};
def macroop SHR_M_I
{
ld t1, seg, sib, disp
- srli t1, t1, imm
+ srli t1, t1, imm, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- srli t1, t1, imm
+ srli t1, t1, imm, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SHR_1_R
{
- srli reg, reg, 1
+ srli reg, reg, 1, flags=(SF,ZF,PF)
};
def macroop SHR_1_M
{
ld t1, seg, sib, disp
- srli t1, t1, 1
+ srli t1, t1, 1, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- srli t1, t1, 1
+ srli t1, t1, 1, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SHR_R_R
{
- srl reg, reg, regm
+ srl reg, reg, regm, flags=(SF,ZF,PF)
};
def macroop SHR_M_R
{
ld t1, seg, sib, disp
- srl t1, t1, reg
+ srl t1, t1, reg, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- srl t1, t1, reg
+ srl t1, t1, reg, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SAR_R_I
{
- srai reg, reg, imm
+ srai reg, reg, imm, flags=(SF,ZF,PF)
};
def macroop SAR_M_I
{
ld t1, seg, sib, disp
- srai t1, t1, imm
+ srai t1, t1, imm, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- srai t1, t1, imm
+ srai t1, t1, imm, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SAR_1_R
{
- srai reg, reg, 1
+ srai reg, reg, 1, flags=(SF,ZF,PF)
};
def macroop SAR_1_M
{
ld t1, seg, sib, disp
- srai t1, t1, 1
+ srai t1, t1, 1, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- srai t1, t1, 1
+ srai t1, t1, 1, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
def macroop SAR_R_R
{
- sra reg, reg, regm
+ sra reg, reg, regm, flags=(SF,ZF,PF)
};
def macroop SAR_M_R
{
ld t1, seg, sib, disp
- sra t1, t1, reg
+ sra t1, t1, reg, flags=(SF,ZF,PF)
st t1, seg, sib, disp
};
{
rdip t7
ld t1, seg, riprel, disp
- sra t1, t1, reg
+ sra t1, t1, reg, flags=(SF,ZF,PF)
st t1, seg, riprel, disp
};
'''