Forráskód Böngészése

* 64bit support for shrd

git-svn-id: trunk@4541 -
peter 19 éve
szülő
commit
d79df4c74a

+ 1 - 1
compiler/i386/i386nop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from x86ins.dat }
-1380;
+1368;

+ 8 - 92
compiler/i386/i386tab.inc

@@ -6009,59 +6009,17 @@
   (
     opcode  : A_SHLD;
     ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#164#65#22;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_immediate);
+    code    : #192#209#2#15#164#65#22;
     flags   : if_386 or if_sm2 or if_sb or if_ar2
   ),
   (
     opcode  : A_SHLD;
     ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#164#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#164#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#164#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#165#65;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_reg_cl);
+    code    : #192#209#2#15#165#65;
     flags   : if_386 or if_sm
   ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#165#65;
-    flags   : if_386
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#165#65;
-    flags   : if_386 or if_sm
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#165#65;
-    flags   : if_386
-  ),
   (
     opcode  : A_SHR;
     ops     : 2;
@@ -6107,59 +6065,17 @@
   (
     opcode  : A_SHRD;
     ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#172#65#22;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_immediate);
+    code    : #192#209#2#15#172#65#22;
     flags   : if_386 or if_sm2 or if_sb or if_ar2
   ),
   (
     opcode  : A_SHRD;
     ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#172#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#172#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#172#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#173#65;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_reg_cl);
+    code    : #192#209#2#15#173#65;
     flags   : if_386 or if_sm
   ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#173#65;
-    flags   : if_386
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#173#65;
-    flags   : if_386 or if_sm
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#173#65;
-    flags   : if_386
-  ),
   (
     opcode  : A_SIDT;
     ops     : 1;

+ 4 - 16
compiler/x86/x86ins.dat

@@ -1900,14 +1900,8 @@ rm8,imm               \300\323\1\xC0\204\25           186,SB
 
 [SHLD,shldX]
 (Ch_MOp3, Ch_RWFlags, Ch_Rop2)
-mem,reg16,imm         \300\324\2\x0F\xA4\101\26       386,SM2,SB,AR2
-reg16,reg16,imm       \300\324\2\x0F\xA4\101\26       386,SM2,SB,AR2
-mem,reg32,imm         \300\325\2\x0F\xA4\101\26       386,SM2,SB,AR2
-reg32,reg32,imm       \300\325\2\x0F\xA4\101\26       386,SM2,SB,AR2
-mem,reg16,reg_cl      \300\324\2\x0F\xA5\101          386,SM
-reg16,reg16,reg_cl    \300\324\2\x0F\xA5\101          386
-mem,reg32,reg_cl      \300\325\2\x0F\xA5\101          386,SM
-reg32,reg32,reg_cl    \300\325\2\x0F\xA5\101          386
+rm16|32|64,reg16|32|64,imm    \300\321\2\x0F\xA4\101\26       386,SM2,SB,AR2
+rm16|32|64,reg16|32|64,reg_cl \300\321\2\x0F\xA5\101          386,SM
 
 [SHR,shrX]
 (Ch_Mop2, Ch_Rop1, Ch_WFlags)
@@ -1920,14 +1914,8 @@ rm8,imm               \300\323\1\xC0\205\25           186,SB
 
 [SHRD,shrdX]
 (Ch_MOp3, Ch_RWFlags, Ch_Rop2)
-mem,reg16,imm         \300\324\2\x0F\xAC\101\26       386,SM2,SB,AR2
-reg16,reg16,imm       \300\324\2\x0F\xAC\101\26       386,SM2,SB,AR2
-mem,reg32,imm         \300\325\2\x0F\xAC\101\26       386,SM2,SB,AR2
-reg32,reg32,imm       \300\325\2\x0F\xAC\101\26       386,SM2,SB,AR2
-mem,reg16,reg_cl      \300\324\2\x0F\xAD\101          386,SM
-reg16,reg16,reg_cl    \300\324\2\x0F\xAD\101          386
-mem,reg32,reg_cl      \300\325\2\x0F\xAD\101          386,SM
-reg32,reg32,reg_cl    \300\325\2\x0F\xAD\101          386
+rm16|32|64,reg16|32|64,imm    \300\321\2\x0F\xAC\101\26       386,SM2,SB,AR2
+rm16|32|64,reg16|32|64,reg_cl \300\321\2\x0F\xAD\101          386,SM
 
 [SIDT,sidtX]
 (Ch_Wop1, Ch_None, Ch_None)

+ 1 - 1
compiler/x86_64/x8664nop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from x86ins.dat }
-1378;
+1366;

+ 8 - 92
compiler/x86_64/x8664tab.inc

@@ -5953,59 +5953,17 @@
   (
     opcode  : A_SHLD;
     ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#164#65#22;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_immediate);
+    code    : #192#209#2#15#164#65#22;
     flags   : if_386 or if_sm2 or if_sb or if_ar2
   ),
   (
     opcode  : A_SHLD;
     ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#164#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#164#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#164#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#165#65;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_reg_cl);
+    code    : #192#209#2#15#165#65;
     flags   : if_386 or if_sm
   ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#165#65;
-    flags   : if_386
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#165#65;
-    flags   : if_386 or if_sm
-  ),
-  (
-    opcode  : A_SHLD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#165#65;
-    flags   : if_386
-  ),
   (
     opcode  : A_SHR;
     ops     : 2;
@@ -6051,59 +6009,17 @@
   (
     opcode  : A_SHRD;
     ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#172#65#22;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_immediate);
+    code    : #192#209#2#15#172#65#22;
     flags   : if_386 or if_sm2 or if_sb or if_ar2
   ),
   (
     opcode  : A_SHRD;
     ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_immediate);
-    code    : #192#212#2#15#172#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#172#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_immediate);
-    code    : #192#213#2#15#172#65#22;
-    flags   : if_386 or if_sm2 or if_sb or if_ar2
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#173#65;
+    optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg16 or ot_bits32 or ot_bits64,ot_reg_cl);
+    code    : #192#209#2#15#173#65;
     flags   : if_386 or if_sm
   ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_reg16,ot_reg16,ot_reg_cl);
-    code    : #192#212#2#15#173#65;
-    flags   : if_386
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_memory,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#173#65;
-    flags   : if_386 or if_sm
-  ),
-  (
-    opcode  : A_SHRD;
-    ops     : 3;
-    optypes : (ot_reg32,ot_reg32,ot_reg_cl);
-    code    : #192#213#2#15#173#65;
-    flags   : if_386
-  ),
   (
     opcode  : A_SIDT;
     ops     : 1;