Skip to content

Commit dba0a4f

Browse files
authored
Update read/written registers for x86 string instructions (#2790)
* stosb/w/d/q stosq only reads/writes rcx when there is a rep prefix. With regard to reading 'es' in 64-bit mode, the SDM says for stosd For legacy mode, store EAX at address ES:(E)DI; For 64-bit mode store EAX at address RDI or EDI. * lodsb/w/d/q With regard to reading 'ds' in 64-bit mode, the SDM says for lodsd For legacy mode, Load dword at address DS:(E)SI into EAX. For 64-bit mode load dword at address (R)SI into EAX. * scasb/w/d/q X86_REG_ES was removed from the explicit set of read registers because it was causing duplicate entries in 'detail->regs_read'. With regard to reading 'es' in 64-bit mode, the SDM says for scasd Compare EAX with doubleword at ES:(E)DI or RDI then set status flags. * cmpsb/w/d/q The 'es' register is implicitly handled correctly. The 'ds' register should only be read from in 16- and 32-bit mode. From the SDM for cmpsd: For legacy mode, compare dword at address DS:(E)SI with dword at address ES:(E)DI; For 64-bit mode compare dword at address (R|E)SI with dword at address (R|E)DI. The status flags are set accordingly. * movsb/w/d/q The 'es' register is implicitly handled correctly. The 'ds' register should only be read from in 16- and 32-bit mode. From the SDM for movsd: For legacy mode, move dword from address DS:(E)SI to ES:(E)DI. For 64-bit mode move dword from address (R|E)SI to (R|E)DI. * insb/w/d/q X86_REG_EDI was removed from the explicit set of read registers because it was causing duplicate entries in 'detail->regs_read'. The 'ds' register should only be read from in 16- and 32-bit mode. From the SDM for insd: Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. * outsb/w/d/q The 'ds' register should only be read from in 16- and 32-bit mode. From the SDM for outsd: Output word from memory location specified in DS:(E)SI or RSI to I/O port specified in DX.
1 parent 0b61957 commit dba0a4f

File tree

6 files changed

+1253
-42
lines changed

6 files changed

+1253
-42
lines changed

arch/X86/X86Mapping.c

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1018,6 +1018,7 @@ void X86_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
10181018
break;
10191019

10201020
case X86_INS_SCASB:
1021+
case X86_INS_SCASD:
10211022
case X86_INS_SCASW:
10221023
case X86_INS_SCASQ:
10231024
case X86_INS_STOSB:
@@ -1114,7 +1115,6 @@ void X86_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
11141115
insn->detail->regs_read,
11151116
insn->detail->regs_read_count,
11161117
X86_REG_ESP, X86_REG_SP);
1117-
11181118
arr_replace(
11191119
insn->detail->regs_write,
11201120
insn->detail->regs_write_count,
@@ -1141,7 +1141,93 @@ void X86_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
11411141
insn->detail->regs_write,
11421142
insn->detail->regs_write_count,
11431143
X86_REG_ESP, X86_REG_RSP);
1144+
}
1145+
break;
1146+
1147+
case X86_INS_INSB:
1148+
case X86_INS_INSW:
1149+
case X86_INS_INSD:
1150+
switch (h->mode) {
1151+
default:
1152+
break;
1153+
case CS_MODE_16:
1154+
arr_replace(
1155+
insn->detail->regs_read,
1156+
insn->detail->regs_read_count,
1157+
X86_REG_EDI, X86_REG_DI);
1158+
arr_replace(
1159+
insn->detail->regs_write,
1160+
insn->detail->regs_write_count,
1161+
X86_REG_EDI, X86_REG_DI);
1162+
break;
1163+
case CS_MODE_64:
1164+
arr_replace(
1165+
insn->detail->regs_read,
1166+
insn->detail->regs_read_count,
1167+
X86_REG_EDI, X86_REG_RDI);
1168+
arr_replace(
1169+
insn->detail->regs_write,
1170+
insn->detail->regs_write_count,
1171+
X86_REG_EDI, X86_REG_RDI);
1172+
break;
1173+
}
1174+
break;
1175+
1176+
case X86_INS_OUTSB:
1177+
case X86_INS_OUTSW:
1178+
case X86_INS_OUTSD:
1179+
switch (h->mode) {
1180+
default:
1181+
break;
1182+
case CS_MODE_64:
1183+
arr_replace(
1184+
insn->detail->regs_read,
1185+
insn->detail->regs_read_count,
1186+
X86_REG_ESI, X86_REG_RSI);
1187+
arr_replace(
1188+
insn->detail->regs_write,
1189+
insn->detail->regs_write_count,
1190+
X86_REG_ESI, X86_REG_RSI);
1191+
break;
1192+
case CS_MODE_16:
1193+
arr_replace(
1194+
insn->detail->regs_read,
1195+
insn->detail->regs_read_count,
1196+
X86_REG_ESI, X86_REG_SI);
1197+
arr_replace(
1198+
insn->detail->regs_write,
1199+
insn->detail->regs_write_count,
1200+
X86_REG_ESI, X86_REG_SI);
1201+
break;
1202+
}
1203+
break;
1204+
}
1205+
1206+
switch (insn->id) {
1207+
default:
1208+
break;
1209+
case X86_INS_LODSB:
1210+
case X86_INS_LODSD:
1211+
case X86_INS_LODSW:
1212+
case X86_INS_CMPSB:
1213+
case X86_INS_CMPSD:
1214+
case X86_INS_CMPSW:
1215+
case X86_INS_MOVSB:
1216+
case X86_INS_MOVSW:
1217+
case X86_INS_MOVSD:
1218+
case X86_INS_OUTSB:
1219+
case X86_INS_OUTSW:
1220+
case X86_INS_OUTSD:
1221+
switch (h->mode) {
1222+
default:
11441223
break;
1224+
case CS_MODE_16:
1225+
case CS_MODE_32: {
1226+
int pos = insn->detail->regs_read_count;
1227+
insn->detail->regs_read[pos] =
1228+
X86_REG_DS;
1229+
insn->detail->regs_read_count += 1;
1230+
} break;
11451231
}
11461232
break;
11471233
}

