2
0
Эх сурвалжийг харах

* or and lds/les/lfs/lgs/lss read operand 1
* movd/movq changed from ch_all to r_op1, w_op2

Jonas Maebe 25 жил өмнө
parent
commit
6743c46a07

+ 9 - 9
compiler/i386ins.dat

@@ -1005,7 +1005,7 @@ reg32,mem             \321\301\2\x0F\x02\110          286,PROT,SM
 reg32,reg32           \321\301\2\x0F\x02\110          286,PROT
 reg32,reg32           \321\301\2\x0F\x02\110          286,PROT
 
 
 [LDS,ldsX]
 [LDS,ldsX]
-(Ch_Wop2, Ch_None, Ch_None)
+(Ch_Wop2, Ch_Rop1, Ch_None)
 reg16,mem             \320\301\1\xC5\110              8086
 reg16,mem             \320\301\1\xC5\110              8086
 reg32,mem             \321\301\1\xC5\110              8086
 reg32,mem             \321\301\1\xC5\110              8086
 
 
@@ -1016,16 +1016,16 @@ reg32,mem             \321\301\1\x8D\110              8086
 reg32,imm32           \321\301\1\x8D\110              8086
 reg32,imm32           \321\301\1\x8D\110              8086
 
 
 [LEAVE]
 [LEAVE]
-(Ch_RWESP, Ch_None, Ch_None)
+(Ch_RWESP, Ch_WEBP, Ch_None)
 void                  \1\xC9                          186
 void                  \1\xC9                          186
 
 
 [LES,lesX]
 [LES,lesX]
-(Ch_Wop2, Ch_None, Ch_None)
+(Ch_Wop2, Ch_Rop1, Ch_None)
 reg16,mem             \320\301\1\xC4\110              8086
 reg16,mem             \320\301\1\xC4\110              8086
 reg32,mem             \321\301\1\xC4\110              8086
 reg32,mem             \321\301\1\xC4\110              8086
 
 
 [LFS,lfsX]
 [LFS,lfsX]
-(Ch_Wop2, Ch_None, Ch_None)
+(Ch_Wop2, Ch_Rop1, Ch_None)
 reg16,mem             \320\301\2\x0F\xB4\110          386
 reg16,mem             \320\301\2\x0F\xB4\110          386
 reg32,mem             \321\301\2\x0F\xB4\110          386
 reg32,mem             \321\301\2\x0F\xB4\110          386
 
 
@@ -1034,7 +1034,7 @@ reg32,mem             \321\301\2\x0F\xB4\110          386
 mem                   \300\2\x0F\x01\202              286,PRIV
 mem                   \300\2\x0F\x01\202              286,PRIV
 
 
 [LGS,lgsX]
 [LGS,lgsX]
-(Ch_Wop2, Ch_None, Ch_None)
+(Ch_Wop2, Ch_Rop1, Ch_None)
 reg16,mem             \320\301\2\x0F\xB5\110          386
 reg16,mem             \320\301\2\x0F\xB5\110          386
 reg32,mem             \321\301\2\x0F\xB5\110          386
 reg32,mem             \321\301\2\x0F\xB5\110          386
 
 
@@ -1116,7 +1116,7 @@ reg32,mem             \321\301\2\x0F\x03\110          286,PROT,SM
 reg32,reg32           \321\301\2\x0F\x03\110          286,PROT
 reg32,reg32           \321\301\2\x0F\x03\110          286,PROT
 
 
 [LSS,lssX]
 [LSS,lssX]
-(Ch_Wop2, Ch_None, Ch_None)
+(Ch_Wop2, Ch_ROP1, Ch_None)
 reg16,mem             \320\301\2\x0F\xB2\110          386
 reg16,mem             \320\301\2\x0F\xB2\110          386
 reg32,mem             \321\301\2\x0F\xB2\110          386
 reg32,mem             \321\301\2\x0F\xB2\110          386
 
 
@@ -1180,14 +1180,14 @@ mem,imm16             \320\300\1\xC7\200\31           8086,SM
 mem,imm32             \321\300\1\xC7\200\41           386,SM
 mem,imm32             \321\300\1\xC7\200\41           386,SM
 
 
 [MOVD,movd]
 [MOVD,movd]
