File tree Expand file tree Collapse file tree 2 files changed +17
-15
lines changed
Expand file tree Collapse file tree 2 files changed +17
-15
lines changed Original file line number Diff line number Diff line change @@ -97,7 +97,7 @@ callw:x E8 jw
9797
9898cbtw/cbw:66)98
9999cltd/cdq:99
100- cltq/cdqe:X 48) 98
100+ cltq/cdqe:W 98
101101clac:0F01CA
102102clc:F8
103103cld:FC
@@ -130,7 +130,7 @@ F3)0FC2 ib v|l >Vx K {ksf
130130
131131cmpxchg:0FB0 Rbwlq r
132132cmpxchg8b:0FC7.1 mQ
133- cmpxchg16b:48) 0FC7.1 mX
133+ cmpxchg16b:W 0FC7.1 mX
134134
135135comisd:66)0F2F v Vx > {sw
136136comiss:0F2F v Vx > {s
@@ -164,7 +164,7 @@ cvttps2pi:0F2C vX VQ
164164cvttsd2si:F2)0F2C v#x Rlq > {s
165165cvttss2si:F3)0F2C v#x Rlq > {s
166166
167- cqto/cqo:X 48) 99
167+ cqto/cqo:W 99
168168cwtd/cwd:66)99
169169cwtl/cwde:98
170170
@@ -311,9 +311,9 @@ D9.1 F
311311D9C9
312312
313313fxrstor:0FAE.1 m
314- fxrstor64:X 0FAE.1 m#q
314+ fxrstor64:W 0FAE.1 m
315315fxsave:0FAE.0 m
316- fxsave64:X 0FAE.0 m#q
316+ fxsave64:W 0FAE.0 m
317317fxtract:D9F4
318318fyl2x:D9F1
319319fyl2xp1:D9F9
@@ -798,7 +798,7 @@ pextrw
7987980FC5 ib ^Vqx R! > {
79979966)0F3A15 ib Vx mW > {
800800
801- pextrq:66)0F3A16 ib Vx r#q > {
801+ pextrq:W 66)0F3A16 ib Vx rQ > {
802802
803803phaddw:0F3801 v >V Vqxy
804804phaddd:0F3802 v >V Vqxy
@@ -812,7 +812,7 @@ phsubw:0F3805 v >V Vqxy
812812
813813pinsrb:66)0F3A20 ib rL >Vx Vx {
814814pinsrd:66)0F3A22 ib rL >Vx Vx {
815- pinsrq:66)0F3A22 ib r#q >Vx Vx {
815+ pinsrq:W 66)0F3A22 ib rQ >Vx Vx {
816816pinsrw:0FC4 ib *rL >V Vqx {
817817
818818pmaddubsw:0F3804 v >V Vqxyz {kz
@@ -1584,17 +1584,17 @@ xorpd:66)0F57 v >V Vxyz {kzBw
15841584xorps:0F57 v >V Vxyz {kzb
15851585
15861586xrstor:0FAE.5 m
1587- xrstor64:X 0FAE.5 m#q
1587+ xrstor64:W 0FAE.5 m
15881588xrstors:0FC7.3 m
1589- xrstors64:X 0FC7.3 m#q
1589+ xrstors64:W 0FC7.3 m
15901590xsave:0FAE.4 m
1591- xsave64:X 0FAE.4 m#q
1591+ xsave64:W 0FAE.4 m
15921592xsavec:0FC7.4 m
1593- xsavec64:X 0FC7.4 m#q
1593+ xsavec64:W 0FC7.4 m
15941594xsaveopt:0FAE.6 m
1595- xsaveopt64:0FAE.6 m#q
1595+ xsaveopt64:W 0FAE.6 m
15961596xsaves:0FC7.5 m
1597- xsaves64:X 0FC7.5 m#q
1597+ xsaves64:W 0FC7.5 m
15981598xsetbv:0F01D1
15991599xtest:0F01D6
16001600` ;
Original file line number Diff line number Diff line change @@ -287,14 +287,16 @@ export class Operation
287287 this . vexOnly = false ;
288288 this . requireMask = false ;
289289 this . requireBitness = null ;
290+ this . forceRexW = false ;
290291
291292 // Interpreting the opcode
292293 this . forceVex = format [ 0 ] [ 0 ] == 'V' ;
293294 this . vexOnly = format [ 0 ] [ 0 ] == 'v' ;
294- if ( "vVwl !xX" . includes ( format [ 0 ] [ 0 ] ) )
295+ if ( "vVwWl !xX" . includes ( format [ 0 ] [ 0 ] ) )
295296 {
296297 let specializers = format . shift ( ) ;
297298 if ( specializers . includes ( 'w' ) ) this . vexBase |= 0x8000 ;
299+ if ( specializers . includes ( 'W' ) ) this . forceRexW = true , this . requireBitness = 64 ;
298300 if ( specializers . includes ( 'l' ) ) this . vexBase |= 0x400 ;
299301 if ( specializers . includes ( '!' ) )
300302 this . actuallyNotVex = true ; // For non-VEX instructions starting with V
@@ -450,7 +452,7 @@ export class Operation
450452 if ( ! this . validateVEX ( vexInfo ) )
451453 return null ;
452454
453- let adjustByteOp = false , overallSize = 0 , rexw = false ;
455+ let adjustByteOp = false , overallSize = 0 , rexw = this . forceRexW ;
454456
455457 if ( this . relativeSizes )
456458 {
You can’t perform that action at this time.
0 commit comments