arch/X86/X86MappingInsn.inc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6229,7 +6229,7 @@
62296229
{
62306230
X86_INSB, X86_INS_INSB, 0,
62316231
#ifndef CAPSTONE_DIET
6232-
{ X86_REG_DX, X86_REG_EDI, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, 0 }, { 0 }, 0, 0
6232+
{ X86_REG_DX, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, 0 }, { 0 }, 0, 0
62336233
#endif
62346234
},
62356235

@@ -6271,7 +6271,7 @@
62716271
{
62726272
X86_INSW, X86_INS_INSW, 0,
62736273
#ifndef CAPSTONE_DIET
6274-
{ X86_REG_DX, X86_REG_EDI, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, 0 }, { 0 }, 0, 0
6274+
{ X86_REG_DX, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, 0 }, { 0 }, 0, 0
62756275
#endif
62766276
},
62776277

@@ -7909,28 +7909,28 @@
79097909
{
79107910
X86_LODSB, X86_INS_LODSB, 0,
79117911
#ifndef CAPSTONE_DIET
7912-
{ X86_REG_ESI, X86_REG_DS, X86_REG_EFLAGS, 0 }, { X86_REG_AL, X86_REG_ESI, 0 }, { 0 }, 0, 0
7912+
{ X86_REG_ESI, X86_REG_EFLAGS, 0 }, { X86_REG_AL, X86_REG_ESI, 0 }, { 0 }, 0, 0
79137913
#endif
79147914
},
79157915

79167916
{
79177917
X86_LODSL, X86_INS_LODSD, 0,
79187918
#ifndef CAPSTONE_DIET
7919-
{ X86_REG_ESI, X86_REG_DS, X86_REG_EFLAGS, 0 }, { X86_REG_EAX, X86_REG_ESI, 0 }, { 0 }, 0, 0
7919+
{ X86_REG_ESI, X86_REG_EFLAGS, 0 }, { X86_REG_EAX, X86_REG_ESI, 0 }, { 0 }, 0, 0
79207920
#endif
79217921
},
79227922

79237923
{
79247924
X86_LODSQ, X86_INS_LODSQ, 0,
79257925
#ifndef CAPSTONE_DIET
7926-
{ X86_REG_ESI, X86_REG_DS, X86_REG_EFLAGS, 0 }, { X86_REG_RAX, X86_REG_ESI, 0 }, { 0 }, 0, 0
7926+
{ X86_REG_ESI, X86_REG_EFLAGS, 0 }, { X86_REG_RAX, X86_REG_ESI, 0 }, { 0 }, 0, 0
79277927
#endif
79287928
},
79297929