-(Ch_All, Ch_None, Ch_None)
+(Ch_Rop1, Ch_Wop2, Ch_None)
 mmxreg,mem            \301\2\x0F\x6E\110              PENT,MMX,SD
 mmxreg,mem            \301\2\x0F\x6E\110              PENT,MMX,SD
 mmxreg,reg32          \2\x0F\x6E\110                  PENT,MMX
 mmxreg,reg32          \2\x0F\x6E\110                  PENT,MMX
 mem,mmxreg            \300\2\x0F\x7E\101              PENT,MMX,SD
 mem,mmxreg            \300\2\x0F\x7E\101              PENT,MMX,SD
 reg32,mmxreg          \2\x0F\x7E\101                  PENT,MMX
 reg32,mmxreg          \2\x0F\x7E\101                  PENT,MMX
 
 
 [MOVQ,movq]
 [MOVQ,movq]
-(Ch_All, Ch_None, Ch_None)
+(Ch_Rop1, Ch_Wop2, Ch_None)
 mmxreg,mem            \301\2\x0F\x6F\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x6F\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x6F\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\x6F\110                  PENT,MMX
 mem,mmxreg            \300\2\x0F\x7F\101              PENT,MMX,SM
 mem,mmxreg            \300\2\x0F\x7F\101              PENT,MMX,SM
@@ -1242,7 +1242,7 @@ rm16                  \320\300\1\xF7\202              8086
 rm32                  \321\300\1\xF7\202              386
 rm32                  \321\300\1\xF7\202              386
 
 
 [OR,orX]
 [OR,orX]
-(Ch_Mop2, Ch_WFlags, Ch_None)
+(Ch_Mop2, Ch_Rop1, Ch_WFlags)
 mem,reg8              \300\1\x08\101                  8086,SM
 mem,reg8              \300\1\x08\101                  8086,SM
 reg8,reg8             \300\1\x08\101                  8086
 reg8,reg8             \300\1\x08\101                  8086
 mem,reg16             \320\300\1\x09\101              8086,SM
 mem,reg16             \320\300\1\x09\101              8086,SM

+ 9 - 9
compiler/i386prop.inc

@@ -165,13 +165,13 @@
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_WEAX, Ch_RFlags, Ch_None)),
 (Ch: (Ch_WEAX, Ch_RFlags, Ch_None)),
 (Ch: (Ch_Wop2, Ch_None, Ch_None)),
 (Ch: (Ch_Wop2, Ch_None, Ch_None)),
-(Ch: (Ch_Wop2, Ch_None, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_RWESP, Ch_None, Ch_None)),
-(Ch: (Ch_Wop2, Ch_None, Ch_None)),
-(Ch: (Ch_Wop2, Ch_None, Ch_None)),
+(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
+(Ch: (Ch_RWESP, Ch_WEBP, Ch_None)),
+(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
+(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
-(Ch: (Ch_Wop2, Ch_None, Ch_None)),
+(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
@@ -187,11 +187,11 @@
 (Ch: (Ch_RWECX, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWECX, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWECX, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWECX, Ch_RFlags, Ch_None)),
 (Ch: (Ch_Wop2, Ch_WFlags, Ch_None)),
 (Ch: (Ch_Wop2, Ch_WFlags, Ch_None)),
-(Ch: (Ch_Wop2, Ch_None, Ch_None)),
+(Ch: (Ch_Wop2, Ch_ROP1, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_Rop1, Ch_Wop2, Ch_None)),
+(Ch: (Ch_Rop1, Ch_Wop2, Ch_None)),
 (Ch: (Ch_All, Ch_Rop1, Ch_None)),
 (Ch: (Ch_All, Ch_Rop1, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
@@ -201,7 +201,7 @@
 (Ch: (Ch_Mop1, Ch_None, Ch_None)),
 (Ch: (Ch_Mop1, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_Mop1, Ch_WFlags, Ch_None)),
 (Ch: (Ch_Mop1, Ch_WFlags, Ch_None)),
-(Ch: (Ch_Mop2, Ch_WFlags, Ch_None)),
+(Ch: (Ch_Mop2, Ch_Rop1, Ch_WFlags)),
 (Ch: (Ch_Rop1, Ch_Rop2, Ch_None)),
 (Ch: (Ch_Rop1, Ch_Rop2, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),