Skip to content

Commit fe50532

Browse files
committed
Add missing memory operand sizes for certain instructions (fixes #34)
1 parent abc08a5 commit fe50532

File tree

2 files changed

+50
-48
lines changed

2 files changed

+50
-48
lines changed

core/mnemonicList.js

Lines changed: 49 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,13 @@ cltq/cdqe:X 48)98
101101
clac:0F01CA
102102
clc:F8
103103
cld:FC
104-
cldemote:0F1C.0 m
105-
clflush:0FAE.7 m
106-
clflushopt:66)0FAE.7 m
104+
cldemote:0F1C.0 mB
105+
clflush:0FAE.7 mB
106+
clflushopt:66)0FAE.7 mB
107107
cli:FA
108-
clrssbsy:F3)0FAE.6 m
108+
clrssbsy:F3)0FAE.6 mQ
109109
clts:0F06
110-
clwb:66)0FAE.6 m
110+
clwb:66)0FAE.6 mB
111111
cmc:F5
112112
113113
cmppd
@@ -129,8 +129,8 @@ F3)0FC2 ib v >V Vx
129129
F3)0FC2 ib v|l >Vx K {ksf
130130
131131
cmpxchg:0FB0 Rbwlq r
132-
cmpxchg8b:0FC7.1 m
133-
cmpxchg16b:0FC7.1 m#q
132+
cmpxchg8b:0FC7.1 mQ
133+
cmpxchg16b:48)0FC7.1 mX
134134
135135
comisd:66)0F2F v Vx > {sw
136136
comiss:0F2F v Vx > {s
@@ -193,8 +193,8 @@ extractps:66)0F3A17 ib Vx rL > {
193193
194194
f2xm1:D9F0
195195
fabs:D9E1
196-
fbld:DF.4 m
197-
fbstp:DF.6 m
196+
fbld:DF.4 mT
197+
fbstp:DF.6 mT
198198
fchs:D9E0
199199
fclex:9BDBE2
200200
fcmovb:DA.0 F F_0
@@ -247,17 +247,17 @@ fldpi:D9EB
247247
fldlg2:D9EC
248248
fldln2:D9ED
249249
fldz:D9EE
250-
fldcw:D9.5 m
250+
fldcw:D9.5 mW
251251
fldenv:D9.4 m
252252
fnclex:DBE2
253253
fninit:DBE3
254254
fnop:D9D0
255255
fnsave:DD.6 m
256-
fnstcw:D9.7 m
256+
fnstcw:D9.7 mW
257257
fnstenv:D9.6 m
258258
259259
fnstsw
260-
DD.7 m
260+
DD.7 mW
261261
DFE0 R_0W
262262
263263
fpatan:D9F3
@@ -277,18 +277,17 @@ D9.2 ml
277277
DD.2 m$q
278278
DD.2 F
279279
280-
fstcw:9B)D9.7 m
280+
fstcw:9B)D9.7 mW
281281
fstenv:9B)D9.6 m
282282
283283
fstp
284284
D9.3 ml
285285
DD.3 m$q
286+
DB.7 mt
286287
DD.3 F
287288
288-
fstpt:DB.7 m
289-
290289
fstsw
291-
9B)DD.7 m
290+
9B)DD.7 mW
292291
9B)DFE0 R_0W
293292
294293
ftst:D9E4
@@ -396,26 +395,26 @@ kandnd:Vlw 66)0F42 ^K >K K
396395
kandnq:Vlw 0F42 ^K >K K
397396
398397
kmovb
399-
V 66)0F90 k K >
400-
V 66)0F91 K m >
398+
V 66)0F90 k|b K >
399+
V 66)0F91 K m|b >
401400
V 66)0F92 ^Rl K >
402401
V 66)0F93 ^K Rl >
403402
404403
kmovw
405-
V 0F90 k K >
406-
V 0F91 K m >
404+
V 0F90 k|W K >
405+
V 0F91 K m|W >
407406
V 0F92 ^Rl K >
408407
V 0F93 ^K Rl >
409408
410409
kmovd
411-
Vw 66)0F90 k K >
412-
Vw 66)0F91 K m >
410+
Vw 66)0F90 k|l K >
411+
Vw 66)0F91 K m|l >
413412
V F2)0F92 ^Rl K >
414413
V F2)0F93 ^K Rl >
415414
416415
kmovq
417-
Vw 0F90 k K >
418-
Vw 0F91 K m >
416+
Vw 0F90 k|Q K >
417+
Vw 0F91 K m|Q >
419418
V F2)0F92 ^Rq K >
420419
V F2)0F93 ^K Rq >
421420
@@ -475,7 +474,7 @@ lfs:0FB4 m Rwl
475474
lgs:0FB5 m Rwl
476475
477476
lddqu:F2)0FF0 m Vxy >
478-
ldmxcsr:0FAE.2 m >
477+
ldmxcsr:0FAE.2 mL >
479478
lea:8D m Rwlq
480479
leave:C9
481480
lfence:0FAEE8
@@ -559,7 +558,10 @@ movd
559558
66)0F6E rL Vx > {
560559
66)0F7E Vx rL > {
561560
562-
movddup:F2)0F12 v Vxyz > {kzw
561+
movddup
562+
F2)0F12 vx|Q Vx > {kzw
563+
F2)0F12 v Vyz > {kzw
564+
563565
movdiri:0F38F9 Rlq m
564566
movdir64b:66)0F38F8 m RQ
565567
@@ -599,22 +601,22 @@ movdq2q:F2)0FD6 ^Vx VQ
599601
movhlps:0F12 ^Vx >V V {
600602
601603
movhpd
602-
66)0F16 m >V Vx {w
603-
66)0F17 Vx m > {w
604+
66)0F16 mQ >V Vx {w
605+
66)0F17 Vx mQ > {w
604606
605607
movhps
606-
0F16 m >V Vx {
607-
0F17 Vx m > {
608+
0F16 mQ >V Vx {
609+
0F17 Vx mQ > {
608610
609611
movlhps:0F16 ^Vx >V V {
610612
611613
movlpd
612-
66)0F12 m >V Vx {w
613-
66)0F13 Vx m > {w
614+
66)0F12 mQ >V Vx {w
615+
66)0F13 Vx mQ > {w
614616
615617
movlps
616-
0F12 m >V Vx {
617-
0F13 Vx m > {
618+
0F12 mQ >V Vx {
619+
0F13 Vx mQ > {
618620
619621
movmskpd:66)0F50 ^Vxy R! >
620622
movmskps:0F50 ^Vxy R! >
@@ -631,29 +633,29 @@ movntq:0FE7 VQ m
631633
movq
632634
0F6E ^R Vq
633635
0F7E Vq ^R
634-
66)0F6E ^R#q VX > {
635-
66)0F7E VX ^R#q > {
636+
66)0F6E ^Rq VX > {
637+
66)0F7E VX ^Rq > {
636638
0F6F vQ V
637639
0F7F VQ v
638-
F3)0F7E v Vx > {w
639-
66)0FD6 Vx v > {w
640+
F3)0F7E vx|Q Vx > {w
641+
66)0FD6 Vx vx|Q > {w
640642
641643
movq2dq:F3)0FD6 ^VQ Vx
642644
movs{bwlq:A4
643645
644646
movsd
645647
F2)0F10 ^Vx >V V {kzw
646-
F2)0F10 m Vx > {kzw
647-
F2)0F11 Vx m > {kw
648+
F2)0F10 mL Vx > {kzw
649+
F2)0F11 Vx mL > {kw
648650
649651
movshdup:F3)0F16 v Vxyz > {kz
650652
651653
movsldup:F3)0F12 v Vxy > {kz
652654
653655
movss
654656
F3)0F10 ^Vx >V V {kz
655-
F3)0F10 m Vx > {kz
656-
F3)0F11 Vx m > {k
657+
F3)0F10 mL Vx > {kz
658+
F3)0F11 Vx mL > {k
657659
658660
movsbw/:0FBE rB Rw
659661
movsbl/:0FBE rB Rl
@@ -794,7 +796,7 @@ pextrd:66)0F3A16 ib Vx rL > {
794796
795797
pextrw
796798
0FC5 ib ^Vqx R! > {
797-
66)0F3A15 ib Vx m > {
799+
66)0F3A15 ib Vx mW > {
798800
799801
pextrq:66)0F3A16 ib Vx r#q > {
800802
@@ -1041,7 +1043,7 @@ rsm:0FAA
10411043
rsqrtps:0F52 v Vxy >
10421044
rsqrtss:F3)0F52 v >V Vx
10431045
1044-
rstorssp:F3)0F01.5 m
1046+
rstorssp:F3)0F01.5 mQ
10451047
10461048
sahf:9E
10471049
sal:#shl
@@ -1093,7 +1095,7 @@ stac:0F01CB
10931095
stc:F9
10941096
std:FD
10951097
sti:FB
1096-
stmxcsr:0FAE.3 m >
1098+
stmxcsr:0FAE.3 mL >
10971099
stos{bwlq:AA
10981100
10991101
str
@@ -1148,14 +1150,14 @@ vblendmps:66)0F3865 v >V Vxyz {kzbf
11481150
vbroadcastss:66)0F3818 vx|l Vxyz > {kz
11491151
vbroadcastsd:66)0F3819 vx|Q Vyz > {kzw
11501152
1151-
vbroadcastf128:66)0F381A m Vy >
1153+
vbroadcastf128:66)0F381A mX Vy >
11521154
vbroadcastf32x2:66)0F3819 vx|Q Vyz > {kzf
11531155
vbroadcastf32x4:66)0F381A m|x Vyz > {kzf
11541156
vbroadcastf64x2:66)0F381A m|x Vyz > {kzwf
11551157
vbroadcastf32x8:66)0F381B m|y Vz > {kzf
11561158
vbroadcastf64x4:66)0F381B m|y Vz > {kzfw
11571159
1158-
vbroadcasti128:66)0F385A m Vy >
1160+
vbroadcasti128:66)0F385A mX Vy >
11591161
vbroadcasti32x2:66)0F3859 vx|Q Vxyz > {kzf
11601162
vbroadcasti32x4:66)0F385A m|x Vyz > {kzf
11611163
vbroadcasti64x2:66)0F385A m|x Vyz > {kzfw

core/operations.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ export class OpCatcher
224224
/* If a memory size has been specified and a memory
225225
size is enforced, check that the two match */
226226
if(operand.type === OPT.MEM && this.memorySize)
227-
return operand.size == this.memorySize ? this.memorySize : null;
227+
return operand.size == (this.memorySize & ~7) ? this.memorySize : null;
228228

229229
// For unknown-sized operand catchers, compare against the previous size
230230
if(this.sizes == -1)

0 commit comments

Comments
 (0)