79307930
{
79317931
X86_LODSW, X86_INS_LODSW, 0,
79327932
#ifndef CAPSTONE_DIET
7933-
{ X86_REG_ESI, X86_REG_DS, X86_REG_EFLAGS, 0 }, { X86_REG_AX, X86_REG_ESI, 0 }, { 0 }, 0, 0
7933+
{ X86_REG_ESI, X86_REG_EFLAGS, 0 }, { X86_REG_AX, X86_REG_ESI, 0 }, { 0 }, 0, 0
79347934
#endif
79357935
},
79367936

@@ -16568,28 +16568,28 @@
1656816568
{
1656916569
X86_SCASB, X86_INS_SCASB, 0,
1657016570
#ifndef CAPSTONE_DIET
16571-
{ X86_REG_AL, X86_REG_EDI, X86_REG_EFLAGS, X86_REG_ES, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
16571+
{ X86_REG_AL, X86_REG_EDI, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
1657216572
#endif
1657316573
},
1657416574

1657516575
{
1657616576
X86_SCASL, X86_INS_SCASD, 0,
1657716577
#ifndef CAPSTONE_DIET
16578-
{ X86_REG_EAX, X86_REG_EDI, X86_REG_EFLAGS, X86_REG_ES, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
16578+
{ X86_REG_EAX, X86_REG_EDI, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
1657916579
#endif
1658016580
},
1658116581

1658216582
{
1658316583
X86_SCASQ, X86_INS_SCASQ, 0,
1658416584
#ifndef CAPSTONE_DIET
16585-
{ X86_REG_RAX, X86_REG_EDI, X86_REG_EFLAGS, X86_REG_ES, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
16585+
{ X86_REG_RAX, X86_REG_EDI, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
1658616586
#endif
1658716587
},
1658816588

1658916589
{
1659016590
X86_SCASW, X86_INS_SCASW, 0,
1659116591
#ifndef CAPSTONE_DIET
16592-
{ X86_REG_AX, X86_REG_EDI, X86_REG_EFLAGS, X86_REG_ES, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
16592+
{ X86_REG_AX, X86_REG_EDI, X86_REG_EFLAGS, 0 }, { X86_REG_EDI, X86_REG_EFLAGS, 0 }, { 0 }, 0, 0
1659316593
#endif
1659416594
},
1659516595

@@ -17835,7 +17835,7 @@
1783517835
{
1783617836
X86_STOSQ, X86_INS_STOSQ, 0,
1783717837
#ifndef CAPSTONE_DIET
17838-
{ X86_REG_RAX, X86_REG_RCX, X86_REG_RDI, X86_REG_EFLAGS, 0 }, { X86_REG_RCX, X86_REG_RDI, 0 }, { 0 }, 0, 0
17838+
{ X86_REG_RAX, X86_REG_RDI, X86_REG_EFLAGS, 0 }, { X86_REG_RDI, 0 }, { 0 }, 0, 0
1783917839
#endif
1784017840
},
1784117841

arch/X86/X86MappingInsnOp.inc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2709,7 +2709,7 @@
27092709
},
27102710

27112711
{ /* X86_CMPSB, X86_INS_CMPSB: cmpsb */
2712-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2712+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
27132713
{ CS_AC_READ, CS_AC_READ, 0 }
27142714
},
27152715

@@ -2744,12 +2744,12 @@
27442744
},
27452745

27462746
{ /* X86_CMPSL, X86_INS_CMPSD: cmpsd */
2747-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2747+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
27482748
{ CS_AC_IGNORE, CS_AC_IGNORE, 0 }
27492749
},
27502750

27512751
{ /* X86_CMPSQ, X86_INS_CMPSQ: cmpsq */
2752-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2752+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
27532753
{ CS_AC_READ, CS_AC_READ, 0 }
27542754
},
27552755

@@ -2784,7 +2784,7 @@
27842784
},
27852785

27862786
{ /* X86_CMPSW, X86_INS_CMPSW: cmpsw */
2787-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2787+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
27882788
{ CS_AC_READ, CS_AC_READ, 0 }
27892789
},
27902790

@@ -4449,7 +4449,7 @@
44494449
},
44504450

44514451
{ /* X86_INSB, X86_INS_INSB: insb */
4452-
0,
4452+
X86_EFLAGS_TEST_DF,
44534453
{ CS_AC_IGNORE, CS_AC_READ, 0 }
44544454
},
44554455

@@ -4474,12 +4474,12 @@
44744474
},
44754475

44764476
{ /* X86_INSL, X86_INS_INSD: insd */
4477-
0,
4477+
X86_EFLAGS_TEST_DF,
44784478
{ CS_AC_IGNORE, 0 }
44794479
},
44804480

44814481
{ /* X86_INSW, X86_INS_INSW: insw */
4482-
0,
4482+
X86_EFLAGS_TEST_DF,
44834483
{ CS_AC_IGNORE, CS_AC_READ, 0 }
44844484
},
44854485

@@ -11834,22 +11834,22 @@
1183411834
},
1183511835

1183611836
{ /* X86_SCASB, X86_INS_SCASB: scasb */
11837-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
11837+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
1183811838
{ CS_AC_READ, CS_AC_READ, 0 }
1183911839
},
1184011840

1184111841
{ /* X86_SCASL, X86_INS_SCASD: scasd */
11842-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
11842+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
1184311843
{ CS_AC_READ, CS_AC_READ, 0 }
1184411844
},
1184511845

1184611846
{ /* X86_SCASQ, X86_INS_SCASQ: scasq */
11847-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
11847+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
1184811848
{ CS_AC_READ, CS_AC_READ, 0 }
1184911849
},
1185011850

1185111851
{ /* X86_SCASW, X86_INS_SCASW: scasw */
11852-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
11852+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
1185311853
{ CS_AC_READ, CS_AC_READ, 0 }
1185411854
},
1185511855

arch/X86/X86MappingInsnOp_reduce.inc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2029,22 +2029,22 @@
20292029
},
20302030

