diff --git a/bddisasm/include/instructions.h b/bddisasm/include/instructions.h index 69b4097..eca5284 100644 --- a/bddisasm/include/instructions.h +++ b/bddisasm/include/instructions.h @@ -7569,7 +7569,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7586,7 +7586,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7603,7 +7603,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7620,7 +7620,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7638,7 +7638,7 @@ const ND_INSTRUCTION gInstructions[2589] = { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), OP(ND_OPT_GPR_rCX, ND_OPS_asz, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), }, }, @@ -7655,7 +7655,7 @@ const ND_INSTRUCTION gInstructions[2589] = { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), OP(ND_OPT_GPR_rCX, ND_OPS_asz, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), }, }, @@ -7671,7 +7671,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7688,7 +7688,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7705,7 +7705,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7722,7 +7722,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7853,7 +7853,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7870,7 +7870,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7887,7 +7887,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7904,7 +7904,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7921,7 +7921,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7938,7 +7938,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7955,7 +7955,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7972,7 +7972,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -7989,7 +7989,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8006,7 +8006,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8023,7 +8023,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8040,7 +8040,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8057,7 +8057,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8074,7 +8074,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8091,7 +8091,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8108,7 +8108,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8125,7 +8125,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8142,7 +8142,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8159,7 +8159,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8176,7 +8176,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8194,7 +8194,7 @@ const ND_INSTRUCTION gInstructions[2589] = { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), OP(ND_OPT_GPR_rCX, ND_OPS_asz, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), }, }, @@ -8210,7 +8210,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8227,7 +8227,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8244,7 +8244,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -8261,7 +8261,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -9914,7 +9914,7 @@ const ND_INSTRUCTION gInstructions[2589] = { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), OP(ND_OPT_GPR_rCX, ND_OPS_asz, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -9932,7 +9932,7 @@ const ND_INSTRUCTION gInstructions[2589] = { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), OP(ND_OPT_GPR_rCX, ND_OPS_asz, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -9950,7 +9950,7 @@ const ND_INSTRUCTION gInstructions[2589] = { OP(ND_OPT_J, ND_OPS_b, 0, ND_OPA_R, 0, 0), OP(ND_OPT_GPR_rCX, ND_OPS_asz, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), - OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_CRCW, 0, 0), OP(ND_OPT_F, ND_OPS_v, ND_OPF_DEFAULT, ND_OPA_R, 0, 0), }, }, @@ -42827,7 +42827,7 @@ const ND_INSTRUCTION gInstructions[2589] = 0, { OP(ND_OPT_J, ND_OPS_z, 0, ND_OPA_R, 0, 0), - OP(ND_OPT_RIP, ND_OPS_yf, ND_OPF_DEFAULT, ND_OPA_RW, 0, 0), + OP(ND_OPT_RIP, ND_OPS_yf, ND_OPF_DEFAULT, ND_OPA_RCW, 0, 0), OP(ND_OPT_GPR_rAX, ND_OPS_d, ND_OPF_DEFAULT, ND_OPA_CW, 0, 0), }, }, diff --git a/bddisasm_test/basic/branch_16.result b/bddisasm_test/basic/branch_16.result index 115f6c2..14bbd63 100644 --- a/bddisasm_test/basic/branch_16.result +++ b/bddisasm_test/basic/branch_16.result @@ -487,7 +487,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: Flags, RegSize: 2, RegId: 0, RegCount: 1 000000000000005B 73fe JNC 0x5b @@ -505,7 +505,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: Flags, RegSize: 2, RegId: 0, RegCount: 1 000000000000005D e2fe LOOP 0x5d @@ -524,7 +524,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: General Purpose, RegSize: 2, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: Flags, RegSize: 2, RegId: 0, RegCount: 1 000000000000005F e0fe LOOPNZ 0x5f @@ -543,7 +543,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: General Purpose, RegSize: 2, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: Flags, RegSize: 2, RegId: 0, RegCount: 1 0000000000000061 e3fe JCXZ 0x61 @@ -560,7 +560,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: General Purpose, RegSize: 2, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 0000000000000063 67e3fd JECXZ 0x63 DSIZE: 16, ASIZE: 32, VLEN: - @@ -576,7 +576,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: IP, RegSize: 2, RegId: 0, RegCount: 1 0000000000000066 cd21 INT 0x21 DSIZE: 16, ASIZE: 16, VLEN: - diff --git a/bddisasm_test/basic/branch_32.result b/bddisasm_test/basic/branch_32.result index df8a93e..34262ca 100644 --- a/bddisasm_test/basic/branch_32.result +++ b/bddisasm_test/basic/branch_32.result @@ -487,7 +487,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: Flags, RegSize: 4, RegId: 0, RegCount: 1 0000000000000059 73fe JNC 0x59 @@ -505,7 +505,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: Flags, RegSize: 4, RegId: 0, RegCount: 1 000000000000005B e2fe LOOP 0x5b @@ -524,7 +524,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: Flags, RegSize: 4, RegId: 0, RegCount: 1 000000000000005D e0fe LOOPNZ 0x5d @@ -543,7 +543,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: Flags, RegSize: 4, RegId: 0, RegCount: 1 000000000000005F 67e3fd JCXZ 0x5f @@ -560,7 +560,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 2, RawSize: 2, Encoding: S, RegType: General Purpose, RegSize: 2, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 0000000000000062 e3fe JECXZ 0x62 DSIZE: 32, ASIZE: 32, VLEN: - @@ -576,7 +576,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: IP, RegSize: 4, RegId: 0, RegCount: 1 0000000000000064 cd21 INT 0x21 DSIZE: 32, ASIZE: 32, VLEN: - diff --git a/bddisasm_test/basic/branch_64.result b/bddisasm_test/basic/branch_64.result index 6aa86c6..26c896d 100644 --- a/bddisasm_test/basic/branch_64.result +++ b/bddisasm_test/basic/branch_64.result @@ -267,7 +267,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000027 73fe JNC 0x27 @@ -285,7 +285,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000029 e2fe LOOP 0x29 @@ -304,7 +304,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000002B e0fe LOOPNZ 0x2b @@ -323,7 +323,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000002D e3fe JRCXZ 0x2d @@ -340,7 +340,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 000000000000002F 67e3fd JECXZ 0x2f DSIZE: 64, ASIZE: 32, VLEN: - @@ -356,7 +356,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 0000000000000032 cd21 INT 0x21 DSIZE: 32, ASIZE: 64, VLEN: - diff --git a/bddisasm_test/basic/prefixes_64.result b/bddisasm_test/basic/prefixes_64.result index 1df1011..32c248b 100644 --- a/bddisasm_test/basic/prefixes_64.result +++ b/bddisasm_test/basic/prefixes_64.result @@ -513,7 +513,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 0000000000000079 48e300 JRCXZ 0x7c DSIZE: 64, ASIZE: 64, VLEN: - @@ -529,7 +529,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 000000000000007C 67e300 JECXZ 0x7f DSIZE: 64, ASIZE: 32, VLEN: - @@ -545,7 +545,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: R-, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 000000000000007F 67a4 MOVSB DSIZE: 32, ASIZE: 32, VLEN: - @@ -1314,7 +1314,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000011B 3e7200 BHT JC 0x11e @@ -1332,7 +1332,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: yes, BHINT: yes, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000011E f2e800000000 BND CALL 0x124 diff --git a/bddisasm_test/basic/tsx_64.result b/bddisasm_test/basic/tsx_64.result index e4bbc74..0b8862f 100644 --- a/bddisasm_test/basic/tsx_64.result +++ b/bddisasm_test/basic/tsx_64.result @@ -12,7 +12,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 4, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: RCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: CW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 0000000000000006 0f01d6 XTEST diff --git a/bddisasm_test/special/amx_64.result b/bddisasm_test/special/amx_64.result index f7a4b60..9903006 100644 --- a/bddisasm_test/special/amx_64.result +++ b/bddisasm_test/special/amx_64.result @@ -15,7 +15,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000003 5e POP rsi @@ -96,7 +96,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000010 5e POP rsi @@ -177,7 +177,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000001D 5e POP rsi @@ -297,7 +297,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000002A 5e POP rsi @@ -378,7 +378,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000037 4b009090909090 ADD byte ptr [r8-0x6f6f6f70], dl @@ -456,7 +456,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000044 4b009090909090 ADD byte ptr [r8-0x6f6f6f70], dl @@ -534,7 +534,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000051 4b009090909090 ADD byte ptr [r8-0x6f6f6f70], dl @@ -612,7 +612,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000005E 49009090909090 ADD byte ptr [r8-0x6f6f6f70], dl @@ -690,7 +690,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 000000000000006B 49009090909090 ADD byte ptr [r8-0x6f6f6f70], dl @@ -768,7 +768,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000078 4b0400 ADD al, 0x00 @@ -910,7 +910,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000086 4b0400 ADD al, 0x00 @@ -1052,7 +1052,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000094 4b0400 ADD al, 0x00 @@ -1194,7 +1194,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 00000000000000A2 4b8400 TEST byte ptr [r8], al @@ -1375,7 +1375,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 00000000000000B4 4b8400 TEST byte ptr [r8], al @@ -1556,7 +1556,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 00000000000000C6 4b8400 TEST byte ptr [r8], al @@ -1737,7 +1737,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 00000000000000D8 49c0909090909090 RCL byte ptr [r8-0x6f6f6f70], 0x90 @@ -1802,7 +1802,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 00000000000000E5 49c0909090909090 RCL byte ptr [r8-0x6f6f6f70], 0x90 @@ -1867,7 +1867,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 00000000000000F2 49f8 CLC diff --git a/bddisasm_test/special/avx2gather_1_64.result b/bddisasm_test/special/avx2gather_1_64.result index 3f37c58..79d1352 100644 --- a/bddisasm_test/special/avx2gather_1_64.result +++ b/bddisasm_test/special/avx2gather_1_64.result @@ -15,7 +15,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000003 91 XCHG ecx, eax diff --git a/bddisasm_test/special/avx2gather_2_64.result b/bddisasm_test/special/avx2gather_2_64.result index 31840eb..642fdbe 100644 --- a/bddisasm_test/special/avx2gather_2_64.result +++ b/bddisasm_test/special/avx2gather_2_64.result @@ -15,7 +15,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000003 91 XCHG ecx, eax diff --git a/bddisasm_test/special/avx2gather_3_64.result b/bddisasm_test/special/avx2gather_3_64.result index a576998..abdec74 100644 --- a/bddisasm_test/special/avx2gather_3_64.result +++ b/bddisasm_test/special/avx2gather_3_64.result @@ -15,7 +15,7 @@ BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 8, RawSize: 1, Encoding: D Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: General Purpose, RegSize: 8, RegId: 1, RegCount: 1 - Operand: 2, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 2, Acc: CRCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 3, Acc: R-, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: Flags, RegSize: 8, RegId: 0, RegCount: 1 0000000000000003 91 XCHG ecx, eax diff --git a/bddisasm_test/special/regressions_64.result b/bddisasm_test/special/regressions_64.result index 35ce346..ef9731d 100644 --- a/bddisasm_test/special/regressions_64.result +++ b/bddisasm_test/special/regressions_64.result @@ -12,7 +12,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 2, RawSize: 2, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: RCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: CW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 0000000000000006 26c7f800000000 XBEGIN 0xd @@ -29,7 +29,7 @@ HLE: no, XACQUIRE only: no, XRELEASE only: no BND: no, BHINT: no, DNT: no Operand: 0, Acc: R-, Type: Offset, Size: 4, RawSize: 4, Encoding: D - Operand: 1, Acc: RW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 + Operand: 1, Acc: RCW, Type: Register, Size: 8, RawSize: 8, Encoding: S, RegType: IP, RegSize: 8, RegId: 0, RegCount: 1 Operand: 2, Acc: CW, Type: Register, Size: 4, RawSize: 4, Encoding: S, RegType: General Purpose, RegSize: 4, RegId: 0, RegCount: 1 000000000000000D 660f01d9 VMMCALL diff --git a/bdshemu/bdshemu.c b/bdshemu/bdshemu.c index 73bab73..8746fdc 100644 --- a/bdshemu/bdshemu.c +++ b/bdshemu/bdshemu.c @@ -103,6 +103,7 @@ enum // // ShemuPrintf - simple version // +#ifndef BDDISASM_NO_FORMAT static void shemu_printf( SHEMU_CONTEXT *Context, @@ -127,6 +128,9 @@ shemu_printf( Context->Log(buff); } +#else +#define shemu_printf(Context, formatstring, ...) +#endif // !BDDISASM_NO_FORMAT // @@ -1031,6 +1035,12 @@ ShemuSetMemValue( { addr = Context->Shellcode; offset = (uint32_t)(Gla - Context->ShellcodeBase); + + // Bypass self-writes, if needed to. + if (!!(Context->Options & SHEMU_OPT_BYPASS_SELF_WRITES)) + { + return SHEMU_SUCCESS; + } } else if (ShemuIsStackPtr(Context, Gla, Size)) { diff --git a/inc/bdshemu.h b/inc/bdshemu.h index 1453e9c..62b6c7e 100644 --- a/inc/bdshemu.h +++ b/inc/bdshemu.h @@ -263,6 +263,10 @@ typedef unsigned int SHEMU_STATUS; // #define SHEMU_OPT_TRACE_EMULATION 0x00000001 // Trace each emulated instruction. #define SHEMU_OPT_STOP_ON_EXPLOIT 0x00000002 // When shellcode indications are confirmed, stop emulation. +#define SHEMU_OPT_BYPASS_SELF_WRITES 0x00000004 // When a shellcode self-modifies, the modification will + // not be committed. Use this when emulating an already + // decoded shellcode, where emulating the decryption again + // will in fact scramble the shellcode and make it useless. #define SHEMU_OPT_SUPPORT_AES 0x00010000 // Indicates that AES instructions are supported, and // therefore, the AES intrinsics can be used to emulate // AES decryption. diff --git a/inc/version.h b/inc/version.h index fa0326d..b90a39d 100644 --- a/inc/version.h +++ b/inc/version.h @@ -7,6 +7,6 @@ #define DISASM_VERSION_MAJOR 1 #define DISASM_VERSION_MINOR 32 -#define DISASM_VERSION_REVISION 1 +#define DISASM_VERSION_REVISION 3 #endif // DISASM_VER_H diff --git a/isagenerator/instructions/table_0F.dat b/isagenerator/instructions/table_0F.dat index b18ae8e..77d5432 100644 --- a/isagenerator/instructions/table_0F.dat +++ b/isagenerator/instructions/table_0F.dat @@ -428,22 +428,22 @@ RSTS Ms nil [ cyrix 0x0F 0x7D /r SMINT nil nil [ cyrix 0x0F 0x7E] s:CYRIX_SMM, t:SEGOP # 0x80 - 0x8F -JO Jz rIP,Fv [ 0x0F 0x80 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CO, a:F64|COND, p:BND|BH -JNO Jz rIP,Fv [ 0x0F 0x81 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNO, a:F64|COND, p:BND|BH -JC Jz rIP,Fv [ 0x0F 0x82 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CC, a:F64|COND, p:BND|BH -JNC Jz rIP,Fv [ 0x0F 0x83 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNC, a:F64|COND, p:BND|BH -JZ Jz rIP,Fv [ 0x0F 0x84 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CZ, a:F64|COND, p:BND|BH -JNZ Jz rIP,Fv [ 0x0F 0x85 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNZ, a:F64|COND, p:BND|BH -JBE Jz rIP,Fv [ 0x0F 0x86 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CBE, a:F64|COND, p:BND|BH -JNBE Jz rIP,Fv [ 0x0F 0x87 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNBE, a:F64|COND, p:BND|BH -JS Jz rIP,Fv [ 0x0F 0x88 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CS, a:F64|COND, p:BND|BH -JNS Jz rIP,Fv [ 0x0F 0x89 cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNS, a:F64|COND, p:BND|BH -JP Jz rIP,Fv [ 0x0F 0x8A cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CP, a:F64|COND, p:BND|BH -JNP Jz rIP,Fv [ 0x0F 0x8B cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNP, a:F64|COND, p:BND|BH -JL Jz rIP,Fv [ 0x0F 0x8C cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CL, a:F64|COND, p:BND|BH -JNL Jz rIP,Fv [ 0x0F 0x8D cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNL, a:F64|COND, p:BND|BH -JLE Jz rIP,Fv [ 0x0F 0x8E cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CLE, a:F64|COND, p:BND|BH -JNLE Jz rIP,Fv [ 0x0F 0x8F cz] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNLE, a:F64|COND, p:BND|BH +JO Jz rIP,Fv [ 0x0F 0x80 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CO, a:F64|COND, p:BND|BH +JNO Jz rIP,Fv [ 0x0F 0x81 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNO, a:F64|COND, p:BND|BH +JC Jz rIP,Fv [ 0x0F 0x82 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CC, a:F64|COND, p:BND|BH +JNC Jz rIP,Fv [ 0x0F 0x83 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNC, a:F64|COND, p:BND|BH +JZ Jz rIP,Fv [ 0x0F 0x84 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CZ, a:F64|COND, p:BND|BH +JNZ Jz rIP,Fv [ 0x0F 0x85 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNZ, a:F64|COND, p:BND|BH +JBE Jz rIP,Fv [ 0x0F 0x86 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CBE, a:F64|COND, p:BND|BH +JNBE Jz rIP,Fv [ 0x0F 0x87 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNBE, a:F64|COND, p:BND|BH +JS Jz rIP,Fv [ 0x0F 0x88 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CS, a:F64|COND, p:BND|BH +JNS Jz rIP,Fv [ 0x0F 0x89 cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNS, a:F64|COND, p:BND|BH +JP Jz rIP,Fv [ 0x0F 0x8A cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CP, a:F64|COND, p:BND|BH +JNP Jz rIP,Fv [ 0x0F 0x8B cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNP, a:F64|COND, p:BND|BH +JL Jz rIP,Fv [ 0x0F 0x8C cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CL, a:F64|COND, p:BND|BH +JNL Jz rIP,Fv [ 0x0F 0x8D cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNL, a:F64|COND, p:BND|BH +JLE Jz rIP,Fv [ 0x0F 0x8E cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CLE, a:F64|COND, p:BND|BH +JNLE Jz rIP,Fv [ 0x0F 0x8F cz] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNLE, a:F64|COND, p:BND|BH # 0x90 - 0x9F SETO Eb Fv [ 0x0F 0x90 /r] s:I386, t:BITBYTE, c:SETcc, w:W|R, f:CO, a:COND diff --git a/isagenerator/instructions/table_base.dat b/isagenerator/instructions/table_base.dat index 46fc42a..076e599 100644 --- a/isagenerator/instructions/table_base.dat +++ b/isagenerator/instructions/table_base.dat @@ -140,22 +140,22 @@ OUTSD DX,Xz aSI,Fv [ 0x6F] s:I86 OUTSD DX,Xz aCX,aSI,Fv [ rep 0x6F] s:I86, t:IOSTRINGOP, c:OUTS, w:R|CR|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX # 0x70 - 0x7F -JO Jb rIP,Fv [ 0x70 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CO, a:F64|COND, p:BND|BH -JNO Jb rIP,Fv [ 0x71 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNO, a:F64|COND, p:BND|BH -JC Jb rIP,Fv [ 0x72 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CC, a:F64|COND, p:BND|BH -JNC Jb rIP,Fv [ 0x73 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNC, a:F64|COND, p:BND|BH -JZ Jb rIP,Fv [ 0x74 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CZ, a:F64|COND, p:BND|BH -JNZ Jb rIP,Fv [ 0x75 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNZ, a:F64|COND, p:BND|BH -JBE Jb rIP,Fv [ 0x76 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CBE, a:F64|COND, p:BND|BH -JNBE Jb rIP,Fv [ 0x77 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNBE, a:F64|COND, p:BND|BH -JS Jb rIP,Fv [ 0x78 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CS, a:F64|COND, p:BND|BH -JNS Jb rIP,Fv [ 0x79 cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNS, a:F64|COND, p:BND|BH -JP Jb rIP,Fv [ 0x7A cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CP, a:F64|COND, p:BND|BH -JNP Jb rIP,Fv [ 0x7B cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNP, a:F64|COND, p:BND|BH -JL Jb rIP,Fv [ 0x7C cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CL, a:F64|COND, p:BND|BH -JNL Jb rIP,Fv [ 0x7D cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNL, a:F64|COND, p:BND|BH -JLE Jb rIP,Fv [ 0x7E cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CLE, a:F64|COND, p:BND|BH -JNLE Jb rIP,Fv [ 0x7F cb] s:I86, t:COND_BR, c:Jcc, w:R|RW|R, f:CNLE, a:F64|COND, p:BND|BH +JO Jb rIP,Fv [ 0x70 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CO, a:F64|COND, p:BND|BH +JNO Jb rIP,Fv [ 0x71 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNO, a:F64|COND, p:BND|BH +JC Jb rIP,Fv [ 0x72 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CC, a:F64|COND, p:BND|BH +JNC Jb rIP,Fv [ 0x73 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNC, a:F64|COND, p:BND|BH +JZ Jb rIP,Fv [ 0x74 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CZ, a:F64|COND, p:BND|BH +JNZ Jb rIP,Fv [ 0x75 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNZ, a:F64|COND, p:BND|BH +JBE Jb rIP,Fv [ 0x76 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CBE, a:F64|COND, p:BND|BH +JNBE Jb rIP,Fv [ 0x77 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNBE, a:F64|COND, p:BND|BH +JS Jb rIP,Fv [ 0x78 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CS, a:F64|COND, p:BND|BH +JNS Jb rIP,Fv [ 0x79 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNS, a:F64|COND, p:BND|BH +JP Jb rIP,Fv [ 0x7A cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CP, a:F64|COND, p:BND|BH +JNP Jb rIP,Fv [ 0x7B cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNP, a:F64|COND, p:BND|BH +JL Jb rIP,Fv [ 0x7C cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CL, a:F64|COND, p:BND|BH +JNL Jb rIP,Fv [ 0x7D cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNL, a:F64|COND, p:BND|BH +JLE Jb rIP,Fv [ 0x7E cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CLE, a:F64|COND, p:BND|BH +JNLE Jb rIP,Fv [ 0x7F cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNLE, a:F64|COND, p:BND|BH # 0x80 - 0x8F ADD Eb,Ib Fv [ 0x80 /0 ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK @@ -333,7 +333,7 @@ LDS Gz,Mp DS [ 0xC5 /r:mem] s:I86 MOV Eb,Ib nil [ 0xC6 /0 ib] s:I86, t:DATAXFER, w:W|R, p:XRELEASE|HLEWOL XABORT Ib EAX [ 0xC6 /0xF8 ib] s:TSX, t:UNCOND_BR, w:R|RCW, i:RTM, m:NOTSX MOV Ev,Iz nil [ 0xC7 /0 iz] s:I86, t:DATAXFER, w:W|R, a:OP2SEXO1, p:XRELEASE|HLEWOL -XBEGIN Jz yIP,EAX [ 0xC7 /0xF8 cz] s:TSX, t:COND_BR, w:R|RW|CW, i:RTM +XBEGIN Jz yIP,EAX [ 0xC7 /0xF8 cz] s:TSX, t:COND_BR, w:R|RCW|CW, i:RTM ENTER Iw,Ib rBP,sSP,Kv [ 0xC8 iw ib] s:I186, t:MISC, w:R|R|RW|RW|W, a:D64 LEAVE nil sBP,rBP,rSP,Kv [ 0xC9] s:I186, t:MISC, w:R|RW|RW|R, a:D64 RETF Iw CS,rIP,Kv2,SHS2 [ 0xCA iw] s:I86, t:RET, w:R|W|W|R|R @@ -384,12 +384,12 @@ SALC nil AL,Fv [ 0xD6] s:I86 XLATB nil AL,pBXALb [ 0xD7] s:I86, t:MISC, w:W|R # 0xE0 - 0xEF -LOOPNZ Jb aCX,rIP,Fv [ 0xE0 cb] s:I86, t:COND_BR, w:R|RW|RW|R, f:ZF=t, a:F64 -LOOPZ Jb aCX,rIP,Fv [ 0xE1 cb] s:I86, t:COND_BR, w:R|RW|RW|R, f:ZF=t, a:F64 -LOOP Jb aCX,rIP,Fv [ 0xE2 cb] s:I86, t:COND_BR, w:R|RW|RW|R, a:F64 -JCXZ Jb aCX,rIP [ as16 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|RW, a:F64 -JECXZ Jb aCX,rIP [ as32 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|RW, a:F64 -JRCXZ Jb aCX,rIP [ as64 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|RW, a:F64 +LOOPNZ Jb aCX,rIP,Fv [ 0xE0 cb] s:I86, t:COND_BR, w:R|RW|CRCW|R, f:ZF=t, a:F64 +LOOPZ Jb aCX,rIP,Fv [ 0xE1 cb] s:I86, t:COND_BR, w:R|RW|CRCW|R, f:ZF=t, a:F64 +LOOP Jb aCX,rIP,Fv [ 0xE2 cb] s:I86, t:COND_BR, w:R|RW|CRCW|R, a:F64 +JCXZ Jb aCX,rIP [ as16 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|CRCW, a:F64 +JECXZ Jb aCX,rIP [ as32 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|CRCW, a:F64 +JRCXZ Jb aCX,rIP [ as64 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|CRCW, a:F64 IN AL,Ib Fv [ 0xE4 ib] s:I86, t:IO, w:W|R|R, f:IO, m:NOSGX IN eAX,Ib Fv [ 0xE5 ib] s:I86, t:IO, w:W|R|R, f:IO, m:NOSGX OUT Ib,AL Fv [ 0xE6 ib] s:I86, t:IO, w:R|R|R, f:IO, a:SERIAL, m:NOSGX