Implement the rest of the conditional jump instructions and hook them into the decoder.
--HG-- extra : convert_revision : 8d1d6abce29371def560e1c3f31dabb4de01366f
This commit is contained in:
parent
231cc3effb
commit
c3669b8925
3 changed files with 142 additions and 38 deletions
|
@ -214,25 +214,27 @@
|
||||||
0x6: outs_Dx_Xb();
|
0x6: outs_Dx_Xb();
|
||||||
0x7: outs_Dx_Xz();
|
0x7: outs_Dx_Xz();
|
||||||
}
|
}
|
||||||
|
format Inst {
|
||||||
0x0E: decode OPCODE_OP_BOTTOM3 {
|
0x0E: decode OPCODE_OP_BOTTOM3 {
|
||||||
0x0: jo_Jb();
|
0x0: JO(Jb);
|
||||||
0x1: jno_Jb();
|
0x1: JNO(Jb);
|
||||||
0x2: jb_Jb();
|
0x2: JB(Jb);
|
||||||
0x3: Inst::JNB(Jb);
|
0x3: JNB(Jb);
|
||||||
0x4: Inst::JZ(Jb);
|
0x4: JZ(Jb);
|
||||||
0x5: Inst::JNZ(Jb);
|
0x5: JNZ(Jb);
|
||||||
0x6: Inst::JBE(Jb);
|
0x6: JBE(Jb);
|
||||||
0x7: Inst::JNBE(Jb);
|
0x7: JNBE(Jb);
|
||||||
}
|
}
|
||||||
0x0F: decode OPCODE_OP_BOTTOM3 {
|
0x0F: decode OPCODE_OP_BOTTOM3 {
|
||||||
0x0: js_Jb();
|
0x0: JS(Jb);
|
||||||
0x1: jns_Jb();
|
0x1: JNS(Jb);
|
||||||
0x2: jp_Jb();
|
0x2: JP(Jb);
|
||||||
0x3: jnp_Jb();
|
0x3: JNP(Jb);
|
||||||
0x4: jl_Jb();
|
0x4: JL(Jb);
|
||||||
0x5: jnl_Jb();
|
0x5: JNL(Jb);
|
||||||
0x6: jle_Jb();
|
0x6: JLE(Jb);
|
||||||
0x7: Inst::JNLE(Jb);
|
0x7: JNLE(Jb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
0x10: decode OPCODE_OP_BOTTOM3 {
|
0x10: decode OPCODE_OP_BOTTOM3 {
|
||||||
//0x0: group1_Eb_Ib();
|
//0x0: group1_Eb_Ib();
|
||||||
|
|
|
@ -227,25 +227,27 @@
|
||||||
0x6: holder();
|
0x6: holder();
|
||||||
0x7: holder();
|
0x7: holder();
|
||||||
}
|
}
|
||||||
|
format Inst {
|
||||||
0x10: decode OPCODE_OP_BOTTOM3 {
|
0x10: decode OPCODE_OP_BOTTOM3 {
|
||||||
0x0: jo_Jz();
|
0x0: JO(Jz);
|
||||||
0x1: jno_Jz();
|
0x1: JNO(Jz);
|
||||||
0x2: jb_Jz();
|
0x2: JB(Jz);
|
||||||
0x3: Inst::JNB(Jz);
|
0x3: JNB(Jz);
|
||||||
0x4: Inst::JZ(Jz);
|
0x4: JZ(Jz);
|
||||||
0x5: Inst::JNZ(Jz);
|
0x5: JNZ(Jz);
|
||||||
0x6: Inst::JBE(Jz);
|
0x6: JBE(Jz);
|
||||||
0x7: Inst::JNBE(Jz);
|
0x7: JNBE(Jz);
|
||||||
}
|
}
|
||||||
0x11: decode OPCODE_OP_BOTTOM3 {
|
0x11: decode OPCODE_OP_BOTTOM3 {
|
||||||
0x0: js_Jz();
|
0x0: JS(Jz);
|
||||||
0x1: jns_Jz();
|
0x1: JNS(Jz);
|
||||||
0x2: jp_Jz();
|
0x2: JP(Jz);
|
||||||
0x3: jnp_Jz();
|
0x3: JNP(Jz);
|
||||||
0x4: jl_Jz();
|
0x4: JL(Jz);
|
||||||
0x5: jnl_Jz();
|
0x5: JNL(Jz);
|
||||||
0x6: jle_Jz();
|
0x6: JLE(Jz);
|
||||||
0x7: jnle_Jz();
|
0x7: JNLE(Jz);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
0x12: decode OPCODE_OP_BOTTOM3 {
|
0x12: decode OPCODE_OP_BOTTOM3 {
|
||||||
0x0: seto_Eb();
|
0x0: seto_Eb();
|
||||||
|
|
|
@ -74,6 +74,16 @@ def macroop JNZ_I
|
||||||
wrip t1, t2, flags=(nCZF,)
|
wrip t1, t2, flags=(nCZF,)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
def macroop JB_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(CCF,)
|
||||||
|
};
|
||||||
|
|
||||||
def macroop JNB_I
|
def macroop JNB_I
|
||||||
{
|
{
|
||||||
# Make the default data size of jumps 64 bits in 64 bit mode
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
@ -104,6 +114,76 @@ def macroop JNBE_I
|
||||||
wrip t1, t2, flags=(nCCvZF,)
|
wrip t1, t2, flags=(nCCvZF,)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
def macroop JS_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(CSF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JNS_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(nCSF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JP_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(CPF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JNP_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(nCPF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JL_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(CSxOF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JNL_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(nCSxOF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JLE_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(CSxOvZF,)
|
||||||
|
};
|
||||||
|
|
||||||
def macroop JNLE_I
|
def macroop JNLE_I
|
||||||
{
|
{
|
||||||
# Make the default data size of jumps 64 bits in 64 bit mode
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
@ -114,6 +194,26 @@ def macroop JNLE_I
|
||||||
wrip t1, t2, flags=(nCSxOvZF,)
|
wrip t1, t2, flags=(nCSxOvZF,)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
def macroop JO_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(COF,)
|
||||||
|
};
|
||||||
|
|
||||||
|
def macroop JNO_I
|
||||||
|
{
|
||||||
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
.adjust_env oszIn64Override
|
||||||
|
|
||||||
|
rdip t1
|
||||||
|
limm t2, imm
|
||||||
|
wrip t1, t2, flags=(nCOF,)
|
||||||
|
};
|
||||||
|
|
||||||
def macroop JMP_I
|
def macroop JMP_I
|
||||||
{
|
{
|
||||||
# Make the default data size of jumps 64 bits in 64 bit mode
|
# Make the default data size of jumps 64 bits in 64 bit mode
|
||||||
|
|
Loading…
Reference in a new issue