20312031
{ /* X86_CMPSB, X86_INS_CMPSB: cmpsb */
2032-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2032+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
20332033
{ CS_AC_READ, CS_AC_READ, 0 }
20342034
},
20352035

20362036
{ /* X86_CMPSL, X86_INS_CMPSD: cmpsd */
2037-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2037+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
20382038
{ CS_AC_IGNORE, CS_AC_IGNORE, 0 }
20392039
},
20402040

20412041
{ /* X86_CMPSQ, X86_INS_CMPSQ: cmpsq */
2042-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2042+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
20432043
{ CS_AC_READ, CS_AC_READ, 0 }
20442044
},
20452045

20462046
{ /* X86_CMPSW, X86_INS_CMPSW: cmpsw */
2047-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
2047+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
20482048
{ CS_AC_READ, CS_AC_READ, 0 }
20492049
},
20502050

@@ -2564,17 +2564,17 @@
25642564
},
25652565

25662566
{ /* X86_INSB, X86_INS_INSB: insb */
2567-
0,
2567+
X86_EFLAGS_TEST_DF,
25682568
{ CS_AC_IGNORE, CS_AC_READ, 0 }
25692569
},
25702570

25712571
{ /* X86_INSL, X86_INS_INSD: insd */
2572-
0,
2572+
X86_EFLAGS_TEST_DF,
25732573
{ CS_AC_IGNORE, 0 }
25742574
},
25752575

25762576
{ /* X86_INSW, X86_INS_INSW: insw */
2577-
0,
2577+
X86_EFLAGS_TEST_DF,
25782578
{ CS_AC_IGNORE, CS_AC_READ, 0 }
25792579
},
25802580

@@ -5939,22 +5939,22 @@
59395939
},
59405940

59415941
{ /* X86_SCASB, X86_INS_SCASB: scasb */
5942-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
5942+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
59435943
{ CS_AC_READ, CS_AC_READ, 0 }
59445944
},
59455945

59465946
{ /* X86_SCASL, X86_INS_SCASD: scasd */
5947-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
5947+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
59485948
{ CS_AC_READ, CS_AC_READ, 0 }
59495949
},
59505950

59515951
{ /* X86_SCASQ, X86_INS_SCASQ: scasq */
5952-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
5952+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
59535953
{ CS_AC_READ, CS_AC_READ, 0 }
59545954
},
59555955

59565956
{ /* X86_SCASW, X86_INS_SCASW: scasw */
5957-
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF,
5957+
X86_EFLAGS_MODIFY_OF | X86_EFLAGS_MODIFY_SF | X86_EFLAGS_MODIFY_ZF | X86_EFLAGS_MODIFY_AF | X86_EFLAGS_MODIFY_PF | X86_EFLAGS_MODIFY_CF | X86_EFLAGS_TEST_DF,
59585958
{ CS_AC_READ, CS_AC_READ, 0 }
59595959
},
59605960

0 commit comments

Comments
 (0)