diff --git a/compiler/i386/i386nop.inc b/compiler/i386/i386nop.inc index 24830769e7..5fe2125afc 100644 --- a/compiler/i386/i386nop.inc +++ b/compiler/i386/i386nop.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from x86ins.dat } -1679; +1380; diff --git a/compiler/i386/i386tab.inc b/compiler/i386/i386tab.inc index 8b3e685f4a..d23a7d2b49 100644 --- a/compiler/i386/i386tab.inc +++ b/compiler/i386/i386tab.inc @@ -52,485 +52,233 @@ ( opcode : A_ADC; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#17#65; - flags : if_386 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#17#65; - flags : if_8086 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#16#65; - flags : if_8086 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#17#65; - flags : if_386 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#17#65; flags : if_8086 or if_sm ), ( opcode : A_ADC; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#16#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#19#72; - flags : if_386 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#19#72; flags : if_8086 or if_sm ), ( opcode : A_ADC; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#16#65; + flags : if_8086 + ), + ( + opcode : A_ADC; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#18#72; - flags : if_8086 or if_sm + flags : if_8086 ), ( opcode : A_ADC; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#130#13; - flags : if_386 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#130#13; flags : if_8086 ), ( opcode : A_ADC; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#21#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#21#33; + flags : if_386 or if_sd + ), + ( + opcode : A_ADC; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#130#33; + flags : if_386 or if_sd ), ( opcode : A_ADC; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#21#25; - flags : if_8086 or if_sm + code : #212#1#21#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_ADC; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#130#25; + flags : if_8086 or if_sw ), ( opcode : A_ADC; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#20#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#130#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#130#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_ADC; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#130#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#130#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#130#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#130#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#19#72; - flags : if_386 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#19#72; - flags : if_8086 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#18#72; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#1#65; - flags : if_386 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#1#65; - flags : if_8086 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#15#65; - flags : if_8086 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#1#65; - flags : if_386 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#1#65; flags : if_8086 or if_sm ), ( opcode : A_ADD; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#15#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#3#72; - flags : if_386 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#3#72; flags : if_8086 or if_sm ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#15#65; + flags : if_8086 + ), + ( + opcode : A_ADD; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#2#72; flags : if_8086 or if_sm ), ( opcode : A_ADD; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#128#13; - flags : if_386 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#128#13; flags : if_8086 ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#5#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#5#33; + flags : if_386 or if_sd + ), + ( + opcode : A_ADD; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#128#33; + flags : if_386 or if_sd ), ( opcode : A_ADD; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#5#25; - flags : if_8086 or if_sm + code : #212#1#5#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_ADD; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#128#25; + flags : if_8086 or if_sw ), ( opcode : A_ADD; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#4#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#128#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#128#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_ADD; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#128#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#3#72; - flags : if_386 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#3#72; - flags : if_8086 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#2#72; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#33#65; - flags : if_386 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#33#65; - flags : if_8086 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#32#65; - flags : if_8086 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#33#65; - flags : if_386 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#33#65; flags : if_8086 or if_sm ), ( opcode : A_AND; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#32#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#35#72; - flags : if_386 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#35#72; flags : if_8086 or if_sm ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#32#65; + flags : if_8086 + ), + ( + opcode : A_AND; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#34#72; - flags : if_8086 or if_sm + flags : if_8086 ), ( opcode : A_AND; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#132#13; - flags : if_386 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#132#13; flags : if_8086 ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#37#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#37#33; + flags : if_386 or if_sd + ), + ( + opcode : A_AND; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#132#33; + flags : if_386 or if_sd ), ( opcode : A_AND; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#37#25; - flags : if_8086 or if_sm + code : #212#1#37#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_AND; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#132#25; + flags : if_8086 or if_sw ), ( opcode : A_AND; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#36#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#132#33; - flags : if_386 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#132#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_AND; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#132#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#132#33; - flags : if_386 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#132#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#132#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#35#72; - flags : if_386 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#35#72; - flags : if_8086 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#34#72; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_ARPL; @@ -549,245 +297,84 @@ ( opcode : A_BOUND; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#98#72; - flags : if_386 - ), - ( - opcode : A_BOUND; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); code : #208#193#1#98#72; flags : if_186 ), ( opcode : A_BSF; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#188#72; - flags : if_386 - ), - ( - opcode : A_BSF; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#188#72; - flags : if_386 - ), - ( - opcode : A_BSF; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#188#72; - flags : if_386 or if_sm - ), - ( - opcode : A_BSF; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#188#72; flags : if_386 or if_sm ), ( opcode : A_BSR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#189#72; - flags : if_386 - ), - ( - opcode : A_BSR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#189#72; - flags : if_386 - ), - ( - opcode : A_BSR; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#189#72; - flags : if_386 or if_sm - ), - ( - opcode : A_BSR; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#189#72; flags : if_386 or if_sm ), ( opcode : A_BSWAP; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#1#15#8#200; + optypes : (ot_reg32 or ot_bits64,ot_none,ot_none); + code : #208#1#15#8#200; flags : if_486 ), ( opcode : A_BT; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#163#65; - flags : if_386 - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#163#65; - flags : if_386 - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#163#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#163#65; flags : if_386 or if_sm ), ( opcode : A_BT; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#132#21; - flags : if_386 or if_sb - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#132#21; flags : if_386 or if_sb ), ( opcode : A_BTC; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#187#65; - flags : if_386 - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#187#65; - flags : if_386 - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#187#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#187#65; flags : if_386 or if_sm ), ( opcode : A_BTC; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#135#21; - flags : if_386 or if_sb - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#135#21; flags : if_386 or if_sb ), ( opcode : A_BTR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#179#65; - flags : if_386 - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#179#65; - flags : if_386 - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#179#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#179#65; flags : if_386 or if_sm ), ( opcode : A_BTR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#134#21; - flags : if_386 or if_sb - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#134#21; flags : if_386 or if_sb ), ( opcode : A_BTS; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#171#65; - flags : if_386 - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#171#65; - flags : if_386 - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#171#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#171#65; flags : if_386 or if_sm ), ( opcode : A_BTS; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#133#21; - flags : if_386 or if_sb - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#133#21; flags : if_386 or if_sb ), @@ -795,189 +382,91 @@ opcode : A_CALL; ops : 1; optypes : (ot_immediate,ot_none,ot_none); - code : #211#1#232#52; + code : #208#1#232#52; flags : if_8086 ), ( opcode : A_CALL; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#255#130; flags : if_8086 ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), ( opcode : A_CALL; ops : 1; optypes : (ot_immediate or ot_near,ot_none,ot_none); - code : #211#1#232#52; + code : #208#1#232#52; flags : if_8086 ), ( opcode : A_CALL; ops : 1; optypes : (ot_immediate or ot_far,ot_none,ot_none); - code : #211#1#154#28#31; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits16,ot_none,ot_none); - code : #208#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_far,ot_none,ot_none); code : #208#1#154#28#31; flags : if_8086 ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits32,ot_none,ot_none); - code : #209#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#1#154#28#31; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 2; - optypes : (ot_immediate,ot_immediate,ot_none); - code : #211#1#154#29#24; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 2; - optypes : (ot_immediate or ot_bits16,ot_immediate,ot_none); - code : #208#1#154#25#24; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 2; - optypes : (ot_immediate,ot_immediate or ot_bits16,ot_none); - code : #208#1#154#25#24; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 2; - optypes : (ot_immediate or ot_bits32,ot_immediate,ot_none); - code : #209#1#154#33#24; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 2; - optypes : (ot_immediate,ot_immediate or ot_bits32,ot_none); - code : #209#1#154#33#24; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#131; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); - code : #208#192#1#255#131; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#131; - flags : if_386 - ), ( opcode : A_CALL; ops : 1; optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); code : #208#192#1#255#130; flags : if_8086 ), ( opcode : A_CALL; ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#130; + optypes : (ot_memory or ot_far,ot_none,ot_none); + code : #208#192#1#255#131; + flags : if_8086 + ), + ( + opcode : A_CALL; + ops : 2; + optypes : (ot_immediate,ot_immediate,ot_none); + code : #215#1#154#29#24; + flags : if_8086 + ), + ( + opcode : A_CALL; + ops : 2; + optypes : (ot_immediate or ot_bits16,ot_immediate,ot_none); + code : #212#1#154#25#24; + flags : if_8086 + ), + ( + opcode : A_CALL; + ops : 2; + optypes : (ot_immediate,ot_immediate or ot_bits16,ot_none); + code : #212#1#154#25#24; + flags : if_8086 + ), + ( + opcode : A_CALL; + ops : 2; + optypes : (ot_immediate or ot_bits32,ot_immediate,ot_none); + code : #213#1#154#33#24; + flags : if_386 + ), + ( + opcode : A_CALL; + ops : 2; + optypes : (ot_immediate,ot_immediate or ot_bits32,ot_none); + code : #213#1#154#33#24; flags : if_386 ), ( opcode : A_CBW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#152; + code : #212#1#152; flags : if_8086 ), ( opcode : A_CDQ; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#153; + code : #213#1#153; flags : if_386 ), ( @@ -1018,163 +507,100 @@ ( opcode : A_CMP; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#59#72; - flags : if_386 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#59#72; - flags : if_8086 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#58#72; - flags : if_8086 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#57#65; - flags : if_386 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#57#65; flags : if_8086 or if_sm ), ( opcode : A_CMP; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#56#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#59#72; - flags : if_386 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#59#72; flags : if_8086 or if_sm ), ( opcode : A_CMP; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#56#65; + flags : if_8086 + ), + ( + opcode : A_CMP; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#58#72; - flags : if_8086 or if_sm + flags : if_8086 ), ( opcode : A_CMP; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#135#13; - flags : if_386 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#135#13; flags : if_8086 ), ( opcode : A_CMP; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#61#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #213#1#61#33; + flags : if_386 or if_sd + ), + ( + opcode : A_CMP; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#135#33; + flags : if_386 or if_sd ), ( opcode : A_CMP; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#61#25; - flags : if_8086 or if_sm + code : #212#1#61#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_CMP; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#135#25; + flags : if_8086 or if_sw ), ( opcode : A_CMP; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#60#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#135#33; - flags : if_386 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#135#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_CMP; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#135#17; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_CMP; ops : 2; optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#135#33; - flags : if_386 or if_sm + code : #213#192#1#129#135#33; + flags : if_386 or if_sd ), ( opcode : A_CMP; ops : 2; optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#135#25; - flags : if_8086 or if_sm + code : #212#192#1#129#135#25; + flags : if_8086 or if_sw ), ( opcode : A_CMP; ops : 2; optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); code : #192#1#128#135#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#57#65; - flags : if_386 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#57#65; - flags : if_8086 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#56#65; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_CMPSB; @@ -1187,7 +613,7 @@ opcode : A_CMPSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#209#1#167; + code : #218#213#1#167; flags : if_386 ), ( @@ -1208,93 +634,37 @@ opcode : A_CMPSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#208#1#167; + code : #218#212#1#167; flags : if_8086 ), ( opcode : A_CMPXCHG; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#177#65; - flags : if_pent - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#177#65; - flags : if_pent - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#176#65; - flags : if_pent - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#177#65; - flags : if_pent or if_sm - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#177#65; flags : if_pent or if_sm ), ( opcode : A_CMPXCHG; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); code : #192#2#15#176#65; - flags : if_pent or if_sm + flags : if_pent ), ( opcode : A_CMPXCHG486; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_486 or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#167#65; - flags : if_486 or if_undoc + flags : if_486 or if_sm ), ( opcode : A_CMPXCHG486; ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); code : #192#2#15#166#65; flags : if_486 or if_undoc ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_486 or if_sm or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); - code : #208#192#2#15#167#65; - flags : if_486 or if_sm or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#166#65; - flags : if_486 or if_sm or if_undoc - ), ( opcode : A_CMPXCHG8B; ops : 1; @@ -1313,14 +683,14 @@ opcode : A_CWD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#153; + code : #212#1#153; flags : if_8086 ), ( opcode : A_CWDE; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#152; + code : #213#1#152; flags : if_386 ), ( @@ -1340,28 +710,14 @@ ( opcode : A_DEC; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#72; - flags : if_386 - ), - ( - opcode : A_DEC; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#72; flags : if_8086 ), ( opcode : A_DEC; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#129; - flags : if_386 - ), - ( - opcode : A_DEC; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#255#129; flags : if_8086 ), @@ -1375,14 +731,7 @@ ( opcode : A_DIV; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#134; - flags : if_386 - ), - ( - opcode : A_DIV; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#134; flags : if_8086 ), @@ -2083,7 +1432,7 @@ opcode : A_FILD; ops : 1; optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#223#128; + code : #212#192#1#223#128; flags : if_8086 or if_fpu ), ( @@ -2132,7 +1481,7 @@ opcode : A_FIST; ops : 1; optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#223#130; + code : #212#192#1#223#130; flags : if_8086 or if_fpu ), ( @@ -2146,7 +1495,7 @@ opcode : A_FISTP; ops : 1; optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#223#131; + code : #212#192#1#223#131; flags : if_8086 or if_fpu ), ( @@ -2915,30 +2264,9 @@ ( opcode : A_IBTS; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_IBTS; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#167#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_IBTS; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_386 or if_sd or if_undoc - ), - ( - opcode : A_IBTS; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); - code : #208#192#2#15#167#65; - flags : if_386 or if_sw or if_undoc + flags : if_386 or if_sm or if_undoc ), ( opcode : A_ICEBP; @@ -2950,14 +2278,7 @@ ( opcode : A_IDIV; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#135; - flags : if_386 - ), - ( - opcode : A_IDIV; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#135; flags : if_8086 ), @@ -2971,16 +2292,72 @@ ( opcode : A_IMUL; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#175#72; - flags : if_386 + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); + code : #208#193#2#15#175#72; + flags : if_386 or if_sm + ), + ( + opcode : A_IMUL; + ops : 1; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#247#133; + flags : if_8086 + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg32 or ot_bits64,ot_regmem,ot_immediate or ot_bits8 or ot_signed); + code : #208#193#1#107#72#14; + flags : if_286 or if_sm + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg32 or ot_bits64,ot_regmem,ot_immediate); + code : #208#193#1#105#72#34; + flags : if_286 or if_sm or if_sd or if_ar2 ), ( opcode : A_IMUL; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#175#72; - flags : if_386 + optypes : (ot_reg32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); + code : #208#1#107#64#13; + flags : if_286 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg32 or ot_bits64,ot_immediate,ot_none); + code : #208#1#105#64#33; + flags : if_286 or if_sd + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg16,ot_regmem,ot_immediate or ot_bits8 or ot_signed); + code : #212#193#1#107#72#14; + flags : if_286 or if_sm + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg16,ot_regmem,ot_immediate); + code : #212#193#1#105#72#26; + flags : if_286 or if_sm or if_sw or if_ar2 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg16,ot_immediate or ot_bits8 or ot_signed,ot_none); + code : #212#1#107#64#13; + flags : if_286 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg16,ot_immediate,ot_none); + code : #212#1#105#64#25; + flags : if_286 or if_sw ), ( opcode : A_IMUL; @@ -2989,118 +2366,6 @@ code : #192#1#246#133; flags : if_8086 ), - ( - opcode : A_IMUL; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); - code : #208#192#1#247#133; - flags : if_8086 - ), - ( - opcode : A_IMUL; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#133; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#175#72; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_memory,ot_immediate or ot_bits8 or ot_signed); - code : #209#193#1#107#72#14; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_reg32,ot_immediate or ot_bits8 or ot_signed); - code : #209#193#1#107#72#14; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_memory,ot_immediate); - code : #209#193#1#105#72#34; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_reg32,ot_immediate); - code : #209#193#1#105#72#34; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#1#107#64#13; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_immediate,ot_none); - code : #209#1#105#64#33; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#175#72; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_memory,ot_immediate or ot_bits8 or ot_signed); - code : #208#193#1#107#72#14; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_reg16,ot_immediate or ot_bits8 or ot_signed); - code : #208#193#1#107#72#14; - flags : if_286 - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_memory,ot_immediate); - code : #208#193#1#105#72#26; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_reg16,ot_immediate); - code : #208#193#1#105#72#26; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #208#1#107#64#13; - flags : if_286 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_immediate,ot_none); - code : #208#1#105#64#25; - flags : if_286 or if_sm - ), ( opcode : A_IN; ops : 2; @@ -3111,17 +2376,10 @@ ( opcode : A_IN; ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); + optypes : (ot_reg_ax or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#1#229#21; flags : if_8086 or if_sb ), - ( - opcode : A_IN; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#229#21; - flags : if_386 or if_sb - ), ( opcode : A_IN; ops : 2; @@ -3132,42 +2390,21 @@ ( opcode : A_IN; ops : 2; - optypes : (ot_reg_ax,ot_reg_dx,ot_none); + optypes : (ot_reg_ax or ot_bits32 or ot_bits64,ot_reg_dx,ot_none); code : #208#1#237; flags : if_8086 ), - ( - opcode : A_IN; - ops : 2; - optypes : (ot_reg_eax,ot_reg_dx,ot_none); - code : #209#1#237; - flags : if_386 - ), ( opcode : A_INC; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#64; - flags : if_386 - ), - ( - opcode : A_INC; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#64; flags : if_8086 ), ( opcode : A_INC; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#128; - flags : if_386 - ), - ( - opcode : A_INC; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#255#128; flags : if_8086 ), @@ -3189,14 +2426,14 @@ opcode : A_INSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#109; + code : #213#1#109; flags : if_386 ), ( opcode : A_INSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#109; + code : #212#1#109; flags : if_186 ), ( @@ -3259,37 +2496,58 @@ opcode : A_IRET; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#207; + code : #215#1#207; flags : if_8086 ), ( opcode : A_IRETD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#207; + code : #213#1#207; flags : if_386 ), ( opcode : A_IRETW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#207; + code : #212#1#207; flags : if_8086 ), ( opcode : A_JCXZ; ops : 1; optypes : (ot_immediate,ot_none,ot_none); - code : #208#1#227#40; + code : #212#1#227#40; flags : if_8086 ), ( opcode : A_JECXZ; ops : 1; optypes : (ot_immediate,ot_none,ot_none); - code : #209#1#227#40; + code : #213#1#227#40; flags : if_386 ), + ( + opcode : A_JMP; + ops : 1; + optypes : (ot_immediate or ot_bits8,ot_none,ot_none); + code : #1#235#40; + flags : if_8086 or if_pass2 + ), + ( + opcode : A_JMP; + ops : 1; + optypes : (ot_immediate or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#1#233#52; + flags : if_8086 or if_pass2 + ), + ( + opcode : A_JMP; + ops : 1; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#132; + flags : if_8086 + ), ( opcode : A_JMP; ops : 1; @@ -3297,167 +2555,55 @@ code : #1#235#40; flags : if_8086 or if_pass2 ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate,ot_none,ot_none); - code : #211#1#233#52; - flags : if_8086 or if_pass2 - ), ( opcode : A_JMP; ops : 1; optypes : (ot_immediate or ot_near,ot_none,ot_none); - code : #211#1#233#52; + code : #208#1#233#52; flags : if_8086 or if_pass2 ), ( opcode : A_JMP; ops : 1; optypes : (ot_immediate or ot_far,ot_none,ot_none); - code : #211#1#234#28#31; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits16,ot_none,ot_none); - code : #208#1#233#52; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#1#233#52; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_far,ot_none,ot_none); code : #208#1#234#28#31; flags : if_8086 or if_pass2 ), ( opcode : A_JMP; ops : 1; - optypes : (ot_immediate or ot_bits32,ot_none,ot_none); - code : #209#1#233#52; - flags : if_8086 or if_pass2 + optypes : (ot_memory or ot_near,ot_none,ot_none); + code : #208#192#1#255#132; + flags : if_8086 ), ( opcode : A_JMP; ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#1#233#52; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#1#234#28#31; - flags : if_8086 or if_pass2 + optypes : (ot_memory or ot_far,ot_none,ot_none); + code : #208#192#1#255#133; + flags : if_8086 ), ( opcode : A_JMP; ops : 2; optypes : (ot_immediate,ot_immediate,ot_none); - code : #211#1#234#29#24; + code : #215#1#234#29#24; flags : if_8086 ), ( opcode : A_JMP; ops : 2; optypes : (ot_immediate,ot_immediate or ot_bits16,ot_none); - code : #208#1#234#25#24; + code : #212#1#234#25#24; flags : if_8086 ), ( opcode : A_JMP; ops : 2; optypes : (ot_immediate,ot_immediate or ot_bits32,ot_none); - code : #209#1#234#33#24; + code : #213#1#234#33#24; flags : if_386 ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#133; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); - code : #208#192#1#255#133; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#133; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), ( opcode : A_LAHF; ops : 0; @@ -3468,143 +2614,52 @@ ( opcode : A_LAR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#2#72; - flags : if_286 or if_prot - ), - ( - opcode : A_LAR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#2#72; - flags : if_286 or if_prot - ), - ( - opcode : A_LAR; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#2#72; - flags : if_286 or if_prot or if_sm - ), - ( - opcode : A_LAR; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#2#72; flags : if_286 or if_prot or if_sm ), ( opcode : A_LCALL; ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#131; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#130; flags : if_8086 ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); - code : #208#192#1#255#131; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#131; - flags : if_386 - ), ( opcode : A_LCALL; ops : 1; optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); code : #208#192#1#255#130; flags : if_8086 ), ( opcode : A_LCALL; ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_LDS; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#197#72; + optypes : (ot_memory or ot_far,ot_none,ot_none); + code : #208#192#1#255#131; flags : if_8086 ), ( opcode : A_LDS; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#1#197#72; flags : if_8086 ), ( opcode : A_LEA; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#141#72; - flags : if_8086 - ), - ( - opcode : A_LEA; - ops : 2; - optypes : (ot_reg32,ot_immediate or ot_bits32,ot_none); - code : #209#193#1#141#72; - flags : if_8086 - ), - ( - opcode : A_LEA; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none); code : #208#193#1#141#72; flags : if_8086 ), + ( + opcode : A_LEA; + ops : 2; + optypes : (ot_reg32 or ot_bits64,ot_immediate,ot_none); + code : #208#193#1#141#72; + flags : if_8086 or if_sd + ), ( opcode : A_LEAVE; ops : 0; @@ -3615,28 +2670,14 @@ ( opcode : A_LES; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#196#72; - flags : if_8086 - ), - ( - opcode : A_LES; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#1#196#72; flags : if_8086 ), ( opcode : A_LFS; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#180#72; - flags : if_386 - ), - ( - opcode : A_LFS; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#2#15#180#72; flags : if_386 ), @@ -3650,14 +2691,7 @@ ( opcode : A_LGS; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#181#72; - flags : if_386 - ), - ( - opcode : A_LGS; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#2#15#181#72; flags : if_386 ), @@ -3671,119 +2705,35 @@ ( opcode : A_LJMP; ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#133; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#132; flags : if_8086 ), ( opcode : A_LJMP; ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); + optypes : (ot_memory or ot_far,ot_none,ot_none); code : #208#192#1#255#133; flags : if_8086 ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#133; - flags : if_386 - ), ( opcode : A_LJMP; ops : 1; optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); code : #208#192#1#255#132; flags : if_8086 ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), ( opcode : A_LLDT; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#1#15#15#130; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LLDT; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#130; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LLDT; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16,ot_none,ot_none); code : #192#1#15#15#130; flags : if_286 or if_prot or if_priv ), ( opcode : A_LMSW; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#2#15#1#134; - flags : if_286 or if_priv - ), - ( - opcode : A_LMSW; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#2#15#1#134; - flags : if_286 or if_priv - ), - ( - opcode : A_LMSW; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16,ot_none,ot_none); code : #192#2#15#1#134; flags : if_286 or if_priv ), @@ -3819,14 +2769,14 @@ opcode : A_LODSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#173; + code : #213#1#173; flags : if_386 ), ( opcode : A_LODSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#173; + code : #212#1#173; flags : if_8086 ), ( @@ -3846,7 +2796,7 @@ ( opcode : A_LOOP; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#226#40; flags : if_386 ), @@ -3867,7 +2817,7 @@ ( opcode : A_LOOPE; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#225#40; flags : if_386 ), @@ -3888,7 +2838,7 @@ ( opcode : A_LOOPNE; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#224#40; flags : if_386 ), @@ -3909,7 +2859,7 @@ ( opcode : A_LOOPNZ; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#224#40; flags : if_386 ), @@ -3930,70 +2880,28 @@ ( opcode : A_LOOPZ; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#225#40; flags : if_386 ), ( opcode : A_LSL; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#3#72; - flags : if_286 or if_prot - ), - ( - opcode : A_LSL; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#3#72; - flags : if_286 or if_prot - ), - ( - opcode : A_LSL; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#3#72; - flags : if_286 or if_prot or if_sm - ), - ( - opcode : A_LSL; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#3#72; flags : if_286 or if_prot or if_sm ), ( opcode : A_LSS; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#178#72; - flags : if_386 - ), - ( - opcode : A_LSS; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); code : #208#193#2#15#178#72; flags : if_386 ), ( opcode : A_LTR; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#1#15#15#131; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LTR; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#131; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LTR; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16,ot_none,ot_none); code : #192#1#15#15#131; flags : if_286 or if_prot or if_priv ), @@ -4014,254 +2922,58 @@ ( opcode : A_MOV; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#137#65; - flags : if_386 + optypes : (ot_mem_offs,ot_reg_ax or ot_bits32,ot_none); + code : #192#208#1#163#28; + flags : if_8086 or if_sm or if_nox86_64 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#137#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#136#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#137#65; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#137#65; flags : if_8086 or if_sm ), ( opcode : A_MOV; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#136#65; - flags : if_8086 or if_sm + optypes : (ot_reg_ax or ot_bits32,ot_mem_offs,ot_none); + code : #213#193#1#161#29; + flags : if_8086 or if_sm or if_nox86_64 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#139#72; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#139#72; flags : if_8086 or if_sm ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#138#72; - flags : if_8086 or if_sm + optypes : (ot_reg32 or ot_bits64,ot_immediate,ot_none); + code : #208#8#184#33; + flags : if_386 or if_sd ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg32,ot_immediate,ot_none); - code : #209#8#184#33; - flags : if_386 or if_sm + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#199#128#33; + flags : if_386 or if_sd ), ( opcode : A_MOV; ops : 2; optypes : (ot_reg16,ot_immediate,ot_none); - code : #208#8#184#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_immediate,ot_none); - code : #8#176#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#199#128#33; - flags : if_386 or if_sm + code : #212#8#184#25; + flags : if_8086 or if_sw ), ( opcode : A_MOV; ops : 2; optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#199#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); - code : #192#1#198#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#199#128#33; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#199#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#198#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg_cs,ot_none); - code : #208#192#1#140#129; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg_dess,ot_none); - code : #208#192#1#140#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg_fsgs,ot_none); - code : #208#192#1#140#65; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_reg_cs,ot_none); - code : #208#192#1#140#129; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_reg_dess,ot_none); - code : #208#192#1#140#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_reg_fsgs,ot_none); - code : #208#192#1#140#65; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cs,ot_none); - code : #209#192#1#140#129; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_dess,ot_none); - code : #209#192#1#140#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_fsgs,ot_none); - code : #209#192#1#140#65; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_dess,ot_memory,ot_none); - code : #208#193#1#142#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_fsgs,ot_memory,ot_none); - code : #208#193#1#142#72; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_dess,ot_reg16,ot_none); - code : #208#193#1#142#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_fsgs,ot_reg16,ot_none); - code : #208#193#1#142#72; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_dess,ot_regmem or ot_bits32,ot_none); - code : #209#193#1#142#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_fsgs,ot_regmem or ot_bits32,ot_none); - code : #209#193#1#142#72; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_al,ot_mem_offs,ot_none); - code : #193#1#160#29; - flags : if_8086 or if_sm or if_nox86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_ax,ot_mem_offs,ot_none); - code : #193#208#1#161#29; - flags : if_8086 or if_sm or if_nox86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_eax,ot_mem_offs,ot_none); - code : #193#209#1#161#29; - flags : if_386 or if_sm or if_nox86_64 + code : #212#192#1#199#128#25; + flags : if_8086 or if_sw ), ( opcode : A_MOV; @@ -4273,16 +2985,72 @@ ( opcode : A_MOV; ops : 2; - optypes : (ot_mem_offs,ot_reg_ax,ot_none); - code : #192#208#1#163#28; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#136#65; + flags : if_8086 + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg_al,ot_mem_offs,ot_none); + code : #193#1#160#29; flags : if_8086 or if_sm or if_nox86_64 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_mem_offs,ot_reg_eax,ot_none); - code : #192#209#1#163#28; - flags : if_386 or if_sm or if_nox86_64 + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#138#72; + flags : if_8086 or if_sm + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg8,ot_immediate,ot_none); + code : #8#176#17; + flags : if_8086 or if_sb + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); + code : #192#1#198#128#17; + flags : if_8086 or if_sb + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32,ot_reg_cs,ot_none); + code : #208#192#1#140#129; + flags : if_8086 + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32,ot_reg_dess,ot_none); + code : #208#192#1#140#65; + flags : if_8086 + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32,ot_reg_fsgs,ot_none); + code : #208#192#1#140#65; + flags : if_386 + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg_dess,ot_regmem or ot_bits16 or ot_bits32,ot_none); + code : #209#193#1#142#72; + flags : if_8086 or if_sm + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg_fsgs,ot_regmem or ot_bits16 or ot_bits32,ot_none); + code : #209#193#1#142#72; + flags : if_386 or if_sm ), ( opcode : A_MOV; @@ -4317,49 +3085,28 @@ ops : 2; optypes : (ot_reg_cr4,ot_reg32,ot_none); code : #2#15#34#140; - flags : if_pent or if_priv + flags : if_pent or if_priv or if_nox86_64 ), ( opcode : A_MOV; ops : 2; optypes : (ot_reg_creg,ot_reg32,ot_none); code : #2#15#34#72; - flags : if_386 or if_priv + flags : if_386 or if_priv or if_nox86_64 ), ( opcode : A_MOV; ops : 2; optypes : (ot_reg_dreg,ot_reg32,ot_none); code : #2#15#35#72; - flags : if_386 or if_priv + flags : if_386 or if_priv or if_nox86_64 ), ( opcode : A_MOV; ops : 2; optypes : (ot_reg_treg,ot_reg32,ot_none); code : #2#15#38#72; - flags : if_386 or if_priv - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#138#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#139#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#139#72; - flags : if_386 + flags : if_386 or if_priv or if_nox86_64 ), ( opcode : A_MOVD; @@ -4484,7 +3231,7 @@ opcode : A_MOVSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#165; + code : #213#1#165; flags : if_386 ), ( @@ -4519,76 +3266,41 @@ opcode : A_MOVSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#165; + code : #212#1#165; flags : if_8086 ), ( opcode : A_MOVSX; ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits16,ot_none); - code : #209#193#2#15#191#72; + optypes : (ot_reg32 or ot_bits64,ot_regmem or ot_bits16,ot_none); + code : #208#193#2#15#191#72; flags : if_386 ), ( opcode : A_MOVSX; ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits8,ot_none); - code : #209#193#2#15#190#72; - flags : if_386 - ), - ( - opcode : A_MOVSX; - ops : 2; - optypes : (ot_reg16,ot_reg8,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem or ot_bits8,ot_none); code : #208#193#2#15#190#72; flags : if_386 ), - ( - opcode : A_MOVSX; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#190#72; - flags : if_386 or if_sb - ), ( opcode : A_MOVZX; ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits16,ot_none); - code : #209#193#2#15#183#72; + optypes : (ot_reg32 or ot_bits64,ot_regmem or ot_bits16,ot_none); + code : #208#193#2#15#183#72; flags : if_386 ), ( opcode : A_MOVZX; ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits8,ot_none); - code : #209#193#2#15#182#72; - flags : if_386 - ), - ( - opcode : A_MOVZX; - ops : 2; - optypes : (ot_reg16,ot_reg8,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem or ot_bits8,ot_none); code : #208#193#2#15#182#72; flags : if_386 ), - ( - opcode : A_MOVZX; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#182#72; - flags : if_386 or if_sb - ), - ( - opcode : A_MUL; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#132; - flags : if_386 - ), ( opcode : A_MUL; ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#132; flags : if_8086 ), @@ -4616,14 +3328,7 @@ ( opcode : A_NEG; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#131; - flags : if_386 - ), - ( - opcode : A_NEG; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#131; flags : if_8086 ), @@ -4644,14 +3349,7 @@ ( opcode : A_NOT; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#130; - flags : if_386 - ), - ( - opcode : A_NOT; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#130; flags : if_8086 ), @@ -4665,163 +3363,79 @@ ( opcode : A_OR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#9#65; - flags : if_386 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#9#65; - flags : if_8086 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#8#65; - flags : if_8086 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#9#65; - flags : if_386 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#9#65; flags : if_8086 or if_sm ), ( opcode : A_OR; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#8#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#11#72; - flags : if_386 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#11#72; flags : if_8086 or if_sm ), ( opcode : A_OR; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#8#65; + flags : if_8086 + ), + ( + opcode : A_OR; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#10#72; flags : if_8086 or if_sm ), ( opcode : A_OR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#129#13; - flags : if_386 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#129#13; flags : if_8086 ), ( opcode : A_OR; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#13#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#13#33; + flags : if_386 or if_sd + ), + ( + opcode : A_OR; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#129#33; + flags : if_386 or if_sd ), ( opcode : A_OR; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#13#25; - flags : if_8086 or if_sm + code : #212#1#13#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_OR; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#129#25; + flags : if_8086 or if_sw ), ( opcode : A_OR; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#12#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#129#33; - flags : if_386 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#129#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_OR; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#129#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#129#33; - flags : if_386 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#129#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#129#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#11#72; - flags : if_386 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#11#72; - flags : if_8086 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#10#72; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_OUT; @@ -4834,14 +3448,14 @@ opcode : A_OUT; ops : 2; optypes : (ot_immediate,ot_reg_ax,ot_none); - code : #208#1#231#20; + code : #212#1#231#20; flags : if_8086 or if_sb ), ( opcode : A_OUT; ops : 2; optypes : (ot_immediate,ot_reg_eax,ot_none); - code : #209#1#231#20; + code : #213#1#231#20; flags : if_386 or if_sb ), ( @@ -4855,14 +3469,14 @@ opcode : A_OUT; ops : 2; optypes : (ot_reg_dx,ot_reg_ax,ot_none); - code : #208#1#239; + code : #212#1#239; flags : if_8086 ), ( opcode : A_OUT; ops : 2; optypes : (ot_reg_dx,ot_reg_eax,ot_none); - code : #209#1#239; + code : #213#1#239; flags : if_386 ), ( @@ -4876,14 +3490,14 @@ opcode : A_OUTSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#111; + code : #213#1#111; flags : if_386 ), ( opcode : A_OUTSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#111; + code : #212#1#111; flags : if_186 ), ( @@ -5855,31 +4469,17 @@ ( opcode : A_POP; ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#88; flags : if_8086 ), ( opcode : A_POP; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#88; - flags : if_386 - ), - ( - opcode : A_POP; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#143#128; flags : if_8086 ), - ( - opcode : A_POP; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#143#128; - flags : if_386 - ), ( opcode : A_POP; ops : 1; @@ -5905,42 +4505,42 @@ opcode : A_POPA; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#97; + code : #215#1#97; flags : if_186 ), ( opcode : A_POPAD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#97; + code : #213#1#97; flags : if_386 ), ( opcode : A_POPAW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#97; + code : #212#1#97; flags : if_186 ), ( opcode : A_POPF; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#157; + code : #215#1#157; flags : if_186 ), ( opcode : A_POPFD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#157; + code : #213#1#157; flags : if_386 ), ( opcode : A_POPFW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#157; + code : #212#1#157; flags : if_186 ), ( @@ -6709,31 +5309,38 @@ ( opcode : A_PUSH; ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#80; flags : if_8086 ), ( opcode : A_PUSH; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#80; - flags : if_386 - ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#255#134; flags : if_8086 ), ( opcode : A_PUSH; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#134; + optypes : (ot_immediate or ot_bits32,ot_none,ot_none); + code : #213#1#104#32; flags : if_386 ), + ( + opcode : A_PUSH; + ops : 1; + optypes : (ot_immediate or ot_bits16,ot_none,ot_none); + code : #212#1#104#24; + flags : if_286 + ), + ( + opcode : A_PUSH; + ops : 1; + optypes : (ot_immediate or ot_bits8 or ot_signed,ot_none,ot_none); + code : #1#106#12; + flags : if_286 + ), ( opcode : A_PUSH; ops : 1; @@ -6748,67 +5355,46 @@ code : #6; flags : if_8086 or if_nox86_64 ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_immediate or ot_bits8 or ot_signed,ot_none,ot_none); - code : #1#106#12; - flags : if_286 - ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_immediate or ot_bits16,ot_none,ot_none); - code : #208#1#104#24; - flags : if_286 - ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_immediate or ot_bits32,ot_none,ot_none); - code : #209#1#104#32; - flags : if_386 - ), ( opcode : A_PUSHA; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#96; + code : #215#1#96; flags : if_186 ), ( opcode : A_PUSHAD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#96; + code : #213#1#96; flags : if_386 ), ( opcode : A_PUSHAW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#96; + code : #212#1#96; flags : if_186 ), ( opcode : A_PUSHF; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#156; + code : #215#1#156; flags : if_186 ), ( opcode : A_PUSHFD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#156; + code : #213#1#156; flags : if_386 ), ( opcode : A_PUSHFW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#156; + code : #212#1#156; flags : if_186 ), ( @@ -6842,44 +5428,23 @@ ( opcode : A_RCL; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#130; - flags : if_386 - ), - ( - opcode : A_RCL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#130; - flags : if_386 - ), - ( - opcode : A_RCL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#130#21; - flags : if_386 or if_sb - ), - ( - opcode : A_RCL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); code : #208#192#1#209#130; flags : if_8086 ), ( opcode : A_RCL; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); code : #208#192#1#211#130; flags : if_8086 ), ( opcode : A_RCL; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8,ot_none); code : #208#192#1#193#130#21; - flags : if_186 or if_sb + flags : if_8086 ), ( opcode : A_RCL; @@ -6905,44 +5470,23 @@ ( opcode : A_RCR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#131; - flags : if_386 - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#131; - flags : if_386 - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#131#21; - flags : if_386 or if_sb - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); code : #208#192#1#209#131; flags : if_8086 ), ( opcode : A_RCR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); code : #208#192#1#211#131; flags : if_8086 ), ( opcode : A_RCR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8,ot_none); code : #208#192#1#193#131#21; - flags : if_186 or if_sb + flags : if_8086 ), ( opcode : A_RCR; @@ -7073,44 +5617,23 @@ ( opcode : A_ROL; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#128; - flags : if_386 - ), - ( - opcode : A_ROL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#128; - flags : if_386 - ), - ( - opcode : A_ROL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#128#21; - flags : if_386 or if_sb - ), - ( - opcode : A_ROL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); code : #208#192#1#209#128; flags : if_8086 ), ( opcode : A_ROL; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); code : #208#192#1#211#128; flags : if_8086 ), ( opcode : A_ROL; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#1#193#128#21; - flags : if_186 or if_sb + flags : if_8086 or if_sb ), ( opcode : A_ROL; @@ -7136,44 +5659,23 @@ ( opcode : A_ROR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#129; - flags : if_386 - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#129; - flags : if_386 - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#129#21; - flags : if_386 or if_sb - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); code : #208#192#1#209#129; flags : if_8086 ), ( opcode : A_ROR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); code : #208#192#1#211#129; flags : if_8086 ), ( opcode : A_ROR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#1#193#129#21; - flags : if_186 or if_sb + flags : if_8086 or if_sb ), ( opcode : A_ROR; @@ -7227,44 +5729,23 @@ ( opcode : A_SAL; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#132; - flags : if_386 - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#132; - flags : if_386 - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#132#21; - flags : if_386 or if_sb - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); code : #208#192#1#209#132; flags : if_8086 ), ( opcode : A_SAL; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); code : #208#192#1#211#132; flags : if_8086 ), ( opcode : A_SAL; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#1#193#132#21; - flags : if_186 or if_sb + flags : if_8086 or if_sb ), ( opcode : A_SAL; @@ -7297,44 +5778,23 @@ ( opcode : A_SAR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#135; - flags : if_386 - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#135; - flags : if_386 - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#135#21; - flags : if_386 or if_sb - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); code : #208#192#1#209#135; flags : if_8086 ), ( opcode : A_SAR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); code : #208#192#1#211#135; flags : if_8086 ), ( opcode : A_SAR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#1#193#135#21; - flags : if_186 or if_sb + flags : if_8086 or if_sb ), ( opcode : A_SAR; @@ -7360,163 +5820,79 @@ ( opcode : A_SBB; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#24#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#24#65; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#25#65; flags : if_8086 or if_sm ), ( opcode : A_SBB; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#25#65; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#25#65; - flags : if_386 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#25#65; - flags : if_386 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#26#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#26#72; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#27#72; flags : if_8086 or if_sm ), ( opcode : A_SBB; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#27#72; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#27#72; - flags : if_386 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#27#72; - flags : if_386 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#131#13; flags : if_8086 ), ( opcode : A_SBB; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#131#13; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#24#65; flags : if_8086 ), ( opcode : A_SBB; ops : 2; - optypes : (ot_reg_al,ot_immediate,ot_none); - code : #1#28#17; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#26#72; flags : if_8086 or if_sm ), + ( + opcode : A_SBB; + ops : 2; + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#29#33; + flags : if_386 or if_sd + ), + ( + opcode : A_SBB; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#131#33; + flags : if_386 or if_sd + ), ( opcode : A_SBB; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#29#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#29#33; - flags : if_386 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); - code : #192#1#128#131#17; - flags : if_8086 or if_sm + code : #212#1#29#25; + flags : if_8086 or if_sw ), ( opcode : A_SBB; ops : 2; optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); code : #208#192#1#129#131#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sw ), ( opcode : A_SBB; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#131#33; - flags : if_386 or if_sm + optypes : (ot_reg_al,ot_immediate,ot_none); + code : #1#28#17; + flags : if_8086 or if_sb ), ( opcode : A_SBB; ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); + optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#131#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#131#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#131#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_SCASB; @@ -7529,14 +5905,14 @@ opcode : A_SCASD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#209#1#175; + code : #218#213#1#175; flags : if_386 ), ( opcode : A_SCASW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#208#1#175; + code : #218#212#1#175; flags : if_8086 ), ( @@ -7588,6 +5964,27 @@ code : #192#2#15#1#128; flags : if_286 ), + ( + opcode : A_SHL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#132; + flags : if_8086 + ), + ( + opcode : A_SHL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#132; + flags : if_8086 + ), + ( + opcode : A_SHL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#132#21; + flags : if_186 or if_sw + ), ( opcode : A_SHL; ops : 2; @@ -7609,104 +6006,83 @@ code : #192#1#192#132#21; flags : if_186 or if_sb ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#132; - flags : if_8086 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#132; - flags : if_8086 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#132#21; - flags : if_186 or if_sw - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#132; - flags : if_386 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#132; - flags : if_386 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#132#21; - flags : if_386 or if_sd - ), ( opcode : A_SHLD; ops : 3; optypes : (ot_memory,ot_reg16,ot_immediate); - code : #192#208#2#15#164#65#22; + 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_reg16,ot_reg16,ot_immediate); - code : #192#208#2#15#164#65#22; + 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#209#2#15#164#65#22; + 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#209#2#15#164#65#22; + 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#208#2#15#165#65; + code : #192#212#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#208#2#15#165#65; + 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#209#2#15#165#65; + 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#209#2#15#165#65; + code : #192#213#2#15#165#65; flags : if_386 ), + ( + opcode : A_SHR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#133; + flags : if_8086 + ), + ( + opcode : A_SHR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#133; + flags : if_8086 + ), + ( + opcode : A_SHR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#133#21; + flags : if_186 or if_sw + ), ( opcode : A_SHR; ops : 2; @@ -7728,102 +6104,60 @@ code : #192#1#192#133#21; flags : if_186 or if_sb ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#133; - flags : if_8086 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#133; - flags : if_8086 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#133#21; - flags : if_186 or if_sw - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#133; - flags : if_386 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#133; - flags : if_386 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#133#21; - flags : if_386 or if_sd - ), ( opcode : A_SHRD; ops : 3; optypes : (ot_memory,ot_reg16,ot_immediate); - code : #192#208#2#15#172#65#22; + 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_reg16,ot_reg16,ot_immediate); - code : #192#208#2#15#172#65#22; + 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#209#2#15#172#65#22; + 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#209#2#15#172#65#22; + 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#208#2#15#173#65; + code : #192#212#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#208#2#15#173#65; + 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#209#2#15#173#65; + 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#209#2#15#173#65; + code : #192#213#2#15#173#65; flags : if_386 ), ( @@ -7843,24 +6177,10 @@ ( opcode : A_SLDT; ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#128; - flags : if_286 - ), - ( - opcode : A_SLDT; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#1#15#15#128; flags : if_286 ), - ( - opcode : A_SLDT; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#1#15#15#128; - flags : if_386 - ), ( opcode : A_SMI; ops : 0; @@ -7885,31 +6205,10 @@ ( opcode : A_SMSW; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#2#15#1#132; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#2#15#1#132; flags : if_286 ), - ( - opcode : A_SMSW; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#2#15#1#132; - flags : if_286 - ), - ( - opcode : A_SMSW; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#2#15#1#132; - flags : if_286 - ), - ( - opcode : A_SMSW; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#2#15#1#132; - flags : if_386 - ), ( opcode : A_STC; ops : 0; @@ -7942,14 +6241,14 @@ opcode : A_STOSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#171; + code : #213#1#171; flags : if_386 ), ( opcode : A_STOSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#171; + code : #212#1#171; flags : if_8086 ), ( @@ -7962,184 +6261,86 @@ ( opcode : A_STR; ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#129; - flags : if_286 or if_prot - ), - ( - opcode : A_STR; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#1#15#15#129; flags : if_286 or if_prot ), - ( - opcode : A_STR; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#1#15#15#129; - flags : if_386 or if_prot - ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#41#65; - flags : if_386 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#41#65; - flags : if_8086 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#40#65; - flags : if_8086 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#41#65; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#41#65; flags : if_8086 or if_sm ), ( opcode : A_SUB; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#40#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#43#72; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#43#72; flags : if_8086 or if_sm ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#40#65; + flags : if_8086 + ), + ( + opcode : A_SUB; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#42#72; flags : if_8086 or if_sm ), ( opcode : A_SUB; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#133#13; - flags : if_386 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#133#13; flags : if_8086 ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#45#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#45#33; + flags : if_386 or if_sd + ), + ( + opcode : A_SUB; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#133#33; + flags : if_8086 or if_sd ), ( opcode : A_SUB; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#45#25; - flags : if_8086 or if_sm + code : #212#1#45#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_SUB; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#133#25; + flags : if_8086 or if_sw ), ( opcode : A_SUB; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#44#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#133#33; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#133#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_SUB; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#133#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#133#33; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#133#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#133#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#43#72; - flags : if_386 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#43#72; - flags : if_8086 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#42#72; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_SVDC; @@ -8193,16 +6394,16 @@ ( opcode : A_TEST; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#133#65; - flags : if_386 + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); + code : #208#192#1#133#65; + flags : if_8086 or if_sm ), ( opcode : A_TEST; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#133#65; - flags : if_8086 + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); + code : #208#193#1#133#72; + flags : if_8086 or if_sm ), ( opcode : A_TEST; @@ -8211,41 +6412,6 @@ code : #192#1#132#65; flags : if_8086 ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#133#65; - flags : if_386 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); - code : #208#192#1#133#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#132#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#133#72; - flags : if_386 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#1#133#72; - flags : if_8086 or if_sm - ), ( opcode : A_TEST; ops : 2; @@ -8257,14 +6423,14 @@ opcode : A_TEST; ops : 2; optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#169#33; + code : #213#1#169#33; flags : if_386 or if_sm ), ( opcode : A_TEST; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#169#25; + code : #212#1#169#25; flags : if_8086 or if_sm ), ( @@ -8278,14 +6444,14 @@ opcode : A_TEST; ops : 2; optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#247#128#33; + code : #213#192#1#247#128#33; flags : if_386 or if_sm ), ( opcode : A_TEST; ops : 2; optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#247#128#25; + code : #212#192#1#247#128#25; flags : if_8086 or if_sm ), ( @@ -8299,14 +6465,14 @@ opcode : A_TEST; ops : 2; optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#247#128#33; + code : #213#192#1#247#128#33; flags : if_386 or if_sm ), ( opcode : A_TEST; ops : 2; optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#247#128#25; + code : #212#192#1#247#128#25; flags : if_8086 or if_sm ), ( @@ -8333,85 +6499,29 @@ ( opcode : A_UMOV; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#16#65; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#16#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#17#65; flags : if_386 or if_undoc or if_sm ), ( opcode : A_UMOV; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#17#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#17#65; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#17#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#2#15#18#72; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#2#15#18#72; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); code : #208#193#2#15#19#72; flags : if_386 or if_undoc or if_sm ), ( opcode : A_UMOV; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#19#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#2#15#16#65; flags : if_386 or if_undoc ), ( opcode : A_UMOV; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#19#72; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#19#72; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#2#15#18#72; flags : if_386 or if_undoc ), ( @@ -8487,184 +6597,100 @@ ( opcode : A_XADD; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#192#65; - flags : if_486 or if_sm - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#192#65; - flags : if_486 - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_memory,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#193#65; flags : if_486 or if_sm ), ( opcode : A_XADD; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#193#65; - flags : if_486 - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#193#65; - flags : if_486 or if_sm - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#193#65; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#2#15#192#65; flags : if_486 ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#166#72; + code : #212#193#2#15#166#72; flags : if_386 or if_sw or if_undoc ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#166#72; + code : #212#193#2#15#166#72; flags : if_386 or if_undoc ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#166#72; + code : #213#193#2#15#166#72; flags : if_386 or if_sd or if_undoc ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#166#72; + code : #213#193#2#15#166#72; flags : if_386 or if_undoc ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg_ax,ot_reg16,ot_none); - code : #208#9#144; + code : #212#9#144; flags : if_8086 ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg_eax,ot_reg32,ot_none); - code : #209#9#144; + code : #213#9#144; flags : if_386 ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg16,ot_reg_ax,ot_none); - code : #208#8#144; + code : #212#8#144; flags : if_8086 ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg32,ot_reg_eax,ot_none); - code : #209#8#144; + code : #213#8#144; flags : if_386 ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#134#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#134#72; - flags : if_8086 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#135#72; flags : if_8086 or if_sm ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#135#72; - flags : if_8086 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#135#72; - flags : if_386 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#135#72; - flags : if_386 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#134#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#134#65; - flags : if_8086 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_memory,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#135#65; flags : if_8086 or if_sm ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#135#65; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#134#72; flags : if_8086 ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#135#65; - flags : if_386 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#135#65; - flags : if_386 + optypes : (ot_memory or ot_bits8,ot_reg8,ot_none); + code : #192#1#134#65; + flags : if_8086 ), ( opcode : A_XLAT; @@ -8683,163 +6709,79 @@ ( opcode : A_XOR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#49#65; - flags : if_386 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#49#65; - flags : if_8086 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#48#65; - flags : if_8086 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#49#65; - flags : if_386 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#49#65; flags : if_8086 or if_sm ), ( opcode : A_XOR; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#48#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#51#72; - flags : if_386 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#51#72; flags : if_8086 or if_sm ), ( opcode : A_XOR; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#48#65; + flags : if_8086 + ), + ( + opcode : A_XOR; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); code : #193#1#50#72; - flags : if_8086 or if_sm + flags : if_8086 ), ( opcode : A_XOR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#134#13; - flags : if_386 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#134#13; flags : if_8086 ), ( opcode : A_XOR; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#53#33; - flags : if_386 or if_sm + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#53#33; + flags : if_386 or if_sd + ), + ( + opcode : A_XOR; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#134#33; + flags : if_386 or if_sd ), ( opcode : A_XOR; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#53#25; - flags : if_8086 or if_sm + code : #212#1#53#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_XOR; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#134#25; + flags : if_8086 or if_sw ), ( opcode : A_XOR; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#52#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#134#33; - flags : if_386 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#134#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_XOR; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#134#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#134#33; - flags : if_386 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#134#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#134#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#51#72; - flags : if_386 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#51#72; - flags : if_8086 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#50#72; - flags : if_8086 + flags : if_8086 or if_sb ), ( opcode : A_XSTORE; @@ -8879,78 +6821,43 @@ ( opcode : A_CMOVcc; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#15#216#64#72; - flags : if_p6 - ), - ( - opcode : A_CMOVcc; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#15#216#64#72; - flags : if_p6 - ), - ( - opcode : A_CMOVcc; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#15#216#64#72; - flags : if_p6 or if_sm - ), - ( - opcode : A_CMOVcc; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#1#15#216#64#72; + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); + code : #208#193#1#15#11#64#72; flags : if_p6 or if_sm ), ( opcode : A_Jcc; ops : 1; - optypes : (ot_immediate or ot_near,ot_none,ot_none); - code : #211#1#15#216#128#52; - flags : if_386 or if_pass2 - ), - ( - opcode : A_Jcc; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#1#15#216#128#52; - flags : if_386 or if_pass2 - ), - ( - opcode : A_Jcc; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#1#15#216#128#52; - flags : if_386 or if_pass2 - ), - ( - opcode : A_Jcc; - ops : 1; - optypes : (ot_immediate,ot_none,ot_none); - code : #216#112#40; + optypes : (ot_immediate or ot_bits8,ot_none,ot_none); + code : #11#112#40; flags : if_8086 ), + ( + opcode : A_Jcc; + ops : 1; + optypes : (ot_immediate or ot_bits16 or ot_bits32,ot_none,ot_none); + code : #208#1#15#11#128#52; + flags : if_386 or if_pass2 + ), ( opcode : A_Jcc; ops : 1; optypes : (ot_immediate or ot_short,ot_none,ot_none); - code : #216#112#40; + code : #11#112#40; flags : if_8086 ), ( - opcode : A_SETcc; + opcode : A_Jcc; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#1#15#216#144#128; - flags : if_386 or if_sb + optypes : (ot_immediate or ot_near,ot_none,ot_none); + code : #208#1#15#11#128#52; + flags : if_386 or if_pass2 ), ( opcode : A_SETcc; ops : 1; - optypes : (ot_reg8,ot_none,ot_none); - code : #192#1#15#216#144#128; + optypes : (ot_regmem or ot_bits8,ot_none,ot_none); + code : #192#1#15#11#144#128; flags : if_386 ), ( diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg index c2ba357537..6a85cada93 100644 --- a/compiler/msg/errore.msg +++ b/compiler/msg/errore.msg @@ -1795,6 +1795,7 @@ asmw_e_redefined_label=08017_E_Asm: Redefined label $1 asmw_e_first_defined_label=08018_E_Asm: First defined here asmw_e_invalid_register=08019_E_Asm: Invalid register $1 asmw_e_16bit_32bit_not_supported=08020_E_Asm: 16 or 32 Bit references not supported +asmw_e_64bit_not_supported=08021_E_Asm: 64 Bit operands not supported # # Executing linker/assembler diff --git a/compiler/msgidx.inc b/compiler/msgidx.inc index f41e852240..39ba4628dc 100644 --- a/compiler/msgidx.inc +++ b/compiler/msgidx.inc @@ -537,6 +537,7 @@ const asmw_e_first_defined_label=08018; asmw_e_invalid_register=08019; asmw_e_16bit_32bit_not_supported=08020; + asmw_e_64bit_not_supported=08021; exec_w_source_os_redefined=09000; exec_i_assembling_pipe=09001; exec_d_cant_create_asmfile=09002; @@ -671,9 +672,9 @@ const option_info=11024; option_help_pages=11025; - MsgTxtSize = 39564; + MsgTxtSize = 39607; MsgIdxMax : array[1..20] of longint=( - 19,75,219,59,62,47,100,21,135,60, + 19,75,219,59,62,47,100,22,135,60, 41,1,1,1,1,1,1,1,1,1 ); diff --git a/compiler/msgtxt.inc b/compiler/msgtxt.inc index e9d1349faf..fe50afa252 100644 --- a/compiler/msgtxt.inc +++ b/compiler/msgtxt.inc @@ -1,7 +1,7 @@ {$ifdef Delphi} -const msgtxt : array[0..000164] of string[240]=( +const msgtxt : array[0..000165] of string[240]=( {$else Delphi} -const msgtxt : array[0..000164,1..240] of char=( +const msgtxt : array[0..000165,1..240] of char=( {$endif Delphi} '01000_T_Compiler: $1'#000+ '01001_D_Compiler OS: $1'#000+ @@ -587,147 +587,149 @@ const msgtxt : array[0..000164,1..240] of char=( '08018_E_Asm: First defined here'#000+ '08019_E_Asm: Invalid register $1'#000+ '08020_E_Asm: 16 ','or 32 Bit references not supported'#000+ + '08021_E_Asm: 64 Bit operands not supported'#000+ '09000_W_Source operating system redefined'#000+ '09001_I_Assembling (pipe) $1'#000+ '09002_E_Can'#039't create assembler file: $1'#000+ '09003_E_Can'#039't create object file: $1'#000+ - '09004_E_Can'#039't create archive file: $1'#000+ - '09005_E_Assembler $','1 not found, switching to external assembling'#000+ + '09004_E_Can'#039't ','create archive file: $1'#000+ + '09005_E_Assembler $1 not found, switching to external assembling'#000+ '09006_T_Using assembler: $1'#000+ '09007_E_Error while assembling exitcode $1'#000+ '09008_E_Can'#039't call the assembler, error $1 switching to external a'+ 'ssembling'#000+ - '09009_I_Assembling $1'#000+ - '09010_I_Assembling with s','martlinking $1'#000+ + '0900','9_I_Assembling $1'#000+ + '09010_I_Assembling with smartlinking $1'#000+ '09011_W_Object $1 not found, Linking may fail !'#000+ '09012_W_Library $1 not found, Linking may fail !'#000+ '09013_E_Error while linking'#000+ - '09014_E_Can'#039't call the linker, switching to external linking'#000+ + '09014_E_Can'#039't call the linker, switching to external link','ing'#000+ '09015_I_Linking $1'#000+ - '09016_E_Util $1 not ','found, switching to external linking'#000+ + '09016_E_Util $1 not found, switching to external linking'#000+ '09017_T_Using util $1'#000+ '09018_E_Creation of Executables not supported'#000+ '09019_E_Creation of Dynamic/Shared Libraries not supported'#000+ '09020_I_Closing script $1'#000+ - '09021_E_resource compiler not found, switching to ','external mode'#000+ + '09021_E','_resource compiler not found, switching to external mode'#000+ '09022_I_Compiling resource $1'#000+ '09023_T_unit $1 can'#039't be statically linked, switching to smart lin'+ 'king'#000+ '09024_T_unit $1 can'#039't be smart linked, switching to static linking'+ #000+ - '09025_T_unit $1 can'#039't be shared linked, switching to stati','c link'+ + '09025_T_unit $1',' can'#039't be shared linked, switching to static link'+ 'ing'#000+ '09026_E_unit $1 can'#039't be smart or static linked'#000+ '09027_E_unit $1 can'#039't be shared or static linked'#000+ '09028_D_Calling resource compiler "$1" with "$2" as command line'#000+ - '09128_F_Can'#039't post process executable $1'#000+ - '09129_F_Can'#039't open executab','le $1'#000+ + '09128_F_Can'#039't post proces','s executable $1'#000+ + '09129_F_Can'#039't open executable $1'#000+ '09130_X_Size of Code: $1 bytes'#000+ '09131_X_Size of initialized data: $1 bytes'#000+ '09132_X_Size of uninitialized data: $1 bytes'#000+ '09133_X_Stack space reserved: $1 bytes'#000+ - '09134_X_Stack space committed: $1 bytes'#000+ + '09134_X_Stack space committed: $1',' bytes'#000+ '10000_T_Unitsearch: $1'#000+ - '10001_T_PPU L','oading $1'#000+ + '10001_T_PPU Loading $1'#000+ '10002_U_PPU Name: $1'#000+ '10003_U_PPU Flags: $1'#000+ '10004_U_PPU Crc: $1'#000+ '10005_U_PPU Time: $1'#000+ '10006_U_PPU File too short'#000+ '10007_U_PPU Invalid Header (no PPU at the begin)'#000+ - '10008_U_PPU Invalid Version $1'#000+ - '10009_U_PPU is compiled for another pro','cessor'#000+ + '10008_U_PPU Invalid Version',' $1'#000+ + '10009_U_PPU is compiled for another processor'#000+ '10010_U_PPU is compiled for an other target'#000+ '10011_U_PPU Source: $1'#000+ '10012_U_Writing $1'#000+ '10013_F_Can'#039't Write PPU-File'#000+ '10014_F_Error reading PPU-File'#000+ '10015_F_unexpected end of PPU-File'#000+ - '10016_F_Invalid PPU-File entry: $1'#000+ - '10017_F_PPU Dbx c','ount problem'#000+ + '10016_F_I','nvalid PPU-File entry: $1'#000+ + '10017_F_PPU Dbx count problem'#000+ '10018_E_Illegal unit name: $1'#000+ '10019_F_Too much units'#000+ '10020_F_Circular unit reference between $1 and $2'#000+ '10021_F_Can'#039't compile unit $1, no sources available'#000+ '10022_F_Can'#039't find unit $1'#000+ - '10023_W_Unit $1 was not found but $2 exists'#000+ - '1','0024_F_Unit $1 searched but $2 found'#000+ + '10','023_W_Unit $1 was not found but $2 exists'#000+ + '10024_F_Unit $1 searched but $2 found'#000+ '10025_W_Compiling the system unit requires the -Us switch'#000+ '10026_F_There were $1 errors compiling module, stopping'#000+ '10027_U_Load from $1 ($2) unit $3'#000+ - '10028_U_Recompiling $1, checksum changed for $2'#000+ - '10029_U','_Recompiling $1, source found only'#000+ + '10028_U_Reco','mpiling $1, checksum changed for $2'#000+ + '10029_U_Recompiling $1, source found only'#000+ '10030_U_Recompiling unit, static lib is older than ppufile'#000+ '10031_U_Recompiling unit, shared lib is older than ppufile'#000+ - '10032_U_Recompiling unit, obj and asm are older than ppufile'#000+ - '10033_U_Recompiling unit, ','obj is older than asm'#000+ + '10032_U_Recompiling unit, obj and asm are ol','der than ppufile'#000+ + '10033_U_Recompiling unit, obj is older than asm'#000+ '10034_U_Parsing interface of $1'#000+ '10035_U_Parsing implementation of $1'#000+ '10036_U_Second load for unit $1'#000+ '10037_U_PPU Check file $1 time $2'#000+ - '10040_W_Can'#039't recompile unit $1, but found modifed include files'#000+ - '10041_H_File $1 is',' newer than Release PPU file $2'#000+ + '10040_W_Can'#039't recompile unit $1, but fou','nd modifed include files'+ + #000+ + '10041_H_File $1 is newer than Release PPU file $2'#000+ '10042_U_Using a unit which was not compiled with correct FPU mode'#000+ '10043_U_Loading interface units from $1'#000+ '10044_U_Loading implementation units from $1'#000+ - '10045_U_Interface CRC changed for unit $1'#000+ - '10046_U_Impleme','ntation CRC changed for unit $1'#000+ + '10045_U_Interf','ace CRC changed for unit $1'#000+ + '10046_U_Implementation CRC changed for unit $1'#000+ '10047_U_Finished compiling unit $1'#000+ '10048_U_Add dependency of $1 to $2'#000+ '10049_U_No reload, is caller: $1'#000+ '10050_U_No reload, already in second compile: $1'#000+ - '10051_U_Flag for reload: $1'#000+ + '10051_U_Flag ','for reload: $1'#000+ '10052_U_Forced reloading'#000+ - '100','53_U_Previous state of $1: $2'#000+ + '10053_U_Previous state of $1: $2'#000+ '10054_U_Already compiling $1, setting second compile'#000+ '10055_U_Loading unit $1'#000+ '10056_U_Finished loading unit $1'#000+ '10057_U_Registering new unit $1'#000+ - '10058_U_Re-resolving unit $1'#000+ - '10059_U_Skipping re-resolving unit $1, ','still loading used units'#000+ + '10058_U_Re-resolving unit',' $1'#000+ + '10059_U_Skipping re-resolving unit $1, still loading used units'#000+ '11000_O_$1 [options] [options]'#000+ '11001_W_Only one source file supported'#000+ '11002_W_DEF file can be created only for OS/2'#000+ - '11003_E_nested response files are not supported'#000+ - '11004_F_No source file name in command ','line'#000+ + '11003_E_nested response files are not suppor','ted'#000+ + '11004_F_No source file name in command line'#000+ '11005_N_No option inside $1 config file'#000+ '11006_E_Illegal parameter: $1'#000+ '11007_H_-? writes help pages'#000+ '11008_F_Too many config files nested'#000+ '11009_F_Unable to open file $1'#000+ - '11010_D_Reading further options from $1'#000+ - '11011_W_Target is already se','t to: $1'#000+ + '11010_D_Reading further o','ptions from $1'#000+ + '11011_W_Target is already set to: $1'#000+ '11012_W_Shared libs not supported on DOS platform, reverting to static'+ #000+ '11013_F_too many IF(N)DEFs'#000+ '11014_F_too many ENDIFs'#000+ '11015_F_open conditional at the end of the file'#000+ - '11016_W_Debug information generation is not supported by this',' execut'+ + '11016_W_Debug info','rmation generation is not supported by this execut'+ 'able'#000+ '11017_H_Try recompiling with -dGDB'#000+ '11018_W_You are using the obsolete switch $1'#000+ '11019_W_You are using the obsolete switch $1, please use $2'#000+ - '11020_N_Switching assembler to default source writing assembler'#000+ - '11021_W_Assembler output',' selected "$1" is not compatible with "$2"'#000+ + '11020_N_Switching assembler to default source',' writing assembler'#000+ + '11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+ '11022_W_"$1" assembler use forced'#000+ '11026_T_Reading options from file $1'#000+ '11027_T_Reading options from environment $1'#000+ '11028_D_Handling option "$1"'#000+ - '11029__*** press enter ***'#000+ - '11030_H_Start of reading c','onfig file $1'#000+ + '11029__***',' press enter ***'#000+ + '11030_H_Start of reading config file $1'#000+ '11031_H_End of reading config file $1'#000+ '11032_D_interpreting option "$1"'#000+ '11036_D_interpreting firstpass option "$1"'#000+ '11033_D_interpreting file option "$1"'#000+ - '11034_D_Reading config file "$1"'#000+ + '11034_D_Reading config file "$1','"'#000+ '11035_D_found source file name "$1"'#000+ - '11039','_E_Unknown code page'#000+ + '11039_E_Unknown code page'#000+ '11040_F_Config file $1 is a directory'#000+ '11023_Free Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCPU'#010+ 'Copyright (c) 1993-2005 by Florian Klaempfl'#000+ - '11024_Free Pascal Compiler version $FPCVERSION'#010+ + '11024_Free Pascal Compil','er version $FPCVERSION'#010+ #010+ - 'Compiler Date ',': $FPCDATE'#010+ + 'Compiler Date : $FPCDATE'#010+ 'Compiler CPU Target: $FPCCPU'#010+ #010+ 'Supported targets:'#010+ @@ -739,167 +741,167 @@ const msgtxt : array[0..000164,1..240] of char=( 'Supported FPU instruction sets:'#010+ ' $FPUINSTRUCTIONSETS'#010+ #010+ - 'Supported Optimizations:'#010+ + 'Supported Optimi','zations:'#010+ ' $OPTIMIZATIONS'#010+ #010+ - 'This program com','es under the GNU General Public Licence'#010+ + 'This program comes under the GNU General Public Licence'#010+ 'For more information read COPYING.FPC'#010+ #010+ 'Report bugs,suggestions etc to:'#010+ ' bugrep@freepascal.org'#000+ - '11025_**0*_put + after a boolean switch option to enable it, - to disa'+ - 'ble it'#010+ - '**1a_the comp','iler doesn'#039't delete the generated assembler file'#010+ + '11025_**0*_put + after a boolean switch option ','to enable it, - to di'+ + 'sable it'#010+ + '**1a_the compiler doesn'#039't delete the generated assembler file'#010+ '**2al_list sourcecode lines in assembler file'#010+ '**2an_list node info in assembler file'#010+ '*L2ap_use pipes instead of creating temporary assembler files'#010+ - '**2ar_list register allocation/release info ','in assembler file'#010+ + '*','*2ar_list register allocation/release info in assembler file'#010+ '**2at_list temp allocation/release info in assembler file'#010+ '**1A_output format:'#010+ '**2Adefault_use default assembler'#010+ '3*2Aas_assemble using GNU AS'#010+ - '3*2Anasmcoff_coff (Go32v2) file using Nasm'#010+ - '3*2Anasmelf_elf32 (Linux) file usin','g Nasm'#010+ + '3*2Anasmcoff_coff (Go32v2) file usi','ng Nasm'#010+ + '3*2Anasmelf_elf32 (Linux) file using Nasm'#010+ '3*2Anasmwin32_Win32 object file using Nasm'#010+ '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+ '3*2Awasm_obj file using Wasm (Watcom)'#010+ '3*2Anasmobj_obj file using Nasm'#010+ - '3*2Amasm_obj file using Masm (Microsoft)'#010+ - '3*2Atasm_obj file using Tasm (','Borland)'#010+ + '3*2Amasm_obj file using Masm',' (Microsoft)'#010+ + '3*2Atasm_obj file using Tasm (Borland)'#010+ '3*2Aelf_elf32 (Linux) using internal writer'#010+ '3*2Acoff_coff (Go32v2) using internal writer'#010+ '3*2Apecoff_pecoff (Win32) using internal writer'#010+ '4*2Aas_assemble using GNU AS'#010+ - '6*2Aas_Unix o-file using GNU AS'#010+ + '6*2Aas_Unix o-file usi','ng GNU AS'#010+ '6*2Agas_GNU Motorola assembler'#010+ - '6*','2Amit_MIT Syntax (old GAS)'#010+ + '6*2Amit_MIT Syntax (old GAS)'#010+ '6*2Amot_Standard Motorola assembler'#010+ 'A*2Aas_assemble using GNU AS'#010+ 'P*2Aas_assemble using GNU AS'#010+ 'S*2Aas_assemble using GNU AS'#010+ '**1b_generate browser info'#010+ - '**2bl_generate local symbol info'#010+ + '**2bl_generate local',' symbol info'#010+ '**1B_build all modules'#010+ - '**1C','_code generation options:'#010+ + '**1C_code generation options:'#010+ '**2Cc_set default calling convention to '#010+ '**2CD_create also dynamic library (not supported)'#010+ '**2Ce_Compilation with emulated floating point opcodes'#010+ - '**2Cf_Select fpu instruction set to use, see fpc -i for pos','sible '+ + '**2Cf_Select fpu',' instruction set to use, see fpc -i for possible '+ 'values'#010+ '**2Cg_Generate PIC code'#010+ '**2Ch_ bytes heap (between 1023 and 67107840)'#010+ '**2Ci_IO-checking'#010+ '**2Cn_omit linking stage'#010+ '**2Co_check overflow of integer operations'#010+ - '**2Cp_select instruction set, see fpc -i for possible values'#010+ - '*','*2Cr_range checking'#010+ + '**2Cp_select instru','ction set, see fpc -i for possible values'#010+ + '**2Cr_range checking'#010+ '**2CR_verify object method call validity'#010+ '**2Cs_set stack size to '#010+ '**2Ct_stack checking'#010+ '**2CX_create also smartlinked library'#010+ '**1d_defines the symbol '#010+ - '**1D_generate a DEF file'#010+ + '**1D_generate a',' DEF file'#010+ '**2Dd_set description to '#010+ - '*','*2Dv_set DLL version to '#010+ + '**2Dv_set DLL version to '#010+ '*O2Dw_PM application'#010+ '**1e_set path to executable'#010+ '**1E_same as -Cn'#010+ '**1F_set file names and paths:'#010+ - '**2Fa[,y]_for a program load first units and [y] before uses is'+ - ' parsed'#010+ - '**2Fc_sets input codepage',' to '#010+ + '**2Fa[,y]_for a program load first units and [y] before ','uses '+ + 'is parsed'#010+ + '**2Fc_sets input codepage to '#010+ '**2FD_sets the directory where to search for compiler utilities'#010+ '**2Fe_redirect error output to '#010+ '**2FE_set exe/unit output path to '#010+ '**2Fi_adds to include path'#010+ - '**2Fl_adds to library path'#010+ - '**2FL_uses ','as dynamic linker'#010+ + '**2Fl_','adds to library path'#010+ + '**2FL_uses as dynamic linker'#010+ '**2Fo_adds to object path'#010+ '**2Fr_load error message file '#010+ '**2Fu_adds to unit path'#010+ '**2FU_set unit output path to , overrides -FE'#010+ - '*g1g_generate debugger information:'#010+ - '*g2gc_generate checks for pointer','s'#010+ + '*g1g_generate debugger inf','ormation:'#010+ + '*g2gc_generate checks for pointers'#010+ '*g2gd_use dbx'#010+ '*g2gg_use gsym'#010+ '*g2gh_use heap trace unit (for memory leak debugging)'#010+ '*g2gl_use line info unit to show more info for backtraces'#010+ '*g2gv_generates programs traceable with valgrind'#010+ - '*g2gw_generate dwarf debugging info'#010+ - '**1i_informa','tion'#010+ + '*g2gw','_generate dwarf debugging info'#010+ + '**1i_information'#010+ '**2iD_return compiler date'#010+ '**2iV_return compiler version'#010+ '**2iSO_return compiler OS'#010+ '**2iSP_return compiler processor'#010+ '**2iTO_return target OS'#010+ '**2iTP_return target processor'#010+ - '**1I_adds to include path'#010+ - '**1k_Pass to the linker'#010, + '**1I_adds to i','nclude path'#010+ + '**1k_Pass to the linker'#010+ '**1l_write logo'#010+ '**1M_set language mode to '#010+ '**2Mfpc_free pascal dialect (default)'#010+ '**2Mobjfpc_switch some Delphi 2 extensions on'#010+ '**2Mdelphi_tries to be Delphi compatible'#010+ - '**2Mtp_tries to be TP/BP 7.0 compatible'#010+ - '**2Mgpc_tries to be gpc co','mpatible'#010+ + '**2Mtp_tries to be TP/B','P 7.0 compatible'#010+ + '**2Mgpc_tries to be gpc compatible'#010+ '**2Mmacpas_tries to be compatible to the macintosh pascal dialects'#010+ '**1n_don'#039't read the default config file'#010+ '**1N_node tree optimizations'#010+ '**2Nu_unroll loops'#010+ - '**1o_change the name of the executable produced to '#010+ - '**1O_optimiz','ations:'#010+ + '**1o_change the name of the',' executable produced to '#010+ + '**1O_optimizations:'#010+ '**2O-_disable optimizations'#010+ '**2O1_level 1 optimizations (quick and debugger friendly)'#010+ '**2O2_level 2 optimizations (-O1 + quick optimizations)'#010+ - '**2O3_level 3 optimizations (-O2 + slow optimizations)'#010+ + '**2O3_level 3 optimizations (-O2 + slow optimiz','ations)'#010+ '**2Oa=_set alignment'#010+ - '**2Oo[NO',']_enable or disable optimizations, see fpc -i for possibl'+ - 'e values'#010+ + '**2Oo[NO]_enable or disable optimizations, see fpc -i for possible '+ + 'values'#010+ '**2Op_set target cpu for optimizing, see fpc -i for possible values'+ #010+ '**2Os_generate smaller code'#010+ - '**1pg_generate profile code for gprof (defines FPC_PROFILE)'#010+ - '**1R_asse','mbler reading style:'#010+ + '**1pg_generate profile code f','or gprof (defines FPC_PROFILE)'#010+ + '**1R_assembler reading style:'#010+ '**2Rdefault_use default assembler'#010+ '3*2Ratt_read AT&T style assembler'#010+ '3*2Rintel_read Intel style assembler'#010+ '6*2RMOT_read motorola style assembler'#010+ '**1S_syntax options:'#010+ - '**2S2_same as -Mobjfpc'#010+ - '**2Sc_supports operators like',' C (*=,+=,/= and -=)'#010+ + '**2S2_sam','e as -Mobjfpc'#010+ + '**2Sc_supports operators like C (*=,+=,/= and -=)'#010+ '**2Sa_include assertion code.'#010+ '**2Sd_same as -Mdelphi'#010+ '**2Se_error options. is a combination of the following:'#010+ - '**3*_ : compiler stops after the errors (default is 1)'#010+ - '**3*_w : compiler stops also after warnin','gs'#010+ + '**3*_ : compiler stops after the errors (default is 1',')'#010+ + '**3*_w : compiler stops also after warnings'#010+ '**3*_n : compiler stops also after notes'#010+ '**3*_h : compiler stops also after hints'#010+ '**2Sg_allow LABEL and GOTO'#010+ '**2Sh_Use ansistrings'#010+ '**2Si_support C++ styled INLINE'#010+ '**2Sk_load fpcylix unit'#010+ - '**2SI_set interface style to '#010+ - '**3SIcom_COM c','ompatible interface (default)'#010+ + '**2SI_set interface style to '#010+ + '**3SIcom_COM compatible interface (default)'#010+ '**3SIcorba_CORBA compatible interface'#010+ '**2Sm_support macros like C (global)'#010+ '**2So_same as -Mtp'#010+ '**2Sp_same as -Mgpc'#010+ - '**2Ss_constructor name must be init (destructor must be done)'#010+ - '**2St_allow static keyword in obje','cts'#010+ + '**2Ss_constructor name must be init (destructor must ','be done)'#010+ + '**2St_allow static keyword in objects'#010+ '**1s_don'#039't call assembler and linker'#010+ '**2sh_Generate script to link on host'#010+ '**2st_Generate script to link on target'#010+ '**2sr_Skip register allocation phase (use with -alr)'#010+ - '**1T_Target operating system:'#010+ - '3*2Temx_OS/2 via EMX (including EMX','/RSX extender)'#010+ + '**1T_Target operating ','system:'#010+ + '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+ '3*2Tfreebsd_FreeBSD'#010+ '3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+ '3*2Tlinux_Linux'#010+ '3*2Tnetbsd_NetBSD'#010+ '3*2Tnetware_Novell Netware Module (clib)'#010+ - '3*2Tnetwlibc_Novell Netware Module (libc)'#010+ + '3*2Tnetwlibc_Novell Netware Module (lib','c)'#010+ '3*2Topenbsd_OpenBSD'#010+ - '3*2Tos2_OS/2 / eComS','tation'#010+ + '3*2Tos2_OS/2 / eComStation'#010+ '3*2Tsunos_SunOS/Solaris'#010+ '3*2Twatcom_Watcom compatible DOS extender'#010+ '3*2Twdosx_WDOSX DOS extender'#010+ @@ -907,63 +909,63 @@ const msgtxt : array[0..000164,1..240] of char=( '3*2Twince_Windows CE'#010+ '4*2Tlinux_Linux'#010+ '6*2Tamiga_Commodore Amiga'#010+ - '6*2Tatari_Atari ST/STe/TT'#010+ + '6*2Tata','ri_Atari ST/STe/TT'#010+ '6*2Tlinux_Linux/m68k'#010+ - '6*2','Tmacos_Macintosh m68k (not supported)'#010+ + '6*2Tmacos_Macintosh m68k (not supported)'#010+ '6*2Tpalmos_PalmOS'#010+ 'A*2Tlinux_Linux'#010+ 'A*2Twince_Windows CE'#010+ 'P*2Tamiga_AmigaOS on PowerPC'#010+ 'P*2Tdarwin_Darwin and MacOS X on PowerPC'#010+ 'P*2Tlinux_Linux on PowerPC'#010+ - 'P*2Tmacos_MacOS (classic) on PowerPC'#010+ - 'P*2Tmorphos_M','orphOS'#010+ + 'P*2Tmac','os_MacOS (classic) on PowerPC'#010+ + 'P*2Tmorphos_MorphOS'#010+ 'S*2Tlinux_Linux'#010+ '**1u_undefines the symbol '#010+ '**1U_unit options:'#010+ '**2Un_don'#039't check the unit name'#010+ '**2Ur_generate release unit files'#010+ '**2Us_compile a system unit'#010+ - '**1v_Be verbose. is a combination of the following letters:'#010+ - '**2*','_e : Show errors (default) 0 : Show nothing (except errors'+ - ')'#010+ + '**1v_Be verbose. is a',' combination of the following letters:'#010+ + '**2*_e : Show errors (default) 0 : Show nothing (except errors)'#010+ '**2*_w : Show warnings u : Show unit info'#010+ '**2*_n : Show notes t : Show tried/used files'#010+ - '**2*_h : Show hints c : Show condition','als'#010+ + '**2*_h : Sho','w hints c : Show conditionals'#010+ '**2*_i : Show general info d : Show debug info'#010+ '**2*_l : Show linenumbers r : Rhide/GCC compatibility mode'#010+ - '**2*_a : Show everything x : Executable info (Win32 only)'#010+ - '**2*_b : Write file names messages with',' full path'#010+ + '**2*_a : Show everything x : Executable info (Win32 on','ly'+ + ')'#010+ + '**2*_b : Write file names messages with full path'#010+ '**2*_v : write fpcdebug.txt with p : Write tree.log with parse tre'+ 'e'#010+ '**2*_ lots of debugging info'#010+ '3*1W_Win32-like target options'#010+ '3*2WB_Create a relocatable image'#010+ - '3*2WB_Set Image base to Hexadecimal value'#010+ - '3*2WC_Spe','cify console type application'#010+ + '3*2WB_Set Im','age base to Hexadecimal value'#010+ + '3*2WC_Specify console type application'#010+ '3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+ '3*2WF_Specify full-screen type application (OS/2 only)'#010+ '3*2WG_Specify graphic type application'#010+ - '3*2WN_Do not generate relocation code (necessary for debugging)'#010, + '3*2WN_Do not generate',' relocation code (necessary for debugging)'#010+ '3*2WR_Generate relocation code'#010+ 'P*2WC_Specify console type application (MacOS only)'#010+ 'P*2WG_Specify graphic type application (MacOS only)'#010+ 'P*2WT_Specify tool type application (MPW tool, MacOS only)'#010+ - '**1X_executable options:'#010+ - '**2Xc_pass --shared t','o the linker (Unix only)'#010+ + '**1','X_executable options:'#010+ + '**2Xc_pass --shared to the linker (Unix only)'#010+ '**2Xd_don'#039't use standard library search path (needed for cross com'+ 'pile)'#010+ '**2XD_try to link units dynamic (defines FPC_LINK_DYNAMIC)'#010+ '**2Xm_generate link map'#010+ - '**2XM_set the name of the '#039'main'#039' program routine',' (default'+ + '**2XM','_set the name of the '#039'main'#039' program routine (default'+ ' is '#039'main'#039')'#010+ '**2XP_prepend the binutils names with the prefix '#010+ '**2Xr_set library search path to (needed for cross compile)'#010+ '**2Xs_strip all symbols from executable'#010+ - '**2XS_try to link units static (default) (defines FPC_LI','NK_STATIC)'#010+ + '**2XS_try to ','link units static (default) (defines FPC_LINK_STATIC)'#010+ '**2Xt_link with static libraries (-static is passed to linker)'#010+ '**2XX_try to link units smart (defines FPC_LINK_SMART)'#010+ '**1*_'#010+ '**1?_shows this help'#010+ - '**1h_shows this help without waiting'#000 + '**1h_shows this help without w','aiting'#000 ); diff --git a/compiler/utils/mkx86ins.pp b/compiler/utils/mkx86ins.pp index 2601eae9d2..c2df79bfdb 100644 --- a/compiler/utils/mkx86ins.pp +++ b/compiler/utils/mkx86ins.pp @@ -15,36 +15,13 @@ program mkx86ins; const - Version = '1.5.0'; + Version = '1.5.1'; var s : string; i : longint; x86_64 : boolean; -{$ifndef FPC} - procedure readln(var t:text;var s:string); - var - c : char; - i : longint; - begin - c:=#0; - i:=0; - while (not eof(t)) and (c<>#10) do - begin - read(t,c); - if c<>#10 then - begin - inc(i); - s[i]:=c; - end; - end; - if (i>0) and (s[i]=#13) then - dec(i); - s[0]:=chr(i); - end; -{$endif} - function lower(const s : string) : string; { return lowercased string of s @@ -76,35 +53,48 @@ var end; -function formatop(s:string):string; +function formatop(s:string;allowsizeonly:boolean):string; const - replaces=19; + replaces=26; replacetab : array[1..replaces,1..2] of string[32]=( (':',' or ot_colon'), - ('mem8','mem or ot_bits8'), - ('mem16','mem or ot_bits16'), - ('mem32','mem or ot_bits32'), - ('mem64','mem or ot_bits64'), - ('mem80','mem or ot_bits80'), - ('mem','memory'), - ('memory_offs','mem_offs'), - ('imm8','imm or ot_bits8'), - ('imm16','imm or ot_bits16'), - ('imm32','imm or ot_bits32'), - ('imm64','imm or ot_bits64'), - ('imm80','imm or ot_bits80'), - ('imm','immediate'), + ('reg','regnorm'), + ('regmem','regmem'), ('rm8','regmem or ot_bits8'), ('rm16','regmem or ot_bits16'), ('rm32','regmem or ot_bits32'), ('rm64','regmem or ot_bits64'), - ('rm80','regmem or ot_bits80') + ('rm80','regmem or ot_bits80'), + ('mem8','memory or ot_bits8'), + ('mem16','memory or ot_bits16'), + ('mem32','memory or ot_bits32'), + ('mem64','memory or ot_bits64'), + ('mem80','memory or ot_bits80'), + ('mem','memory'), + ('memory_offs','mem_offs'), + ('imm8','immediate or ot_bits8'), + ('imm16','immediate or ot_bits16'), + ('imm32','immediate or ot_bits32'), + ('imm64','immediate or ot_bits64'), + ('imm80','immediate or ot_bits80'), + ('imm','immediate'), + ('8','bits8'), + ('16','bits16'), + ('32','bits32'), + ('64','bits64'), + ('80','bits80') ); var i : longint; begin for i:=1to replaces do - replace(s,replacetab[i,1],replacetab[i,2]); + begin + if s=replacetab[i,1] then + begin + s:=replacetab[i,2]; + break; + end; + end; formatop:=s; end; @@ -349,16 +339,11 @@ begin if (hs='void') or (hs='ignore') then break; inc(ops); - optypes[ops]:=optypes[ops]+'ot_'+formatop(hs); -{ if s[i]=':' then - begin - inc(i); - optypes[ops]:=optypes[ops]+' or ot_'+formatop(readstr); - end;} + optypes[ops]:=optypes[ops]+'ot_'+formatop(hs,false); while s[i]='|' do begin inc(i); - optypes[ops]:=optypes[ops]+' or ot_'+formatop(readstr); + optypes[ops]:=optypes[ops]+' or ot_'+formatop(readstr,true); end; if s[i] in [',',':'] then inc(i) diff --git a/compiler/x86/aasmcpu.pas b/compiler/x86/aasmcpu.pas index 9e89ff8c31..daa0cb7bd9 100644 --- a/compiler/x86/aasmcpu.pas +++ b/compiler/x86/aasmcpu.pas @@ -51,15 +51,14 @@ interface OT_BITS32 = $00000004; OT_BITS64 = $00000008; { FPU only } OT_BITS80 = $00000010; + + OT_SIZE_MASK = $0000001F; { all the size attributes } + OT_NON_SIZE = longint(not OT_SIZE_MASK); + OT_FAR = $00000020; { this means 16:16 or 16:32, like in CALL/JMP } OT_NEAR = $00000040; OT_SHORT = $00000080; - - OT_SIZE_MASK = $000000FF; { all the size attributes } - OT_NON_SIZE = longint(not OT_SIZE_MASK); - OT_SIGNED = $00000100; { the operand need to be signed -128-127 } - OT_TO = $00000200; { operand is followed by a colon } { reverse effect in FADD, FSUB &c } OT_COLON = $00000400; @@ -233,7 +232,6 @@ interface private FOperandOrder : TOperandOrder; procedure init(_size : topsize); { this need to be called by all constructor } - {$ifndef NOAG386BIN} public { the next will reset all instructions that can change in pass 2 } procedure ResetPass1;override; @@ -264,7 +262,6 @@ interface function NeedAddrPrefix(opidx:byte):boolean; procedure Swapoperands; function FindInsentry(objdata:TObjData):boolean; - {$endif NOAG386BIN} end; function spilling_create_load(const ref:treference;r:tregister): tai; @@ -501,12 +498,10 @@ implementation FOperandOrder:=op_att; segprefix:=NR_NO; opsize:=_size; -{$ifndef NOAG386BIN} insentry:=nil; LastInsOffset:=-1; InsOffset:=0; InsSize:=0; -{$endif} end; @@ -979,8 +974,6 @@ implementation Assembler *****************************************************************************} -{$ifndef NOAG386BIN} - type ea=packed record sib_present : boolean; @@ -1051,7 +1044,7 @@ implementation not assigned(currsym) or (currsym.objsection=objdata.currobjsec) ) then - ot:=OT_IMM32 or OT_SHORT + ot:=OT_IMM8 or OT_SHORT else ot:=OT_IMM32 or OT_NEAR; end @@ -1132,13 +1125,13 @@ implementation begin insot:=p^.optypes[i]; currot:=oper[i]^.ot; - { Check that the operand flags } - if (insot and (not currot))<>0 then + { Check the operand flags } + if (insot and (not currot) and OT_NON_SIZE)<>0 then exit; - { Check if the passed operand size matches with the required - instruction operand size. The second 'and' with insot is used - to allow matching with undefined size } - if ((currot xor insot) and insot and OT_SIZE_MASK)<>0 then + { Check if the passed operand size matches with one of + the supported operand sizes } + if ((insot and OT_SIZE_MASK)<>0) and + ((insot and currot and OT_SIZE_MASK)<>(currot and OT_SIZE_MASK)) then exit; end; @@ -1429,9 +1422,6 @@ implementation {No register, so memory reference.} if (input.typ<>top_ref) then internalerror(200409262); - if ((input.ref^.index<>NR_NO) and (getregtype(input.ref^.index)<>R_INTREGISTER)) or - ((input.ref^.base<>NR_NO) and (getregtype(input.ref^.base)<>R_INTREGISTER)) then - internalerror(200301081); ir:=input.ref^.index; br:=input.ref^.base; isub:=getsubreg(ir); @@ -1439,7 +1429,10 @@ implementation s:=input.ref^.scalefactor; o:=input.ref^.offset; sym:=input.ref^.symbol; - { it's direct address } + if ((ir<>NR_NO) and (getregtype(ir)<>R_INTREGISTER)) or + ((br<>NR_NO) and (getregtype(br)<>R_INTREGISTER)) then + internalerror(200301081); + { it's direct address } if (br=NR_NO) and (ir=NR_NO) then begin { it's a pure offset } @@ -1717,7 +1710,7 @@ implementation inc(codes,c); inc(len,c); end; - 8,9,10 : + 8,9,10,11 : begin inc(codes); inc(len); @@ -1747,38 +1740,34 @@ implementation 192,193,194 : if NeedAddrPrefix(c-192) then inc(len); - 208, - 210 : + 208,209,210 : + begin + case (oper[c-208]^.ot and OT_SIZE_MASK) of + OT_BITS16, + OT_BITS64 : + inc(len); + end; + end; + 212, + 214 : inc(len); 200, 201, 202, - 209, - 211, + 213, + 215, 217,218: ; 219,220 : inc(len); - 216 : + 64..191 : begin - inc(codes); - inc(len); - end; - 224,225,226 : - begin - InternalError(777002); + if not process_ea(oper[(c shr 3) and 7]^, ea_data, 0) then + Message(asmw_e_invalid_effective_address) + else + inc(len,ea_data.size); end; else - begin - if (c>=64) and (c<=191) then - begin - if not process_ea(oper[(c shr 3) and 7]^, ea_data, 0) then - Message(asmw_e_invalid_effective_address) - else - inc(len,ea_data.size); - end - else - InternalError(777003); - end; + InternalError(200603141); end; until false; calcsize:=len; @@ -1796,6 +1785,8 @@ implementation * on operand 0 * \10, \11, \12 - a literal byte follows in the code stream, to be added * to the register value of operand 0, 1 or 2 + * \13 - a literal byte follows in the code stream, to be added + * to the condition code value of the instruction. * \17 - encodes the literal byte 0. (Some compilers don't take * kindly to a zero byte in the _middle_ of a compile time * string constant, so I had to put this hack in.) @@ -1816,21 +1807,19 @@ implementation * field the register value of operand b. * \2ab - a ModRM, calculated on EA in operand a, with the spare * field equal to digit b. - * \30x - might be an 0x67 byte, depending on the address size of + * \300,\301,\302 - might be an 0x67 or 0x48 byte, depending on the address size of * the memory reference in operand x. * \310 - indicates fixed 16-bit address size, i.e. optional 0x67. * \311 - indicates fixed 32-bit address size, i.e. optional 0x67. * \312 - indicates fixed 64-bit address size, i.e. optional 0x48. - * \320 - indicates fixed 16-bit operand size, i.e. optional 0x66. - * \321 - indicates fixed 32-bit operand size, i.e. optional 0x66. - * \322 - indicates fixed 64-bit operand size, i.e. optional 0x48. - * \323 - indicates that this instruction is only valid when the + * \320,\321,\322 - might be an 0x66 or 0x48 byte, depending on the operand + * size of operand x. + * \324 - indicates fixed 16-bit operand size, i.e. optional 0x66. + * \325 - indicates fixed 32-bit operand size, i.e. optional 0x66. + * \326 - indicates fixed 64-bit operand size, i.e. optional 0x48. + * \327 - indicates that this instruction is only valid when the * operand size is the default (instruction to disassembler, * generates no code in the assembler) - * \330 - a literal byte follows in the code stream, to be added - * to the condition code value of the instruction. - * \340 - reserve bytes of uninitialised storage. - * Operand 0 had better be a segmentless constant. } var @@ -1931,6 +1920,12 @@ implementation inc(codes); objdata.writebytes(bytes,1); end; + 11 : + begin + bytes[0]:=ord(codes^)+condval[condition]; + inc(codes); + objdata.writebytes(bytes,1); + end; 15 : begin bytes[0]:=0; @@ -2031,31 +2026,37 @@ implementation bytes[0]:=$67; objdata.writebytes(bytes,1); end; - 208 : + 208,209,210 : + begin + case oper[c-208]^.ot and OT_SIZE_MASK of + OT_BITS16 : + begin + bytes[0]:=$66; + objdata.writebytes(bytes,1); + end; + OT_BITS64 : + begin +{$ifndef x86_64} + Message(asmw_e_64bit_not_supported); +{$endif x86_64} + bytes[0]:=$48; + objdata.writebytes(bytes,1); + end; + end; + end; + 212 : begin bytes[0]:=$66; objdata.writebytes(bytes,1); end; - 210 : + 214 : begin +{$ifndef x86_64} + Message(asmw_e_64bit_not_supported); +{$endif x86_64} bytes[0]:=$48; objdata.writebytes(bytes,1); end; - 216 : - begin - bytes[0]:=ord(codes^)+condval[condition]; - inc(codes); - objdata.writebytes(bytes,1); - end; - 201, - 202, - 209, - 211, - 217,218 : - begin - { these are dissambler hints or 32 bit prefixes which - are not needed } - end; 219 : begin bytes[0]:=$f3; @@ -2066,9 +2067,17 @@ implementation bytes[0]:=$f2; objdata.writebytes(bytes,1); end; + 201, + 202, + 213, + 215, + 217,218 : + begin + { these are dissambler hints or 32 bit prefixes which + are not needed } + end; 31, - 48,49,50, - 224,225,226 : + 48,49,50 : begin InternalError(777006); end @@ -2131,7 +2140,6 @@ implementation end; until false; end; -{$endif NOAG386BIN} function taicpu.is_same_reg_move(regtype: Tregistertype):boolean; @@ -2260,12 +2268,9 @@ implementation *****************************************************************************} procedure BuildInsTabCache; -{$ifndef NOAG386BIN} var i : longint; -{$endif} begin -{$ifndef NOAG386BIN} new(instabcache); FillChar(instabcache^,sizeof(tinstabcache),$ff); i:=0; @@ -2275,17 +2280,14 @@ implementation InsTabCache^[InsTab[i].OPcode]:=i; inc(i); end; -{$endif NOAG386BIN} end; procedure InitAsm; begin build_spilling_operation_type_table; -{$ifndef NOAG386BIN} if not assigned(instabcache) then BuildInsTabCache; -{$endif NOAG386BIN} end; @@ -2296,13 +2298,11 @@ implementation dispose(operation_type_table); operation_type_table:=nil; end; -{$ifndef NOAG386BIN} if assigned(instabcache) then begin dispose(instabcache); instabcache:=nil; end; -{$endif NOAG386BIN} end; diff --git a/compiler/x86/nx86add.pas b/compiler/x86/nx86add.pas index 3a05998d31..78d1348c46 100644 --- a/compiler/x86/nx86add.pas +++ b/compiler/x86/nx86add.pas @@ -874,7 +874,7 @@ unit nx86add; left_and_right_must_be_fpureg; {$ifndef x86_64} - if aktoptimizecputype=cpu_Pentium3 then + if aktcputype>=cpu_Pentium3 then {$endif i386} begin secondpass(left); diff --git a/compiler/x86/rax86.pas b/compiler/x86/rax86.pas index f176bd5fbd..a6d2b8aced 100644 --- a/compiler/x86/rax86.pas +++ b/compiler/x86/rax86.pas @@ -554,6 +554,16 @@ begin siz:=S_FAR; end; +{$ifdef x86_64} + { Convert movq with at least one general registers to mov instruction } + if (opcode=A_MOVQ) and + (ops=2) and + ( + (operands[1].opr.typ=OPR_REGISTER) or + (operands[2].opr.typ=OPR_REGISTER) + ) then + opcode:=A_MOV; +{$endif x86_64} { GNU AS interprets FDIV without operand differently for version 2.9.1 and 2.10 @@ -683,15 +693,6 @@ begin end; end; - {This is dead code since opcode and opsize aren't used from here! - Commented out... - if (opcode=A_CALL) and (opsize=S_FAR) then - opcode:=A_LCALL; - if (opcode=A_JMP) and (opsize=S_FAR) then - opcode:=A_LJMP; - if (opcode=A_LCALL) or (opcode=A_LJMP) then - opsize:=S_FAR;} - { Condition ? } if condition<>C_None then ai.SetCondition(condition); @@ -700,11 +701,7 @@ begin if assigned(ai) then begin { Check the instruction if it's valid } -{$ifndef NOAG386BIN} -{$ifndef x86_64} ai.CheckIfValid; -{$endif x86_64} -{$endif NOAG386BIN} p.concat(ai); end else diff --git a/compiler/x86/x86ins.dat b/compiler/x86/x86ins.dat index cdb99fe790..446f17234d 100644 --- a/compiler/x86/x86ins.dat +++ b/compiler/x86/x86ins.dat @@ -34,81 +34,45 @@ void \1\x3F 8086 [ADC,adcX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -reg32,reg32 \321\300\1\x11\101 386 -reg16,reg16 \320\300\1\x11\101 8086 -reg8,reg8 \300\1\x10\101 8086 -mem,reg32 \321\300\1\x11\101 386,SM -mem,reg16 \320\300\1\x11\101 8086,SM -mem,reg8 \300\1\x10\101 8086,SM -reg32,mem \321\301\1\x13\110 386,SM -reg16,mem \320\301\1\x13\110 8086,SM -reg8,mem \301\1\x12\110 8086,SM -rm32,imm8 \321\300\1\x83\202\15 386 -rm16,imm8 \320\300\1\x83\202\15 8086 -reg_eax,imm \321\1\x15\41 386,SM -reg_ax,imm \320\1\x15\31 8086,SM -reg_al,imm \1\x14\21 8086,SM -rm32,imm \321\300\1\x81\202\41 386,SM -rm16,imm \320\300\1\x81\202\31 8086,SM -rm8,imm \300\1\x80\202\21 8086,SM -mem,imm32 \321\300\1\x81\202\41 386,SM -mem,imm16 \320\300\1\x81\202\31 8086,SM -mem,imm8 \300\1\x80\202\21 8086,SM -reg32,reg32 \321\301\1\x13\110 386 -reg16,reg16 \320\301\1\x13\110 8086 -reg8,reg8 \301\1\x12\110 8086 +regmem,reg16|32|64 \320\300\1\x11\101 8086,SM +reg16|32|64,regmem \320\301\1\x13\110 8086,SM +rm8,reg8 \300\1\x10\101 8086 +reg8,rm8 \301\1\x12\110 8086 +rm16|32|64,imm8 \320\300\1\x83\202\15 8086 +reg_eax|64,imm \320\1\x15\41 386,SD +rm32|64,imm \320\300\1\x81\202\41 386,SD +reg_ax,imm \324\1\x15\31 8086,SW +rm16,imm \324\300\1\x81\202\31 8086,SW +reg_al,imm \1\x14\21 8086,SB +rm8,imm \300\1\x80\202\21 8086,SB [ADD,addX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\1\x01\101 386 -reg16,reg16 \320\300\1\x01\101 8086 -reg8,reg8 \300\17\101 8086 -mem,reg32 \321\300\1\x01\101 386,SM -mem,reg16 \320\300\1\x01\101 8086,SM -mem,reg8 \300\17\101 8086,SM -reg32,mem \321\301\1\x03\110 386,SM -reg16,mem \320\301\1\x03\110 8086,SM -reg8,mem \301\1\x02\110 8086,SM -rm32,imm8 \321\300\1\x83\200\15 386 -rm16,imm8 \320\300\1\x83\200\15 8086 -reg_eax,imm \321\1\x05\41 386,SM -reg_ax,imm \320\1\x05\31 8086,SM -reg_al,imm \1\x04\21 8086,SM -rm32,imm \321\300\1\x81\200\41 386,SM -rm16,imm \320\300\1\x81\200\31 8086,SM -rm8,imm \300\1\x80\200\21 8086,SM -mem,imm32 \321\300\1\x81\200\41 386,SM -mem,imm16 \320\300\1\x81\200\31 8086,SM -mem,imm8 \300\1\x80\200\21 8086,SM -reg32,reg32 \321\301\1\x03\110 386 -reg16,reg16 \320\301\1\x03\110 8086 -reg8,reg8 \301\1\x02\110 8086 +regmem,reg16|32|64 \320\300\1\x01\101 8086,SM +reg16|32|64,regmem \320\301\1\x03\110 8086,SM +rm8,reg8 \300\17\101 8086 +reg8,rm8 \301\1\x02\110 8086,SM +rm16|32|64,imm8 \320\300\1\x83\200\15 8086 +reg_eax|64,imm \320\1\x05\41 386,SD +rm32|64,imm \320\300\1\x81\200\41 386,SD +reg_ax,imm \324\1\x05\31 8086,SW +rm16,imm \324\300\1\x81\200\31 8086,SW +reg_al,imm \1\x04\21 8086,SB +rm8,imm \300\1\x80\200\21 8086,SB [AND,andX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\1\x21\101 386 -reg16,reg16 \320\300\1\x21\101 8086 -reg8,reg8 \300\1\x20\101 8086 -mem,reg32 \321\300\1\x21\101 386,SM -mem,reg16 \320\300\1\x21\101 8086,SM -mem,reg8 \300\1\x20\101 8086,SM -reg32,mem \321\301\1\x23\110 386,SM -reg16,mem \320\301\1\x23\110 8086,SM -reg8,mem \301\1\x22\110 8086,SM -rm32,imm8 \321\300\1\x83\204\15 386 -rm16,imm8 \320\300\1\x83\204\15 8086 -reg_eax,imm \321\1\x25\41 386,SM -reg_ax,imm \320\1\x25\31 8086,SM -reg_al,imm \1\x24\21 8086,SM -rm32,imm \321\300\1\x81\204\41 386,SM -rm16,imm \320\300\1\x81\204\31 8086,SM -rm8,imm \300\1\x80\204\21 8086,SM -mem,imm32 \321\300\1\x81\204\41 386,SM -mem,imm16 \320\300\1\x81\204\31 8086,SM -mem,imm8 \300\1\x80\204\21 8086,SM -reg32,reg32 \321\301\1\x23\110 386 -reg16,reg16 \320\301\1\x23\110 8086 -reg8,reg8 \301\1\x22\110 8086 +regmem,reg16|32|64 \320\300\1\x21\101 8086,SM +reg16|32|64,regmem \320\301\1\x23\110 8086,SM +rm8,reg8 \300\1\x20\101 8086 +reg8,rm8 \301\1\x22\110 8086 +rm16|32|64,imm8 \320\300\1\x83\204\15 8086 +reg_eax|64,imm \320\1\x25\41 386,SD +rm32|64,imm \320\300\1\x81\204\41 386,SD +reg_ax,imm \324\1\x25\31 8086,SW +rm16,imm \324\300\1\x81\204\31 8086,SW +reg_al,imm \1\x24\21 8086,SB +rm8,imm \300\1\x80\204\21 8086,SB [ARPL,arplX] (Ch_WFlags, Ch_None, Ch_None) @@ -117,99 +81,62 @@ mem,reg16 \300\1\x63\101 286,PROT,SM [BOUND,boundX] (Ch_Rop1, Ch_None, Ch_None) -reg32,mem \321\301\1\x62\110 386 -reg16,mem \320\301\1\x62\110 186 +reg16|32|64,mem \320\301\1\x62\110 186 [BSF,bsfX] (Ch_Wop2, Ch_WFlags, Ch_Rop1) -reg32,reg32 \321\301\2\x0F\xBC\110 386 -reg16,reg16 \320\301\2\x0F\xBC\110 386 -reg32,mem \321\301\2\x0F\xBC\110 386,SM -reg16,mem \320\301\2\x0F\xBC\110 386,SM +reg16|32|64,regmem \320\301\2\x0F\xBC\110 386,SM [BSR,bsrX] (Ch_Wop2, Ch_WFlags, Ch_Rop1) -reg32,reg32 \321\301\2\x0F\xBD\110 386 -reg16,reg16 \320\301\2\x0F\xBD\110 386 -reg32,mem \321\301\2\x0F\xBD\110 386,SM -reg16,mem \320\301\2\x0F\xBD\110 386,SM +reg16|32|64,regmem \320\301\2\x0F\xBD\110 386,SM [BSWAP,bswapX] (Ch_MOp1, Ch_None, Ch_None) -reg32 \321\1\x0F\10\xC8 486 +reg32|64 \320\1\x0F\10\xC8 486 [BT,btX] (Ch_WFlags, Ch_Rop1, Ch_Rop2) -reg32,reg32 \321\300\2\x0F\xA3\101 386 -reg16,reg16 \320\300\2\x0F\xA3\101 386 -mem,reg32 \321\300\2\x0F\xA3\101 386,SM -mem,reg16 \320\300\2\x0F\xA3\101 386,SM -rm32,imm \321\300\2\x0F\xBA\204\25 386,SB -rm16,imm \320\300\2\x0F\xBA\204\25 386,SB +regmem,reg16|32|64 \320\300\2\x0F\xA3\101 386,SM +rm16|32|64,imm \320\300\2\x0F\xBA\204\25 386,SB [BTC,btcX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\2\x0F\xBB\101 386 -reg16,reg16 \320\300\2\x0F\xBB\101 386 -mem,reg32 \321\300\2\x0F\xBB\101 386,SM -mem,reg16 \320\300\2\x0F\xBB\101 386,SM -rm32,imm \321\300\2\x0F\xBA\207\25 386,SB -rm16,imm \320\300\2\x0F\xBA\207\25 386,SB +regmem,reg16|32|64 \320\300\2\x0F\xBB\101 386,SM +rm16|32|64,imm \320\300\2\x0F\xBA\207\25 386,SB [BTR,btrX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\2\x0F\xB3\101 386 -reg16,reg16 \320\300\2\x0F\xB3\101 386 -mem,reg32 \321\300\2\x0F\xB3\101 386,SM -mem,reg16 \320\300\2\x0F\xB3\101 386,SM -rm32,imm \321\300\2\x0F\xBA\206\25 386,SB -rm16,imm \320\300\2\x0F\xBA\206\25 386,SB +regmem,reg16|32|64 \320\300\2\x0F\xB3\101 386,SM +rm16|32|64,imm \320\300\2\x0F\xBA\206\25 386,SB [BTS,btsX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\2\x0F\xAB\101 386 -reg16,reg16 \320\300\2\x0F\xAB\101 386 -mem,reg32 \321\300\2\x0F\xAB\101 386,SM -mem,reg16 \320\300\2\x0F\xAB\101 386,SM -rm32,imm \321\300\2\x0F\xBA\205\25 386,SB -rm16,imm \320\300\2\x0F\xBA\205\25 386,SB +regmem,reg16|32|64 \320\300\2\x0F\xAB\101 386,SM +rm16|32|64,imm \320\300\2\x0F\xBA\205\25 386,SB [CALL,call] ; don't know value of any register (Ch_ROp1, Ch_All, Ch_None) -imm \323\1\xE8\64 8086 -reg32 \321\300\1\xFF\202 386 -reg16 \320\300\1\xFF\202 8086 -mem32 \321\300\1\xFF\202 386 -mem16 \320\300\1\xFF\202 8086 -mem \323\300\1\xFF\202 8086 -imm|near \323\1\xE8\64 8086 -imm|far \323\1\x9A\34\37 8086,ND -imm16 \320\1\xE8\64 8086 -imm16|near \320\1\xE8\64 8086 -imm16|far \320\1\x9A\34\37 8086,ND -imm32 \321\1\xE8\64 8086 -imm32|near \321\1\xE8\64 8086 -imm32|far \321\1\x9A\34\37 8086,ND -imm:imm \323\1\x9A\35\30 8086 -imm16:imm \320\1\x9A\31\30 8086 -imm:imm16 \320\1\x9A\31\30 8086 -imm32:imm \321\1\x9A\41\30 386 -imm:imm32 \321\1\x9A\41\30 386 -mem|far \323\300\1\xFF\203 8086 -mem16|far \320\300\1\xFF\203 8086 -mem32|far \321\300\1\xFF\203 386 -mem|near \323\300\1\xFF\202 8086 -mem16|near \320\300\1\xFF\202 8086 -mem32|near \321\300\1\xFF\202 386 +imm \320\1\xE8\64 8086 +rm16|32|64 \320\300\1\xFF\202 8086 +imm|near \320\1\xE8\64 8086 +imm|far \320\1\x9A\34\37 8086,ND +mem|near \320\300\1\xFF\202 8086 +mem|far \320\300\1\xFF\203 8086 +imm:imm \327\1\x9A\35\30 8086 +imm16:imm \324\1\x9A\31\30 8086 +imm:imm16 \324\1\x9A\31\30 8086 +imm32:imm \325\1\x9A\41\30 386 +imm:imm32 \325\1\x9A\41\30 386 [CBW,cbtw] (Ch_MEAX, Ch_None, Ch_None) -void \320\1\x98 8086 +void \324\1\x98 8086 [CDQ,cltd] (Ch_MEAX, Ch_WEDX, Ch_None) -void \321\1\x99 386 +void \325\1\x99 386 [CLC] (Ch_WFlags, Ch_None, Ch_None) @@ -233,29 +160,20 @@ void \1\xF5 8086 [CMP,cmpX] (Ch_ROp1, Ch_ROp2, Ch_WFlags) -reg32,reg32 \321\301\1\x3B\110 386 -reg16,reg16 \320\301\1\x3B\110 8086 -reg8,reg8 \301\1\x3A\110 8086 -mem,reg32 \321\300\1\x39\101 386,SM -mem,reg16 \320\300\1\x39\101 8086,SM -mem,reg8 \300\1\x38\101 8086,SM -reg32,mem \321\301\1\x3B\110 386,SM -reg16,mem \320\301\1\x3B\110 8086,SM -reg8,mem \301\1\x3A\110 8086,SM -rm32,imm8 \321\300\1\x83\207\15 386 -rm16,imm8 \320\300\1\x83\207\15 8086 -reg_eax,imm \321\1\x3D\41 386,SM -reg_ax,imm \320\1\x3D\31 8086,SM -reg_al,imm \1\x3C\21 8086,SM -rm32,imm \321\300\1\x81\207\41 386,SM -rm16,imm \320\300\1\x81\207\31 8086,SM -rm8,imm \300\1\x80\207\21 8086,SM -mem,imm32 \321\300\1\x81\207\41 386,SM -mem,imm16 \320\300\1\x81\207\31 8086,SM -mem,imm8 \300\1\x80\207\21 8086,SM -reg32,reg32 \321\300\1\x39\101 386 -reg16,reg16 \320\300\1\x39\101 8086 -reg8,reg8 \300\1\x38\101 8086 +regmem,reg16|32|64 \320\300\1\x39\101 8086,SM +reg16|32|64,regmem \320\301\1\x3B\110 8086,SM +rm8,reg8 \300\1\x38\101 8086 +reg8,rm8 \301\1\x3A\110 8086 +rm16|32|64,imm8 \320\300\1\x83\207\15 8086 +reg_eax|64,imm \325\1\x3D\41 386,SD +rm32|64,imm \320\300\1\x81\207\41 386,SD +reg_ax,imm \324\1\x3D\31 8086,SW +rm16,imm \324\300\1\x81\207\31 8086,SW +reg_al,imm \1\x3C\21 8086,SB +rm8,imm \300\1\x80\207\21 8086,SB +mem,imm32 \325\300\1\x81\207\41 386,SD +mem,imm16 \324\300\1\x81\207\31 8086,SW +mem,imm8 \300\1\x80\207\21 8086,SB [CMPSB] (Ch_All, Ch_None, Ch_None) @@ -263,31 +181,23 @@ void \332\1\xA6 8086 [CMPSD,cmpsl] (Ch_All, Ch_None, Ch_None) -void \332\321\1\xA7 386 +void \332\325\1\xA7 386 xmmreg,xmmreg,imm \331\3\xF2\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2 xmmreg,mem,imm \301\331\3\xF2\x0F\xC2\110\26 WILLAMETTE,SSE2,SB,AR2 [CMPSW] (Ch_All, Ch_None, Ch_None) -void \332\320\1\xA7 8086 +void \332\324\1\xA7 8086 [CMPXCHG,cmpxchgX] (Ch_All, Ch_None, Ch_None) -reg32,reg32 \321\300\2\x0F\xB1\101 PENT -reg16,reg16 \320\300\2\x0F\xB1\101 PENT -reg8,reg8 \300\2\x0F\xB0\101 PENT -mem,reg32 \321\300\2\x0F\xB1\101 PENT,SM -mem,reg16 \320\300\2\x0F\xB1\101 PENT,SM -mem,reg8 \300\2\x0F\xB0\101 PENT,SM +regmem,reg16|32|64 \320\300\2\x0F\xB1\101 PENT,SM +rm8,reg8 \300\2\x0F\xB0\101 PENT [CMPXCHG486,cmpxchg486X] (Ch_All, Ch_None, Ch_None) -reg32,reg32 \321\300\2\x0F\xA7\101 486,UNDOC -reg16,reg16 \320\300\2\x0F\xA7\101 486,UNDOC -reg8,reg8 \300\2\x0F\xA6\101 486,UNDOC -mem,reg32 \321\300\2\x0F\xA7\101 486,SM,UNDOC -mem,reg16 \320\300\2\x0F\xA7\101 486,SM,UNDOC -mem,reg8 \300\2\x0F\xA6\101 486,SM,UNDOC +regmem,reg16|32|64 \320\300\2\x0F\xA7\101 486,SM +rm8,reg8 \300\2\x0F\xA6\101 486,UNDOC [CMPXCHG8B,cmpxchg8bX] (Ch_All, Ch_None, Ch_None) @@ -299,11 +209,11 @@ void \2\x0F\xA2 PENT [CWD] (Ch_MEAX, Ch_WEDX, Ch_None) -void \320\1\x99 8086 +void \324\1\x99 8086 [CWDE,cwtl] (Ch_MEAX, Ch_None, Ch_None) -void \321\1\x98 386 +void \325\1\x98 386 [DAA] (Ch_MEAX, Ch_None, Ch_None) @@ -315,16 +225,13 @@ void \1\x2F 8086 [DEC,decX] (Ch_Mop1, Ch_WFlags, Ch_None) -reg32 \321\10\x48 386 -reg16 \320\10\x48 8086 -rm32 \321\300\1\xFF\201 386 -rm16 \320\300\1\xFF\201 8086 +reg16|32|64 \320\10\x48 8086 +rm16|32|64 \320\300\1\xFF\201 8086 rm8 \300\1\xFE\201 8086 [DIV,divX] (Ch_RWEAX, Ch_WEDX, Ch_WFlags) -rm32 \321\300\1\xF7\206 386 -rm16 \320\300\1\xF7\206 8086 +rm16|32|64 \320\300\1\xF7\206 8086 rm8 \300\1\xF6\206 8086 [EMMS] @@ -541,7 +448,7 @@ mem32 \300\1\xDA\207 8086,FPU [FILD,fildR] (Ch_FPU, Ch_ROp1, Ch_None) mem32 \300\1\xDB\200 8086,FPU -mem16 \320\300\1\xDF\200 8086,FPU +mem16 \324\300\1\xDF\200 8086,FPU mem64 \300\1\xDF\205 8086,FPU [FIMUL,fimulR] @@ -560,12 +467,12 @@ void \3\x9B\xDB\xE3 8086,FPU [FIST,fistR] (Ch_Wop1, Ch_None, Ch_None) mem32 \300\1\xDB\202 8086,FPU -mem16 \320\300\1\xDF\202 8086,FPU +mem16 \324\300\1\xDF\202 8086,FPU [FISTP,fistpR] (Ch_Wop1, Ch_None, Ch_None) mem32 \300\1\xDB\203 8086,FPU -mem16 \320\300\1\xDF\203 8086,FPU +mem16 \324\300\1\xDF\203 8086,FPU mem64 \300\1\xDF\207 8086,FPU [FISTTP] @@ -852,10 +759,7 @@ void \1\xF4 8086,PRIV [IBTS,ibtsX] (Ch_All, Ch_None, Ch_None) -reg32,reg32 \321\300\2\x0F\xA7\101 386,UNDOC,ND -reg16,reg16 \320\300\2\x0F\xA7\101 386,UNDOC,ND -mem,reg32 \321\300\2\x0F\xA7\101 386,SD,UNDOC,ND -mem,reg16 \320\300\2\x0F\xA7\101 386,SW,UNDOC,ND +regmem,reg16|32|64 \320\300\2\x0F\xA7\101 386,SM,UNDOC,ND [ICEBP] (Ch_All, Ch_None, Ch_None) @@ -863,47 +767,34 @@ void \1\xF1 386,ND [IDIV,idivX] (Ch_RWEAX, Ch_WEDX, Ch_WFlags) -rm32 \321\300\1\xF7\207 386 -rm16 \320\300\1\xF7\207 8086 +rm16|32|64 \320\300\1\xF7\207 8086 rm8 \300\1\xF6\207 8086 [IMUL,imulX] (Ch_RWEAX, Ch_WEDX, Ch_WFlags) -reg32,reg32 \321\301\2\x0F\xAF\110 386 -reg16,reg16 \320\301\2\x0F\xAF\110 386 +reg16|32|64,regmem \320\301\2\x0F\xAF\110 386,SM +rm16|32|64 \320\300\1\xF7\205 8086 +reg32|64,regmem,imm8 \320\301\1\x6B\110\16 286,SM +reg32|64,regmem,imm \320\301\1\x69\110\42 286,SM,SD,AR2 +reg32|64,imm8 \320\1\x6B\100\15 286 +reg32|64,imm \320\1\x69\100\41 286,SD +reg16,regmem,imm8 \324\301\1\x6B\110\16 286,SM +reg16,regmem,imm \324\301\1\x69\110\32 286,SM,SW,AR2 +reg16,imm8 \324\1\x6B\100\15 286 +reg16,imm \324\1\x69\100\31 286,SW rm8 \300\1\xF6\205 8086 -rm16 \320\300\1\xF7\205 8086 -rm32 \321\300\1\xF7\205 386 -reg32,mem \321\301\2\x0F\xAF\110 386,SM -reg32,mem,imm8 \321\301\1\x6B\110\16 386,SM -reg32,reg32,imm8 \321\301\1\x6B\110\16 386 -reg32,mem,imm \321\301\1\x69\110\42 386,SM -reg32,reg32,imm \321\301\1\x69\110\42 386,SM -reg32,imm8 \321\1\x6B\100\15 386 -reg32,imm \321\1\x69\100\41 386,SM -reg16,mem \320\301\2\x0F\xAF\110 386,SM -reg16,mem,imm8 \320\301\1\x6B\110\16 286,SM -reg16,reg16,imm8 \320\301\1\x6B\110\16 286 -reg16,mem,imm \320\301\1\x69\110\32 286,SM -reg16,reg16,imm \320\301\1\x69\110\32 286,SM -reg16,imm8 \320\1\x6B\100\15 286 -reg16,imm \320\1\x69\100\31 286,SM [IN,inX] (Ch_Wop2, Ch_Rop1, Ch_None) reg_al,imm \1\xE4\25 8086,SB -reg_ax,imm \320\1\xE5\25 8086,SB -reg_eax,imm \321\1\xE5\25 386,SB +reg_ax|32|64,imm \320\1\xE5\25 8086,SB reg_al,reg_dx \1\xEC 8086 -reg_ax,reg_dx \320\1\xED 8086 -reg_eax,reg_dx \321\1\xED 386 +reg_ax|32|64,reg_dx \320\1\xED 8086 [INC,incX] (Ch_Mop1, Ch_WFlags, Ch_None) -reg32 \321\10\x40 386 -reg16 \320\10\x40 8086 -rm32 \321\300\1\xFF\200 386 -rm16 \320\300\1\xFF\200 8086 +reg16|32|64 \320\10\x40 8086 +rm16|32|64 \320\300\1\xFF\200 8086 rm8 \300\1\xFE\200 8086 [INSB] @@ -912,11 +803,11 @@ void \1\x6C 186 [INSD,insl] (Ch_WMemEDI, Ch_RWEDI, Ch_REDX) -void \321\1\x6D 386 +void \325\1\x6D 386 [INSW] (Ch_WMemEDI, Ch_RWEDI, Ch_REDX) -void \320\1\x6D 186 +void \324\1\x6D 186 [INT] (Ch_All, Ch_None, Ch_None) @@ -952,52 +843,37 @@ mem \300\2\x0F\x01\207 486,PRIV [IRET] (Ch_All, Ch_None, Ch_None) -void \323\1\xCF 8086 +void \327\1\xCF 8086 [IRETD,iret] (Ch_All, Ch_None, Ch_None) -void \321\1\xCF 386 +void \325\1\xCF 386 [IRETW] (Ch_All, Ch_None, Ch_None) -void \320\1\xCF 8086 +void \324\1\xCF 8086 [JCXZ] (Ch_RECX, Ch_None, Ch_None) -imm \320\1\xE3\50 8086 +imm \324\1\xE3\50 8086 [JECXZ] (Ch_RECX, Ch_None, Ch_None) -imm \321\1\xE3\50 386 +imm \325\1\xE3\50 386 [JMP,jmpX] (Ch_ROp1, Ch_None, Ch_None) +imm8 \1\xEB\50 8086,PASS2 +imm16|32|64 \320\1\xE9\64 8086,PASS2 +rm16|32|64 \320\300\1\xFF\204 8086 imm|short \1\xEB\50 8086,PASS2 -imm \323\1\xE9\64 8086,PASS2 -imm|near \323\1\xE9\64 8086,ND,PASS2 -imm|far \323\1\xEA\34\37 8086,ND,PASS2 -imm16 \320\1\xE9\64 8086,PASS2 -imm16|near \320\1\xE9\64 8086,ND,PASS2 -imm16|far \320\1\xEA\34\37 8086,ND,PASS2 -imm32 \321\1\xE9\64 8086,PASS2 -imm32|near \321\1\xE9\64 8086,ND,PASS2 -imm32|far \321\1\xEA\34\37 8086,ND,PASS2 -imm:imm \323\1\xEA\35\30 8086 -;???? imm16:imm \320\1\xEA\31\30 8086 -imm:imm16 \320\1\xEA\31\30 8086 -;???? imm32:imm \321\1\xEA\41\30 386 -imm:imm32 \321\1\xEA\41\30 386 -mem|far \323\300\1\xFF\205 8086 -mem16|far \320\300\1\xFF\205 8086 -mem32|far \321\300\1\xFF\205 386 -mem|near \323\300\1\xFF\204 8086 -mem16|near \320\300\1\xFF\204 8086 -mem32|near \321\300\1\xFF\204 386 -reg32 \321\300\1\xFF\204 386 -reg16 \320\300\1\xFF\204 8086 -mem32 \321\300\1\xFF\204 386 -mem16 \320\300\1\xFF\204 8086 -mem \323\300\1\xFF\204 8086 +imm|near \320\1\xE9\64 8086,ND,PASS2 +imm|far \320\1\xEA\34\37 8086,ND,PASS2 +mem|near \320\300\1\xFF\204 8086 +mem|far \320\300\1\xFF\205 8086 +imm:imm \327\1\xEA\35\30 8086 +imm:imm16 \324\1\xEA\31\30 8086 +imm:imm32 \325\1\xEA\41\30 386 [LAHF] (Ch_WEAX, Ch_RFlags, Ch_None) @@ -1005,36 +881,23 @@ void \1\x9F 8086 [LAR,larX] (Ch_Wop2, Ch_None, Ch_None) -reg32,reg32 \321\301\2\x0F\x02\110 286,PROT -reg16,reg16 \320\301\2\x0F\x02\110 286,PROT -reg32,mem \321\301\2\x0F\x02\110 286,PROT,SM -reg16,mem \320\301\2\x0F\x02\110 286,PROT,SM +reg16|32|64,regmem \320\301\2\x0F\x02\110 286,PROT,SM [LCALL,lcall] ; don't know value of any register (Ch_All, Ch_None, Ch_None) -mem|far \323\300\1\xFF\203 8086 -mem16|far \320\300\1\xFF\203 8086 -mem32|far \321\300\1\xFF\203 386 -mem|near \323\300\1\xFF\202 8086 -mem16|near \320\300\1\xFF\202 8086 -mem32|near \321\300\1\xFF\202 386 -reg16 \320\300\1\xFF\202 8086 -reg32 \321\300\1\xFF\202 386 -mem \323\300\1\xFF\202 8086 -mem16 \320\300\1\xFF\202 8086 -mem32 \321\300\1\xFF\202 386 +rm16|32|64 \320\300\1\xFF\202 8086 +mem|near \320\300\1\xFF\202 8086 +mem|far \320\300\1\xFF\203 8086 [LDS,ldsX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,mem \321\301\1\xC5\110 8086 -reg16,mem \320\301\1\xC5\110 8086 +reg16|32,mem \320\301\1\xC5\110 8086 [LEA,leaX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,mem \321\301\1\x8D\110 8086 -reg32,imm32 \321\301\1\x8D\110 8086 -reg16,mem \320\301\1\x8D\110 8086 +reg32|64,mem \320\301\1\x8D\110 8086 +reg32|64,imm \320\301\1\x8D\110 8086,SD [LEAVE] (Ch_RWESP, Ch_WEBP, Ch_None) @@ -1042,13 +905,11 @@ void \1\xC9 186 [LES,lesX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,mem \321\301\1\xC4\110 8086 -reg16,mem \320\301\1\xC4\110 8086 +reg16|32,mem \320\301\1\xC4\110 8086 [LFS,lfsX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,mem \321\301\2\x0F\xB4\110 386 -reg16,mem \320\301\2\x0F\xB4\110 386 +reg16|32,mem \320\301\2\x0F\xB4\110 386 [LGDT,lgdtX] (Ch_None, Ch_None, Ch_None) @@ -1056,8 +917,7 @@ mem \300\2\x0F\x01\202 286,PRIV [LGS,lgsX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,mem \321\301\2\x0F\xB5\110 386 -reg16,mem \320\301\2\x0F\xB5\110 386 +reg16|32,mem \320\301\2\x0F\xB5\110 386 [LIDT,lidtX] (Ch_None, Ch_None, Ch_None) @@ -1065,29 +925,17 @@ mem \300\2\x0F\x01\203 286,PRIV [LJMP,ljmp] (Ch_ROp1, Ch_None, Ch_None) -mem|far \323\300\1\xFF\205 8086 -mem16|far \320\300\1\xFF\205 8086 -mem32|far \321\300\1\xFF\205 386 -mem|near \323\300\1\xFF\204 8086 -mem16|near \320\300\1\xFF\204 8086 -mem32|near \321\300\1\xFF\204 386 -reg32 \321\300\1\xFF\204 386 -reg16 \320\300\1\xFF\204 8086 -mem32 \321\300\1\xFF\204 386 -mem16 \320\300\1\xFF\204 8086 -mem \323\300\1\xFF\204 8086 +rm16|32|64 \320\300\1\xFF\204 8086 +mem|far \320\300\1\xFF\205 8086 +mem|near \320\300\1\xFF\204 8086 [LLDT,lldtX] (Ch_None, Ch_None, Ch_None) -mem \300\1\x0F\17\202 286,PROT,PRIV -mem16 \300\1\x0F\17\202 286,PROT,PRIV -reg16 \300\1\x0F\17\202 286,PROT,PRIV +rm16 \300\1\x0F\17\202 286,PROT,PRIV [LMSW,lmswX] (Ch_None, Ch_None, Ch_None) -mem \300\2\x0F\x01\206 286,PRIV -mem16 \300\2\x0F\x01\206 286,PRIV -reg16 \300\2\x0F\x01\206 286,PRIV +rm16 \300\2\x0F\x01\206 286,PRIV [LOADALL] (Ch_All, Ch_None, Ch_None) @@ -1107,59 +955,53 @@ void \1\xAC 8086 [LODSD,lodsl] (Ch_WEAX, Ch_RWESI, Ch_None) -void \321\1\xAD 386 +void \325\1\xAD 386 [LODSW] (Ch_WEAX, Ch_RWESI, Ch_None) -void \320\1\xAD 8086 +void \324\1\xAD 8086 [LOOP] (Ch_RWECX, Ch_None, Ch_None) imm \312\1\xE2\50 8086 imm,reg_cx \310\1\xE2\50 8086 -imm,reg_ecx \311\1\xE2\50 386 +imm,reg_ecx|64 \311\1\xE2\50 386 [LOOPE] (Ch_RWECX, Ch_RFlags, Ch_None) imm \312\1\xE1\50 8086 imm,reg_cx \310\1\xE1\50 8086 -imm,reg_ecx \311\1\xE1\50 386 +imm,reg_ecx|64 \311\1\xE1\50 386 [LOOPNE] (Ch_RWECX, Ch_RFlags, Ch_None) imm \312\1\xE0\50 8086 imm,reg_cx \310\1\xE0\50 8086 -imm,reg_ecx \311\1\xE0\50 386 +imm,reg_ecx|64 \311\1\xE0\50 386 [LOOPNZ] (Ch_RWECX, Ch_RFlags, Ch_None) imm \312\1\xE0\50 8086 imm,reg_cx \310\1\xE0\50 8086 -imm,reg_ecx \311\1\xE0\50 386 +imm,reg_ecx|64 \311\1\xE0\50 386 [LOOPZ] (Ch_RWECX, Ch_RFlags, Ch_None) imm \312\1\xE1\50 8086 imm,reg_cx \310\1\xE1\50 8086 -imm,reg_ecx \311\1\xE1\50 386 +imm,reg_ecx|64 \311\1\xE1\50 386 [LSL,lslX] (Ch_Wop2, Ch_WFlags, Ch_None) -reg32,reg32 \321\301\2\x0F\x03\110 286,PROT -reg16,reg16 \320\301\2\x0F\x03\110 286,PROT -reg32,mem \321\301\2\x0F\x03\110 286,PROT,SM -reg16,mem \320\301\2\x0F\x03\110 286,PROT,SM +reg16|32|64,regmem \320\301\2\x0F\x03\110 286,PROT,SM [LSS,lssX] (Ch_Wop2, Ch_ROP1, Ch_None) -reg32,mem \321\301\2\x0F\xB2\110 386 -reg16,mem \320\301\2\x0F\xB2\110 386 +reg16|32|64,mem \320\301\2\x0F\xB2\110 386 [LTR,ltrX] (Ch_None, Ch_None, Ch_None) -mem \300\1\x0F\17\203 286,PROT,PRIV -mem16 \300\1\x0F\17\203 286,PROT,PRIV -reg16 \300\1\x0F\17\203 286,PROT,PRIV +rm16 \300\1\x0F\17\203 286,PROT,PRIV [MONITOR] (Ch_None, Ch_None, Ch_None) @@ -1168,50 +1010,25 @@ reg_eax,reg_ecx,reg_edx \3\x0F\x01\xC8 PRESCOTT,ND [MOV,movX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg64,reg64 \322\300\1\x89\101 X86_64 -reg32,reg32 \321\300\1\x89\101 386 -reg16,reg16 \320\300\1\x89\101 8086 -reg8,reg8 \300\1\x88\101 8086 -mem,reg64 \322\300\1\x89\101 X86_64 -mem,reg32 \321\300\1\x89\101 386,SM -mem,reg16 \320\300\1\x89\101 8086,SM -mem,reg8 \300\1\x88\101 8086,SM -reg64,mem \322\301\1\x8B\110 X86_64 -reg32,mem \321\301\1\x8B\110 386,SM -reg16,mem \320\301\1\x8B\110 8086,SM -reg8,mem \301\1\x8A\110 8086,SM -reg64,imm \322\10\xB8\41 X86_64 -reg32,imm \321\10\xB8\41 386,SM -reg16,imm \320\10\xB8\31 8086,SM -reg8,imm \10\xB0\21 8086,SM -rm64,imm \322\300\1\xC7\200\41 X86_64 -rm32,imm \321\300\1\xC7\200\41 386,SM -rm16,imm \320\300\1\xC7\200\31 8086,SM -rm8,imm \300\1\xC6\200\21 8086,SM -mem,imm32 \321\300\1\xC7\200\41 386,SM -mem,imm16 \320\300\1\xC7\200\31 8086,SM -mem,imm8 \300\1\xC6\200\21 8086,SM -mem,reg_cs \320\300\1\x8C\201 8086,SM -mem,reg_dess \320\300\1\x8C\101 8086,SM -mem,reg_fsgs \320\300\1\x8C\101 386,SM -reg16,reg_cs \320\300\1\x8C\201 8086 -reg16,reg_dess \320\300\1\x8C\101 8086 -reg16,reg_fsgs \320\300\1\x8C\101 386 -rm32,reg_cs \321\300\1\x8C\201 8086 -rm32,reg_dess \321\300\1\x8C\101 8086 -rm32,reg_fsgs \321\300\1\x8C\101 386 -reg_dess,mem \320\301\1\x8E\110 8086,SM -reg_fsgs,mem \320\301\1\x8E\110 386,SM -reg_dess,reg16 \320\301\1\x8E\110 8086 -reg_fsgs,reg16 \320\301\1\x8E\110 386 -reg_dess,rm32 \321\301\1\x8E\110 8086 -reg_fsgs,rm32 \321\301\1\x8E\110 386 -reg_al,mem_offs \301\1\xA0\35 8086,SM,NOX86_64 -reg_ax,mem_offs \301\320\1\xA1\35 8086,SM,NOX86_64 -reg_eax,mem_offs \301\321\1\xA1\35 386,SM,NOX86_64 +mem_offs,reg_ax|32 \300\320\1\xA3\34 8086,SM,NOX86_64 +regmem,reg16|32|64 \320\300\1\x89\101 8086,SM +reg_ax|32,mem_offs \325\301\1\xA1\35 8086,SM,NOX86_64 +reg16|32|64,regmem \320\301\1\x8B\110 8086,SM +reg32|64,imm \320\10\xB8\41 386,SD +rm32|64,imm \320\300\1\xC7\200\41 386,SD +reg16,imm \324\10\xB8\31 8086,SW +rm16,imm \324\300\1\xC7\200\31 8086,SW mem_offs,reg_al \300\1\xA2\34 8086,SM,NOX86_64 -mem_offs,reg_ax \300\320\1\xA3\34 8086,SM,NOX86_64 -mem_offs,reg_eax \300\321\1\xA3\34 386,SM,NOX86_64 +rm8,reg8 \300\1\x88\101 8086 +reg_al,mem_offs \301\1\xA0\35 8086,SM,NOX86_64 +reg8,rm8 \301\1\x8A\110 8086,SM +reg8,imm \10\xB0\21 8086,SB +rm8,imm \300\1\xC6\200\21 8086,SB +rm16|32,reg_cs \320\300\1\x8C\201 8086 +rm16|32,reg_dess \320\300\1\x8C\101 8086 +rm16|32,reg_fsgs \320\300\1\x8C\101 386 +reg_dess,rm16|32 \321\301\1\x8E\110 8086,SM +reg_fsgs,rm16|32 \321\301\1\x8E\110 386,SM reg32,reg_cr4 \2\x0F\x20\204 PENT,PRIV,NOX86_64 reg32,reg_creg \2\x0F\x20\101 386,PRIV,NOX86_64 reg32,reg_dreg \2\x0F\x21\101 386,PRIV,NOX86_64 @@ -1220,14 +1037,14 @@ reg64,reg_cr4 \2\x0F\x20\204 PENT,PRIV,X86_64 reg64,reg_creg \2\x0F\x20\101 386,PRIV,X86_64 reg64,reg_dreg \2\x0F\x21\101 386,PRIV,X86_64 reg64,reg_treg \2\x0F\x24\101 386,PRIV,X86_64 -reg_cr4,reg32 \2\x0F\x22\214 PENT,PRIV -reg_creg,reg32 \2\x0F\x22\110 386,PRIV -reg_dreg,reg32 \2\x0F\x23\110 386,PRIV -reg_treg,reg32 \2\x0F\x26\110 386,PRIV -reg8,reg8 \301\1\x8A\110 8086 -reg16,reg16 \320\301\1\x8B\110 8086 -reg32,reg32 \321\301\1\x8B\110 386 -reg64,reg64 \322\301\1\x8B\110 X86_64 +reg_cr4,reg32 \2\x0F\x22\214 PENT,PRIV,NOX86_64 +reg_creg,reg32 \2\x0F\x22\110 386,PRIV,NOX86_64 +reg_dreg,reg32 \2\x0F\x23\110 386,PRIV,NOX86_64 +reg_treg,reg32 \2\x0F\x26\110 386,PRIV,NOX86_64 +reg_cr4,reg64 \2\x0F\x22\214 PENT,PRIV,X86_64 +reg_creg,reg64 \2\x0F\x22\110 386,PRIV,X86_64 +reg_dreg,reg64 \2\x0F\x23\110 386,PRIV,X86_64 +reg_treg,reg64 \2\x0F\x26\110 386,PRIV,X86_64 [MOVD,movd] (Ch_Rop1, Ch_Wop2, Ch_None) @@ -1258,7 +1075,7 @@ void \1\xA4 8086 [MOVSD,movsl] ; Ch_All isn't correct for the sse move, but how can it be solved? (FK) (Ch_All, Ch_None, Ch_None) -void \321\1\xA5 386 +void \325\1\xA5 386 xmmreg,xmmreg \3\xF2\x0F\x10\110 WILLAMETTE,SSE2 xmmreg,xmmreg \3\xF2\x0F\x11\110 WILLAMETTE,SSE2 mem,xmmreg \300\3\xF2\x0F\x11\101 WILLAMETTE,SSE2 @@ -1266,43 +1083,36 @@ xmmreg,mem \301\3\xF2\x0F\x10\110 WILLAMETTE,SSE2 [MOVSQ] (Ch_All, Ch_None, Ch_None) -void \322\1\xA5 X86_64 +void \326\1\xA5 X86_64 [MOVSW] (Ch_All, Ch_None, Ch_None) -void \320\1\xA5 8086 +void \324\1\xA5 8086 [MOVSX,movsX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg64,rm16 \321\301\2\x0F\xBF\110 X86_64 -reg32,rm16 \321\301\2\x0F\xBF\110 386 -reg32,rm8 \321\301\2\x0F\xBE\110 386 -reg16,reg8 \320\301\2\x0F\xBE\110 386 -reg16,mem \320\301\2\x0F\xBE\110 386,SB +reg32|64,rm16 \320\301\2\x0F\xBF\110 386 +reg16|32|64,rm8 \320\301\2\x0F\xBE\110 386 [MOVZX,movzX] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,rm16 \321\301\2\x0F\xB7\110 386 -reg32,rm8 \321\301\2\x0F\xB6\110 386 -reg16,reg8 \320\301\2\x0F\xB6\110 386 -reg16,mem \320\301\2\x0F\xB6\110 386,SB +reg32|64,rm16 \320\301\2\x0F\xB7\110 386 +reg16|32|64,rm8 \320\301\2\x0F\xB6\110 386 [MUL,mulX] (Ch_RWEAX, Ch_WEDX, Ch_WFlags) -rm32 \321\300\1\xF7\204 386 -rm16 \320\300\1\xF7\204 8086 +rm16|32|64 \320\300\1\xF7\204 8086 rm8 \300\1\xF6\204 8086 [MWAIT] (Ch_None, Ch_None, Ch_None) void \3\x0F\x01\xC9 PRESCOTT -reg_eax,reg_ecx \3\x0F\x01\xC9 PRESCOTT,ND +reg_eax,reg_ecx \3\x0F\x01\xC9 PRESCOTT,ND [NEG,negX] (Ch_Mop1, Ch_None, Ch_None) -rm32 \321\300\1\xF7\203 386 -rm16 \320\300\1\xF7\203 8086 +rm16|32|64 \320\300\1\xF7\203 8086 rm8 \300\1\xF6\203 8086 [NOP] @@ -1311,44 +1121,31 @@ void \1\x90 8086 [NOT,notX] (Ch_Mop1, Ch_WFlags, Ch_None) -rm32 \321\300\1\xF7\202 386 -rm16 \320\300\1\xF7\202 8086 +rm16|32|64 \320\300\1\xF7\202 8086 rm8 \300\1\xF6\202 8086 [OR,orX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\1\x09\101 386 -reg16,reg16 \320\300\1\x09\101 8086 -reg8,reg8 \300\1\x08\101 8086 -mem,reg32 \321\300\1\x09\101 386,SM -mem,reg16 \320\300\1\x09\101 8086,SM -mem,reg8 \300\1\x08\101 8086,SM -reg32,mem \321\301\1\x0B\110 386,SM -reg16,mem \320\301\1\x0B\110 8086,SM -reg8,mem \301\1\x0A\110 8086,SM -rm32,imm8 \321\300\1\x83\201\15 386 -rm16,imm8 \320\300\1\x83\201\15 8086 -reg_eax,imm \321\1\x0D\41 386,SM -reg_ax,imm \320\1\x0D\31 8086,SM -reg_al,imm \1\x0C\21 8086,SM -rm32,imm \321\300\1\x81\201\41 386,SM -rm16,imm \320\300\1\x81\201\31 8086,SM -rm8,imm \300\1\x80\201\21 8086,SM -mem,imm32 \321\300\1\x81\201\41 386,SM -mem,imm16 \320\300\1\x81\201\31 8086,SM -mem,imm8 \300\1\x80\201\21 8086,SM -reg32,reg32 \321\301\1\x0B\110 386 -reg16,reg16 \320\301\1\x0B\110 8086 -reg8,reg8 \301\1\x0A\110 8086 +regmem,reg16|32|64 \320\300\1\x09\101 8086,SM +reg16|32|64,regmem \320\301\1\x0B\110 8086,SM +rm8,reg8 \300\1\x08\101 8086 +reg8,rm8 \301\1\x0A\110 8086,SM +rm16|32|64,imm8 \320\300\1\x83\201\15 8086 +reg_eax|64,imm \320\1\x0D\41 386,SD +rm32|64,imm \320\300\1\x81\201\41 386,SD +reg_ax,imm \324\1\x0D\31 8086,SW +rm16,imm \324\300\1\x81\201\31 8086,SW +reg_al,imm \1\x0C\21 8086,SB +rm8,imm \300\1\x80\201\21 8086,SB [OUT,outX] (Ch_Rop1, Ch_Rop2, Ch_None) imm,reg_al \1\xE6\24 8086,SB -imm,reg_ax \320\1\xE7\24 8086,SB -imm,reg_eax \321\1\xE7\24 386,SB +imm,reg_ax \324\1\xE7\24 8086,SB +imm,reg_eax \325\1\xE7\24 386,SB reg_dx,reg_al \1\xEE 8086 -reg_dx,reg_ax \320\1\xEF 8086 -reg_dx,reg_eax \321\1\xEF 386 +reg_dx,reg_ax \324\1\xEF 8086 +reg_dx,reg_eax \325\1\xEF 386 [OUTSB] (Ch_All, Ch_None, Ch_None) @@ -1356,11 +1153,11 @@ void \1\x6E 186 [OUTSD,outsl] (Ch_All, Ch_None, Ch_None) -void \321\1\x6F 386 +void \325\1\x6F 386 [OUTSW] (Ch_All, Ch_None, Ch_None) -void \320\1\x6F 186 +void \324\1\x6F 186 [PACKSSDW] (Ch_All, Ch_None, Ch_None) @@ -1655,37 +1452,35 @@ mmxreg,mem \301\2\x0F\x58\110 PENT,MMX,SM,CYRIX [POP,popX] (Ch_Wop1, Ch_RWESP, Ch_None) -reg16 \320\10\x58 8086 -reg32 \321\10\x58 386 -rm16 \320\300\1\x8F\200 8086 -rm32 \321\300\1\x8F\200 386 +reg16|32|64 \320\10\x58 8086 +rm16|32|64 \320\300\1\x8F\200 8086 reg_cs \1\x0F 8086,UNDOC,ND reg_dess \4 8086 reg_fsgs \1\x0F\5 386 [POPA,popaX] (Ch_All, Ch_None, Ch_None) -void \323\1\x61 186 +void \327\1\x61 186 [POPAD,popal] (Ch_All, Ch_None, Ch_None) -void \321\1\x61 386 +void \325\1\x61 386 [POPAW] (Ch_All, Ch_None, Ch_None) -void \320\1\x61 186 +void \324\1\x61 186 [POPF] (Ch_RWESP, Ch_WFlags, Ch_None) -void \323\1\x9D 186 +void \327\1\x9D 186 [POPFD,popfl] (Ch_RWESP, Ch_WFlags, Ch_None) -void \321\1\x9D 386 +void \325\1\x9D 386 [POPFW] (Ch_RWESP, Ch_WFLAGS, Ch_None) -void \320\1\x9D 186 +void \324\1\x9D 186 [POR] (Ch_All, Ch_None, Ch_None) @@ -1876,40 +1671,37 @@ xmmreg,xmmreg \3\x66\x0F\x61\110 WILLAMETTE,SSE2 [PUSH,pushX] (Ch_Rop1, Ch_RWESP, Ch_None) -reg16 \320\10\x50 8086 -reg32 \321\10\x50 386 -reg64 \321\10\x50 X86_64 -rm16 \320\300\1\xFF\206 8086 -rm32 \321\300\1\xFF\206 386 +reg16|32|64 \320\10\x50 8086 +rm16|32|64 \320\300\1\xFF\206 8086 +imm32 \325\1\x68\40 386 +imm16 \324\1\x68\30 286 +imm8 \1\x6A\14 286 reg_fsgs \1\x0F\7 386,NOX86_64 reg_sreg \6 8086,NOX86_64 -imm8 \1\x6A\14 286 -imm16 \320\1\x68\30 286 -imm32 \321\1\x68\40 386 [PUSHA,pushaX] (Ch_All, Ch_None, Ch_None) -void \323\1\x60 186 +void \327\1\x60 186 [PUSHAD,pushal] (Ch_All, Ch_None, Ch_None) -void \321\1\x60 386 +void \325\1\x60 386 [PUSHAW] (Ch_All, Ch_None, Ch_None) -void \320\1\x60 186 +void \324\1\x60 186 [PUSHF] (Ch_RWESP, Ch_RFlags, Ch_None) -void \323\1\x9C 186 +void \327\1\x9C 186 [PUSHFD,pushfl] (Ch_RWESP, Ch_RFlags, Ch_None) -void \321\1\x9C 386 +void \325\1\x9C 386 [PUSHFW] (Ch_RWESP, Ch_RFLAGS, Ch_None) -void \320\1\x9C 186 +void \324\1\x9C 186 [PXOR] (Ch_Mop2, Ch_Rop1, Ch_None) @@ -1920,24 +1712,18 @@ xmmreg,xmmreg \3\x66\x0F\xEF\110 WILLAMETTE,SSE2 [RCL,rclX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -rm32,unity \321\300\1\xD1\202 386 -rm32,reg_cl \321\300\1\xD3\202 386 -rm32,imm \321\300\1\xC1\202\25 386,SB -rm16,unity \320\300\1\xD1\202 8086 -rm16,reg_cl \320\300\1\xD3\202 8086 -rm16,imm \320\300\1\xC1\202\25 186,SB +rm16|32|64,unity \320\300\1\xD1\202 8086 +rm16|32|64,reg_cl \320\300\1\xD3\202 8086 +rm16|32|64,imm8 \320\300\1\xC1\202\25 8086 rm8,unity \300\1\xD0\202 8086 rm8,reg_cl \300\1\xD2\202 8086 rm8,imm \300\1\xC0\202\25 186,SB [RCR,rcrX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -rm32,unity \321\300\1\xD1\203 386 -rm32,reg_cl \321\300\1\xD3\203 386 -rm32,imm \321\300\1\xC1\203\25 386,SB -rm16,unity \320\300\1\xD1\203 8086 -rm16,reg_cl \320\300\1\xD3\203 8086 -rm16,imm \320\300\1\xC1\203\25 186,SB +rm16|32|64,unity \320\300\1\xD1\203 8086 +rm16|32|64,reg_cl \320\300\1\xD3\203 8086 +rm16|32|64,imm8 \320\300\1\xC1\203\25 8086 rm8,unity \300\1\xD0\203 8086 rm8,reg_cl \300\1\xD2\203 8086 rm8,imm \300\1\xC0\203\25 186,SB @@ -1995,24 +1781,18 @@ imm \1\xC2\30 8086,SW [ROL,rolX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -rm32,unity \321\300\1\xD1\200 386 -rm32,reg_cl \321\300\1\xD3\200 386 -rm32,imm \321\300\1\xC1\200\25 386,SB -rm16,unity \320\300\1\xD1\200 8086 -rm16,reg_cl \320\300\1\xD3\200 8086 -rm16,imm \320\300\1\xC1\200\25 186,SB +rm16|32|64,unity \320\300\1\xD1\200 8086 +rm16|32|64,reg_cl \320\300\1\xD3\200 8086 +rm16|32|64,imm \320\300\1\xC1\200\25 8086,SB rm8,unity \300\1\xD0\200 8086 rm8,reg_cl \300\1\xD2\200 8086 rm8,imm \300\1\xC0\200\25 186,SB [ROR,rorX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -rm32,unity \321\300\1\xD1\201 386 -rm32,reg_cl \321\300\1\xD3\201 386 -rm32,imm \321\300\1\xC1\201\25 386,SB -rm16,unity \320\300\1\xD1\201 8086 -rm16,reg_cl \320\300\1\xD3\201 8086 -rm16,imm \320\300\1\xC1\201\25 186,SB +rm16|32|64,unity \320\300\1\xD1\201 8086 +rm16|32|64,reg_cl \320\300\1\xD3\201 8086 +rm16|32|64,imm \320\300\1\xC1\201\25 8086,SB rm8,unity \300\1\xD0\201 8086 rm8,reg_cl \300\1\xD2\201 8086 rm8,imm \300\1\xC0\201\25 186,SB @@ -2035,12 +1815,9 @@ void \1\x9E 8086,NOX86_64 [SAL,salX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -rm32,unity \321\300\1\xD1\204 386,ND -rm32,reg_cl \321\300\1\xD3\204 386,ND -rm32,imm \321\300\1\xC1\204\25 386,ND,SB -rm16,unity \320\300\1\xD1\204 8086,ND -rm16,reg_cl \320\300\1\xD3\204 8086,ND -rm16,imm \320\300\1\xC1\204\25 186,ND,SB +rm16|32|64,unity \320\300\1\xD1\204 8086,ND +rm16|32|64,reg_cl \320\300\1\xD3\204 8086,ND +rm16|32|64,imm \320\300\1\xC1\204\25 8086,ND,SB rm8,unity \300\1\xD0\204 8086,ND rm8,reg_cl \300\1\xD2\204 8086,ND rm8,imm \300\1\xC0\204\25 186,ND,SB @@ -2051,41 +1828,26 @@ void \1\xD6 8086,UNDOC [SAR,sarX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -rm32,unity \321\300\1\xD1\207 386 -rm32,reg_cl \321\300\1\xD3\207 386 -rm32,imm \321\300\1\xC1\207\25 386,SB -rm16,unity \320\300\1\xD1\207 8086 -rm16,reg_cl \320\300\1\xD3\207 8086 -rm16,imm \320\300\1\xC1\207\25 186,SB +rm16|32|64,unity \320\300\1\xD1\207 8086 +rm16|32|64,reg_cl \320\300\1\xD3\207 8086 +rm16|32|64,imm \320\300\1\xC1\207\25 8086,SB rm8,unity \300\1\xD0\207 8086 rm8,reg_cl \300\1\xD2\207 8086 rm8,imm \300\1\xC0\207\25 186,SB [SBB,sbbX] (Ch_Mop2, Ch_Rop1, Ch_RWFlags) -mem,reg8 \300\1\x18\101 8086,SM -reg8,reg8 \300\1\x18\101 8086 -mem,reg16 \320\300\1\x19\101 8086,SM -reg16,reg16 \320\300\1\x19\101 8086 -mem,reg32 \321\300\1\x19\101 386,SM -reg32,reg32 \321\300\1\x19\101 386 -reg8,mem \301\1\x1A\110 8086,SM -reg8,reg8 \301\1\x1A\110 8086 -reg16,mem \320\301\1\x1B\110 8086,SM -reg16,reg16 \320\301\1\x1B\110 8086 -reg32,mem \321\301\1\x1B\110 386,SM -reg32,reg32 \321\301\1\x1B\110 386 -rm16,imm8 \320\300\1\x83\203\15 8086 -rm32,imm8 \321\300\1\x83\203\15 8086 -reg_al,imm \1\x1C\21 8086,SM -reg_ax,imm \320\1\x1D\31 8086,SM -reg_eax,imm \321\1\x1D\41 386,SM -rm8,imm \300\1\x80\203\21 8086,SM -rm16,imm \320\300\1\x81\203\31 8086,SM -rm32,imm \321\300\1\x81\203\41 386,SM -mem,imm8 \300\1\x80\203\21 8086,SM -mem,imm16 \320\300\1\x81\203\31 8086,SM -mem,imm32 \321\300\1\x81\203\41 386,SM +regmem,reg16|32|64 \320\300\1\x19\101 8086,SM +reg16|32|64,regmem \320\301\1\x1B\110 8086,SM +rm16|32|64,imm8 \320\300\1\x83\203\15 8086 +rm8,reg8 \300\1\x18\101 8086 +reg8,rm8 \301\1\x1A\110 8086,SM +reg_eax|64,imm \320\1\x1D\41 386,SD +rm32|64,imm \320\300\1\x81\203\41 386,SD +reg_ax,imm \324\1\x1D\31 8086,SW +rm16,imm \320\300\1\x81\203\31 8086,SW +reg_al,imm \1\x1C\21 8086,SB +rm8,imm \300\1\x80\203\21 8086,SB [SCASB] (Ch_All, Ch_None, Ch_None) @@ -2093,11 +1855,11 @@ void \332\1\xAE 8086 [SCASD,scasl] (Ch_All, Ch_None, Ch_None) -void \332\321\1\xAF 386 +void \332\325\1\xAF 386 [SCASW] (Ch_All, Ch_None, Ch_None) -void \332\320\1\xAF 8086 +void \332\324\1\xAF 8086 [SEGCS,cs] (Ch_None, Ch_None, Ch_None) @@ -2129,49 +1891,43 @@ mem \300\2\x0F\x01\200 286 [SHL,shlX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) +rm16|32|64,unity \320\300\1\xD1\204 8086 +rm16|32|64,reg_cl \320\300\1\xD3\204 8086 +rm16|32|64,imm \320\300\1\xC1\204\25 186,SW rm8,unity \300\1\xD0\204 8086 rm8,reg_cl \300\1\xD2\204 8086 rm8,imm \300\1\xC0\204\25 186,SB -rm16,unity \320\300\1\xD1\204 8086 -rm16,reg_cl \320\300\1\xD3\204 8086 -rm16,imm \320\300\1\xC1\204\25 186,SW -rm32,unity \321\300\1\xD1\204 386 -rm32,reg_cl \321\300\1\xD3\204 386 -rm32,imm \321\300\1\xC1\204\25 386,SD [SHLD,shldX] (Ch_MOp3, Ch_RWFlags, Ch_Rop2) -mem,reg16,imm \300\320\2\x0F\xA4\101\26 386,SM2,SB,AR2 -reg16,reg16,imm \300\320\2\x0F\xA4\101\26 386,SM2,SB,AR2 -mem,reg32,imm \300\321\2\x0F\xA4\101\26 386,SM2,SB,AR2 -reg32,reg32,imm \300\321\2\x0F\xA4\101\26 386,SM2,SB,AR2 -mem,reg16,reg_cl \300\320\2\x0F\xA5\101 386,SM -reg16,reg16,reg_cl \300\320\2\x0F\xA5\101 386 -mem,reg32,reg_cl \300\321\2\x0F\xA5\101 386,SM -reg32,reg32,reg_cl \300\321\2\x0F\xA5\101 386 +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 [SHR,shrX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) +rm16|32|64,unity \320\300\1\xD1\205 8086 +rm16|32|64,reg_cl \320\300\1\xD3\205 8086 +rm16|32|64,imm \320\300\1\xC1\205\25 186,SW rm8,unity \300\1\xD0\205 8086 rm8,reg_cl \300\1\xD2\205 8086 rm8,imm \300\1\xC0\205\25 186,SB -rm16,unity \320\300\1\xD1\205 8086 -rm16,reg_cl \320\300\1\xD3\205 8086 -rm16,imm \320\300\1\xC1\205\25 186,SW -rm32,unity \321\300\1\xD1\205 386 -rm32,reg_cl \321\300\1\xD3\205 386 -rm32,imm \321\300\1\xC1\205\25 386,SD [SHRD,shrdX] (Ch_MOp3, Ch_RWFlags, Ch_Rop2) -mem,reg16,imm \300\320\2\x0F\xAC\101\26 386,SM2,SB,AR2 -reg16,reg16,imm \300\320\2\x0F\xAC\101\26 386,SM2,SB,AR2 -mem,reg32,imm \300\321\2\x0F\xAC\101\26 386,SM2,SB,AR2 -reg32,reg32,imm \300\321\2\x0F\xAC\101\26 386,SM2,SB,AR2 -mem,reg16,reg_cl \300\320\2\x0F\xAD\101 386,SM -reg16,reg16,reg_cl \300\320\2\x0F\xAD\101 386 -mem,reg32,reg_cl \300\321\2\x0F\xAD\101 386,SM -reg32,reg32,reg_cl \300\321\2\x0F\xAD\101 386 +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 [SIDT,sidtX] (Ch_Wop1, Ch_None, Ch_None) @@ -2180,9 +1936,7 @@ mem \300\2\x0F\x01\201 286 [SLDT,sldtX] (Ch_Wop1, Ch_None, Ch_None) mem \300\1\x0F\17\200 286 -mem16 \300\1\x0F\17\200 286 -reg16 \320\1\x0F\17\200 286 -reg32 \321\1\x0F\17\200 386 +reg16|32|64 \320\1\x0F\17\200 286 [SMI] (Ch_All, Ch_None, Ch_None) @@ -2198,10 +1952,7 @@ void \2\x0F\x7E 486,CYRIX,ND [SMSW,smswX] (Ch_Wop1, Ch_None, Ch_None) -mem \300\2\x0F\x01\204 286 -mem16 \300\2\x0F\x01\204 286 -reg16 \320\2\x0F\x01\204 286 -reg32 \321\2\x0F\x01\204 386 +rm16|32|64 \320\300\2\x0F\x01\204 286 [STC] (Ch_WFlags, Ch_None, Ch_None) @@ -2221,50 +1972,30 @@ void \1\xAA 8086 [STOSD,stosl] (Ch_REAX, Ch_WMemEDI, Ch_RWEDI) -void \321\1\xAB 386 +void \325\1\xAB 386 [STOSW] (Ch_REAX, Ch_WMemEDI, Ch_RWEDI) -void \320\1\xAB 8086 +void \324\1\xAB 8086 [STR,strX] (Ch_Wop1, Ch_None, Ch_None) mem \300\1\x0F\17\201 286,PROT -mem16 \300\1\x0F\17\201 286,PROT -reg16 \320\1\x0F\17\201 286,PROT -reg32 \321\1\x0F\17\201 386,PROT +reg16|32|64 \320\1\x0F\17\201 286,PROT [SUB,subX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg64,reg64 \322\300\1\x29\101 X86_64 -reg32,reg32 \321\300\1\x29\101 386 -reg16,reg16 \320\300\1\x29\101 8086 -reg8,reg8 \300\1\x28\101 8086 -mem,reg64 \322\300\1\x29\101 X86_64 -mem,reg32 \321\300\1\x29\101 386,SM -mem,reg16 \320\300\1\x29\101 8086,SM -mem,reg8 \300\1\x28\101 8086,SM -reg32,mem \321\301\1\x2B\110 386,SM -reg16,mem \320\301\1\x2B\110 8086,SM -reg8,mem \301\1\x2A\110 8086,SM -rm64,imm8 \322\300\1\x83\205\15 X86_64 -rm32,imm8 \321\300\1\x83\205\15 386 -rm16,imm8 \320\300\1\x83\205\15 8086 -reg_rax,imm \322\1\x2D\41 X86_64 -reg_eax,imm \321\1\x2D\41 386,SM -reg_ax,imm \320\1\x2D\31 8086,SM -reg_al,imm \1\x2C\21 8086,SM -rm64,imm \322\300\1\x81\205\41 X86_64 -rm32,imm \321\300\1\x81\205\41 386,SM -rm16,imm \320\300\1\x81\205\31 8086,SM -rm8,imm \300\1\x80\205\21 8086,SM -mem,imm32 \321\300\1\x81\205\41 386,SM -mem,imm16 \320\300\1\x81\205\31 8086,SM -mem,imm8 \300\1\x80\205\21 8086,SM -reg64,reg64 \322\301\1\x2B\110 X86_64 -reg32,reg32 \321\301\1\x2B\110 386 -reg16,reg16 \320\301\1\x2B\110 8086 -reg8,reg8 \301\1\x2A\110 8086 +regmem,reg16|32|64 \320\300\1\x29\101 8086,SM +reg16|32|64,regmem \320\301\1\x2B\110 8086,SM +rm8,reg8 \300\1\x28\101 8086 +reg8,rm8 \301\1\x2A\110 8086,SM +rm16|32|64,imm8 \320\300\1\x83\205\15 8086 +reg_eax|64,imm \320\1\x2D\41 386,SD +rm32|64,imm \320\300\1\x81\205\41 8086,SD +reg_ax,imm \324\1\x2D\31 8086,SW +rm16,imm \324\300\1\x81\205\31 8086,SW +reg_al,imm \1\x2C\21 8086,SB +rm8,imm \300\1\x80\205\21 8086,SB [SVDC,svdcX] (Ch_All, Ch_None, Ch_None) @@ -2296,23 +2027,18 @@ void \2\x0F\x07 P6,PRIV,AMD [TEST,testX] (Ch_WFlags, Ch_Rop1, Ch_Rop2) -reg32,reg32 \321\300\1\x85\101 386 -reg16,reg16 \320\300\1\x85\101 8086 +regmem,reg16|32|64 \320\300\1\x85\101 8086,SM +reg16|32|64,mem \320\301\1\x85\110 8086,SM reg8,reg8 \300\1\x84\101 8086 -mem,reg32 \321\300\1\x85\101 386,SM -mem,reg16 \320\300\1\x85\101 8086,SM -mem,reg8 \300\1\x84\101 8086,SM -reg32,mem \321\301\1\x85\110 386,SM -reg16,mem \320\301\1\x85\110 8086,SM reg8,mem \301\1\x84\110 8086,SM -reg_eax,imm \321\1\xA9\41 386,SM -reg_ax,imm \320\1\xA9\31 8086,SM +reg_eax,imm \325\1\xA9\41 386,SM +reg_ax,imm \324\1\xA9\31 8086,SM reg_al,imm \1\xA8\21 8086,SM -rm32,imm \321\300\1\xF7\200\41 386,SM -rm16,imm \320\300\1\xF7\200\31 8086,SM +rm32,imm \325\300\1\xF7\200\41 386,SM +rm16,imm \324\300\1\xF7\200\31 8086,SM rm8,imm \300\1\xF6\200\21 8086,SM -mem,imm32 \321\300\1\xF7\200\41 386,SM -mem,imm16 \320\300\1\xF7\200\31 8086,SM +mem,imm32 \325\300\1\xF7\200\41 386,SM +mem,imm16 \324\300\1\xF7\200\31 8086,SM mem,imm8 \300\1\xF6\200\21 8086,SM [UD1] @@ -2325,18 +2051,10 @@ void \2\x0F\x0B 286 [UMOV,umovX] (Ch_All, Ch_None, Ch_None) -mem,reg8 \300\2\x0F\x10\101 386,UNDOC,SM -reg8,reg8 \300\2\x0F\x10\101 386,UNDOC -mem,reg16 \320\300\2\x0F\x11\101 386,UNDOC,SM -reg16,reg16 \320\300\2\x0F\x11\101 386,UNDOC -mem,reg32 \321\300\2\x0F\x11\101 386,UNDOC,SM -reg32,reg32 \321\300\2\x0F\x11\101 386,UNDOC -reg8,mem \301\2\x0F\x12\110 386,UNDOC,SM -reg8,reg8 \301\2\x0F\x12\110 386,UNDOC -reg16,mem \320\301\2\x0F\x13\110 386,UNDOC,SM -reg16,reg16 \320\301\2\x0F\x13\110 386,UNDOC -reg32,mem \321\301\2\x0F\x13\110 386,UNDOC,SM -reg32,reg32 \321\301\2\x0F\x13\110 386,UNDOC +regmem,reg16|32|64 \320\300\2\x0F\x11\101 386,UNDOC,SM +reg16|32|64,mem \320\301\2\x0F\x13\110 386,UNDOC,SM +rm8,reg8 \300\2\x0F\x10\101 386,UNDOC +reg8,rm8 \301\2\x0F\x12\110 386,UNDOC [VERR,verrX] (Ch_WFlags, Ch_None, Ch_None) @@ -2368,38 +2086,28 @@ void \2\x0F\x30 PENT,PRIV [XADD,xaddX] (Ch_All, Ch_None, Ch_None) -mem,reg8 \300\2\x0F\xC0\101 486,SM -reg8,reg8 \300\2\x0F\xC0\101 486 -mem,reg16 \320\300\2\x0F\xC1\101 486,SM -reg16,reg16 \320\300\2\x0F\xC1\101 486 -mem,reg32 \321\300\2\x0F\xC1\101 486,SM -reg32,reg32 \321\300\2\x0F\xC1\101 486 +mem,reg16|32|64 \320\300\2\x0F\xC1\101 486,SM +rm8,reg8 \300\2\x0F\xC0\101 486 [XBTS,xbtsX] (Ch_All, Ch_None, Ch_None) -reg16,mem \320\301\2\x0F\xA6\110 386,SW,UNDOC,ND -reg16,reg16 \320\301\2\x0F\xA6\110 386,UNDOC,ND -reg32,mem \321\301\2\x0F\xA6\110 386,SD,UNDOC,ND -reg32,reg32 \321\301\2\x0F\xA6\110 386,UNDOC,ND +reg16,mem \324\301\2\x0F\xA6\110 386,SW,UNDOC,ND +reg16,reg16 \324\301\2\x0F\xA6\110 386,UNDOC,ND +reg32,mem \325\301\2\x0F\xA6\110 386,SD,UNDOC,ND +reg32,reg32 \325\301\2\x0F\xA6\110 386,UNDOC,ND [XCHG,xchgX] (Ch_RWop1, Ch_RWop2, Ch_None) -reg_ax,reg16 \320\11\x90 8086 -reg_eax,reg32 \321\11\x90 386 -reg16,reg_ax \320\10\x90 8086 -reg32,reg_eax \321\10\x90 386 -reg8,mem \301\1\x86\110 8086,SM -reg8,reg8 \301\1\x86\110 8086 -reg16,mem \320\301\1\x87\110 8086,SM -reg16,reg16 \320\301\1\x87\110 8086 -reg32,mem \321\301\1\x87\110 386,SM -reg32,reg32 \321\301\1\x87\110 386 -mem,reg8 \300\1\x86\101 8086,SM -reg8,reg8 \300\1\x86\101 8086 -mem,reg16 \320\300\1\x87\101 8086,SM -reg16,reg16 \320\300\1\x87\101 8086 -mem,reg32 \321\300\1\x87\101 386,SM -reg32,reg32 \321\300\1\x87\101 386 +reg_ax,reg16 \324\11\x90 8086 +reg_eax,reg32 \325\11\x90 386 +reg_rax,reg64 \326\11\x90 X86_64 +reg16,reg_ax \324\10\x90 8086 +reg32,reg_eax \325\10\x90 386 +reg64,reg_rax \326\10\x90 X86_64 +reg16|32|64,regmem \320\301\1\x87\110 8086,SM +mem,reg16|32|64 \320\300\1\x87\101 8086,SM +reg8,rm8 \301\1\x86\110 8086 +mem8,reg8 \300\1\x86\101 8086 [XLAT] (Ch_WEAX, Ch_REBX, Ch_None) @@ -2411,29 +2119,17 @@ void \1\xD7 8086 [XOR,xorX] (Ch_Mop2, Ch_Rop1, Ch_WFlags) -reg32,reg32 \321\300\1\x31\101 386 -reg16,reg16 \320\300\1\x31\101 8086 -reg8,reg8 \300\1\x30\101 8086 -mem,reg32 \321\300\1\x31\101 386,SM -mem,reg16 \320\300\1\x31\101 8086,SM -mem,reg8 \300\1\x30\101 8086,SM -reg32,mem \321\301\1\x33\110 386,SM -reg16,mem \320\301\1\x33\110 8086,SM -reg8,mem \301\1\x32\110 8086,SM -rm32,imm8 \321\300\1\x83\206\15 386 -rm16,imm8 \320\300\1\x83\206\15 8086 -reg_eax,imm \321\1\x35\41 386,SM -reg_ax,imm \320\1\x35\31 8086,SM -reg_al,imm \1\x34\21 8086,SM -rm32,imm \321\300\1\x81\206\41 386,SM -rm16,imm \320\300\1\x81\206\31 8086,SM -rm8,imm \300\1\x80\206\21 8086,SM -mem,imm32 \321\300\1\x81\206\41 386,SM -mem,imm16 \320\300\1\x81\206\31 8086,SM -mem,imm8 \300\1\x80\206\21 8086,SM -reg32,reg32 \321\301\1\x33\110 386 -reg16,reg16 \320\301\1\x33\110 8086 -reg8,reg8 \301\1\x32\110 8086 +regmem,reg16|32|64 \320\300\1\x31\101 8086,SM +reg16|32|64,regmem \320\301\1\x33\110 8086,SM +rm8,reg8 \300\1\x30\101 8086 +reg8,rm8 \301\1\x32\110 8086 +rm16|32|64,imm8 \320\300\1\x83\206\15 8086 +reg_eax|64,imm \320\1\x35\41 386,SD +rm32|64,imm \320\300\1\x81\206\41 386,SD +reg_ax,imm \324\1\x35\31 8086,SW +rm16,imm \324\300\1\x81\206\31 8086,SW +reg_al,imm \1\x34\21 8086,SB +rm8,imm \300\1\x80\206\21 8086,SB [XSTORE] (Ch_All, Ch_None, Ch_None) @@ -2457,23 +2153,18 @@ void \333\3\x0F\xA7\xE8 P6,CYRIX [CMOVcc,cmovCCX] (Ch_ROp1, Ch_WOp2, Ch_RFLAGS) -reg32,reg32 \321\301\1\x0F\330\x40\110 P6 -reg16,reg16 \320\301\1\x0F\330\x40\110 P6 -reg32,mem \321\301\1\x0F\330\x40\110 P6,SM -reg16,mem \320\301\1\x0F\330\x40\110 P6,SM +reg16|32|64,regmem \320\301\1\x0F\13\x40\110 P6,SM [Jcc] (Ch_None, Ch_None, Ch_None) -imm|near \323\1\x0F\330\x80\64 386,PASS2 -imm16|near \320\1\x0F\330\x80\64 386,PASS2 -imm32|near \321\1\x0F\330\x80\64 386,PASS2 -imm \330\x70\50 8086 -imm|short \330\x70\50 8086,ND +imm8 \13\x70\50 8086 +imm16|32 \320\1\x0F\13\x80\64 386,PASS2 +imm|short \13\x70\50 8086 +imm|near \320\1\x0F\13\x80\64 386,PASS2 [SETcc,setCCX] (Ch_RFLAGS, Ch_WOp1, Ch_None) -mem \300\1\x0F\330\x90\200 386,SB -reg8 \300\1\x0F\330\x90\200 386 +rm8 \300\1\x0F\13\x90\200 386 ; ; Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2) @@ -3544,13 +3235,13 @@ void \2\x0F\x3A P6,CYRIX ; [MOVABS] (Ch_Wop2, Ch_Rop1, Ch_None) -reg32,imm \321\10\xB8\41 X86_64 +reg32,imm \325\10\xB8\41 X86_64 [MOVSXD,movslq] (Ch_Wop2, Ch_Rop1, Ch_None) -reg64,mem \321\301\1\x63\110 X86_64 -reg64,reg32 \321\301\1\x63\110 X86_64 +reg64,mem \325\301\1\x63\110 X86_64 +reg64,reg32 \325\301\1\x63\110 X86_64 [CQO,cqto] (Ch_MRAX, Ch_WRDX, Ch_None) -void \321\1\x99 X86_64 +void \325\1\x99 X86_64 diff --git a/compiler/x86_64/x8664nop.inc b/compiler/x86_64/x8664nop.inc index 776da0c607..5fe2125afc 100644 --- a/compiler/x86_64/x8664nop.inc +++ b/compiler/x86_64/x8664nop.inc @@ -1,2 +1,2 @@ { don't edit, this file is generated from x86ins.dat } -1691; +1380; diff --git a/compiler/x86_64/x8664tab.inc b/compiler/x86_64/x8664tab.inc index 2c04511ddb..277ba07f7e 100644 --- a/compiler/x86_64/x8664tab.inc +++ b/compiler/x86_64/x8664tab.inc @@ -52,492 +52,233 @@ ( opcode : A_ADC; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#16#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#16#65; - flags : if_8086 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#17#65; flags : if_8086 or if_sm ), ( opcode : A_ADC; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#17#65; - flags : if_8086 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#17#65; - flags : if_386 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#17#65; - flags : if_386 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#18#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#18#72; - flags : if_8086 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#19#72; flags : if_8086 or if_sm ), ( opcode : A_ADC; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#19#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#16#65; flags : if_8086 ), ( opcode : A_ADC; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#19#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#18#72; + flags : if_8086 ), ( opcode : A_ADC; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#19#72; - flags : if_386 - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#130#13; flags : if_8086 ), ( opcode : A_ADC; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#130#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#21#33; + flags : if_386 or if_sd + ), + ( + opcode : A_ADC; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#130#33; + flags : if_386 or if_sd + ), + ( + opcode : A_ADC; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#21#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_ADC; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#130#25; + flags : if_8086 or if_sw ), ( opcode : A_ADC; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#20#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#21#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#21#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_ADC; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#130#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#130#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#130#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#130#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#130#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADC; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#130#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_ADD; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#15#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#15#65; - flags : if_8086 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#1#65; flags : if_8086 or if_sm ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#1#65; - flags : if_8086 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#1#65; - flags : if_386 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#1#65; - flags : if_386 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#2#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#2#72; - flags : if_8086 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#3#72; flags : if_8086 or if_sm ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#3#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#15#65; flags : if_8086 ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#3#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#2#72; + flags : if_8086 or if_sm ), ( opcode : A_ADD; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#3#72; - flags : if_386 - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#128#13; flags : if_8086 ), ( opcode : A_ADD; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#128#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#5#33; + flags : if_386 or if_sd + ), + ( + opcode : A_ADD; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#128#33; + flags : if_386 or if_sd + ), + ( + opcode : A_ADD; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#5#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_ADD; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#128#25; + flags : if_8086 or if_sw ), ( opcode : A_ADD; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#4#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#5#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#5#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_ADD; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#128#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_ADD; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#128#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_AND; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#32#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#32#65; - flags : if_8086 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#33#65; flags : if_8086 or if_sm ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#33#65; - flags : if_8086 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#33#65; - flags : if_386 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#33#65; - flags : if_386 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#34#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#34#72; - flags : if_8086 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#35#72; flags : if_8086 or if_sm ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#35#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#32#65; flags : if_8086 ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#35#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#34#72; + flags : if_8086 ), ( opcode : A_AND; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#35#72; - flags : if_386 - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#132#13; flags : if_8086 ), ( opcode : A_AND; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#132#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#37#33; + flags : if_386 or if_sd + ), + ( + opcode : A_AND; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#132#33; + flags : if_386 or if_sd + ), + ( + opcode : A_AND; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#37#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_AND; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#132#25; + flags : if_8086 or if_sw ), ( opcode : A_AND; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#36#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#37#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#37#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_AND; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#132#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#132#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#132#33; - flags : if_386 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#132#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#132#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_AND; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#132#33; - flags : if_386 or if_sm - ), - ( - opcode : A_ARPL; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); - code : #192#1#99#65; - flags : if_286 or if_prot or if_sm + flags : if_8086 or if_sb ), ( opcode : A_ARPL; @@ -546,438 +287,186 @@ code : #192#1#99#65; flags : if_286 or if_prot ), + ( + opcode : A_ARPL; + ops : 2; + optypes : (ot_memory,ot_reg16,ot_none); + code : #192#1#99#65; + flags : if_286 or if_prot or if_sm + ), ( opcode : A_BOUND; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); code : #208#193#1#98#72; flags : if_186 ), - ( - opcode : A_BOUND; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#98#72; - flags : if_386 - ), ( opcode : A_BSF; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#188#72; flags : if_386 or if_sm ), - ( - opcode : A_BSF; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#188#72; - flags : if_386 - ), - ( - opcode : A_BSF; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#188#72; - flags : if_386 or if_sm - ), - ( - opcode : A_BSF; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#188#72; - flags : if_386 - ), ( opcode : A_BSR; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#189#72; flags : if_386 or if_sm ), - ( - opcode : A_BSR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#189#72; - flags : if_386 - ), - ( - opcode : A_BSR; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#189#72; - flags : if_386 or if_sm - ), - ( - opcode : A_BSR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#189#72; - flags : if_386 - ), ( opcode : A_BSWAP; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#1#15#8#200; + optypes : (ot_reg32 or ot_bits64,ot_none,ot_none); + code : #208#1#15#8#200; flags : if_486 ), ( opcode : A_BT; ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#163#65; flags : if_386 or if_sm ), ( opcode : A_BT; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#163#65; - flags : if_386 - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#163#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#163#65; - flags : if_386 - ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#132#21; flags : if_386 or if_sb ), - ( - opcode : A_BT; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#132#21; - flags : if_386 or if_sb - ), ( opcode : A_BTC; ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#187#65; flags : if_386 or if_sm ), ( opcode : A_BTC; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#187#65; - flags : if_386 - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#187#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#187#65; - flags : if_386 - ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#135#21; flags : if_386 or if_sb ), - ( - opcode : A_BTC; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#135#21; - flags : if_386 or if_sb - ), ( opcode : A_BTR; ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#179#65; flags : if_386 or if_sm ), ( opcode : A_BTR; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#179#65; - flags : if_386 - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#179#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#179#65; - flags : if_386 - ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#134#21; flags : if_386 or if_sb ), - ( - opcode : A_BTR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#134#21; - flags : if_386 or if_sb - ), ( opcode : A_BTS; ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#171#65; flags : if_386 or if_sm ), ( opcode : A_BTS; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#171#65; - flags : if_386 - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#171#65; - flags : if_386 or if_sm - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#171#65; - flags : if_386 - ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#192#2#15#186#133#21; flags : if_386 or if_sb ), - ( - opcode : A_BTS; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#2#15#186#133#21; - flags : if_386 or if_sb - ), ( opcode : A_CALL; ops : 1; optypes : (ot_immediate,ot_none,ot_none); - code : #211#1#232#52; + code : #208#1#232#52; + flags : if_8086 + ), + ( + opcode : A_CALL; + ops : 1; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#130; flags : if_8086 ), ( opcode : A_CALL; ops : 1; optypes : (ot_immediate or ot_near,ot_none,ot_none); - code : #211#1#232#52; + code : #208#1#232#52; flags : if_8086 ), ( opcode : A_CALL; ops : 1; optypes : (ot_immediate or ot_far,ot_none,ot_none); - code : #211#1#154#28#31; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits16,ot_none,ot_none); - code : #208#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_far,ot_none,ot_none); code : #208#1#154#28#31; flags : if_8086 ), ( opcode : A_CALL; ops : 1; - optypes : (ot_immediate or ot_bits32,ot_none,ot_none); - code : #209#1#232#52; + optypes : (ot_memory or ot_near,ot_none,ot_none); + code : #208#192#1#255#130; flags : if_8086 ), ( opcode : A_CALL; ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#1#232#52; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#1#154#28#31; + optypes : (ot_memory or ot_far,ot_none,ot_none); + code : #208#192#1#255#131; flags : if_8086 ), ( opcode : A_CALL; ops : 2; optypes : (ot_immediate,ot_immediate,ot_none); - code : #211#1#154#29#24; + code : #215#1#154#29#24; flags : if_8086 ), ( opcode : A_CALL; ops : 2; optypes : (ot_immediate or ot_bits16,ot_immediate,ot_none); - code : #208#1#154#25#24; + code : #212#1#154#25#24; flags : if_8086 ), ( opcode : A_CALL; ops : 2; optypes : (ot_immediate,ot_immediate or ot_bits16,ot_none); - code : #208#1#154#25#24; + code : #212#1#154#25#24; flags : if_8086 ), ( opcode : A_CALL; ops : 2; optypes : (ot_immediate or ot_bits32,ot_immediate,ot_none); - code : #209#1#154#33#24; + code : #213#1#154#33#24; flags : if_386 ), ( opcode : A_CALL; ops : 2; optypes : (ot_immediate,ot_immediate or ot_bits32,ot_none); - code : #209#1#154#33#24; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#131; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); - code : #208#192#1#255#131; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#131; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_CALL; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#130; + code : #213#1#154#33#24; flags : if_386 ), ( opcode : A_CBW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#152; + code : #212#1#152; flags : if_8086 ), ( opcode : A_CDQ; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#153; + code : #213#1#153; flags : if_386 ), ( @@ -1018,163 +507,100 @@ ( opcode : A_CMP; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#56#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#56#65; - flags : if_8086 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#57#65; flags : if_8086 or if_sm ), ( opcode : A_CMP; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#57#65; - flags : if_8086 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#57#65; - flags : if_386 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#57#65; - flags : if_386 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#58#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#58#72; - flags : if_8086 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#59#72; flags : if_8086 or if_sm ), ( opcode : A_CMP; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#59#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#56#65; flags : if_8086 ), ( opcode : A_CMP; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#59#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#58#72; + flags : if_8086 ), ( opcode : A_CMP; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#59#72; - flags : if_386 - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#135#13; flags : if_8086 ), ( opcode : A_CMP; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#135#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #213#1#61#33; + flags : if_386 or if_sd + ), + ( + opcode : A_CMP; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#135#33; + flags : if_386 or if_sd + ), + ( + opcode : A_CMP; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#61#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_CMP; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#135#25; + flags : if_8086 or if_sw ), ( opcode : A_CMP; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#60#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#61#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#61#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_CMP; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#135#17; - flags : if_8086 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_CMP; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#135#25; - flags : if_8086 or if_sm + optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); + code : #213#192#1#129#135#33; + flags : if_386 or if_sd ), ( opcode : A_CMP; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#135#33; - flags : if_386 or if_sm + optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); + code : #212#192#1#129#135#25; + flags : if_8086 or if_sw ), ( opcode : A_CMP; ops : 2; optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); code : #192#1#128#135#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#135#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_CMP; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#135#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_CMPSB; @@ -1187,7 +613,7 @@ opcode : A_CMPSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#209#1#167; + code : #218#213#1#167; flags : if_386 ), ( @@ -1208,91 +634,35 @@ opcode : A_CMPSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#208#1#167; + code : #218#212#1#167; flags : if_8086 ), ( opcode : A_CMPXCHG; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#176#65; - flags : if_pent or if_sm - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#176#65; - flags : if_pent - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#177#65; flags : if_pent or if_sm ), ( opcode : A_CMPXCHG; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#177#65; - flags : if_pent - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#177#65; - flags : if_pent or if_sm - ), - ( - opcode : A_CMPXCHG; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#177#65; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#2#15#176#65; flags : if_pent ), ( opcode : A_CMPXCHG486; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#166#65; - flags : if_486 or if_sm or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#166#65; - flags : if_486 or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#167#65; - flags : if_486 or if_sm or if_undoc + flags : if_486 or if_sm ), ( opcode : A_CMPXCHG486; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#167#65; - flags : if_486 or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_486 or if_sm or if_undoc - ), - ( - opcode : A_CMPXCHG486; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#167#65; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#2#15#166#65; flags : if_486 or if_undoc ), ( @@ -1313,14 +683,14 @@ opcode : A_CWD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#153; + code : #212#1#153; flags : if_8086 ), ( opcode : A_CWDE; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#152; + code : #213#1#152; flags : if_386 ), ( @@ -1340,16 +710,16 @@ ( opcode : A_DEC; ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#72; flags : if_8086 ), ( opcode : A_DEC; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#72; - flags : if_386 + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#129; + flags : if_8086 ), ( opcode : A_DEC; @@ -1359,19 +729,12 @@ flags : if_8086 ), ( - opcode : A_DEC; + opcode : A_DIV; ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#129; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#247#134; flags : if_8086 ), - ( - opcode : A_DEC; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#129; - flags : if_386 - ), ( opcode : A_DIV; ops : 1; @@ -1379,20 +742,6 @@ code : #192#1#246#134; flags : if_8086 ), - ( - opcode : A_DIV; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); - code : #208#192#1#247#134; - flags : if_8086 - ), - ( - opcode : A_DIV; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#134; - flags : if_386 - ), ( opcode : A_EMMS; ops : 0; @@ -2083,7 +1432,7 @@ opcode : A_FILD; ops : 1; optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#223#128; + code : #212#192#1#223#128; flags : if_8086 or if_fpu ), ( @@ -2132,7 +1481,7 @@ opcode : A_FIST; ops : 1; optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#223#130; + code : #212#192#1#223#130; flags : if_8086 or if_fpu ), ( @@ -2146,7 +1495,7 @@ opcode : A_FISTP; ops : 1; optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#223#131; + code : #212#192#1#223#131; flags : if_8086 or if_fpu ), ( @@ -2915,30 +2264,9 @@ ( opcode : A_IBTS; ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#167#65; - flags : if_386 or if_sw or if_undoc - ), - ( - opcode : A_IBTS; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#167#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_IBTS; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_386 or if_sd or if_undoc - ), - ( - opcode : A_IBTS; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#167#65; - flags : if_386 or if_undoc + flags : if_386 or if_sm or if_undoc ), ( opcode : A_ICEBP; @@ -2950,23 +2278,86 @@ ( opcode : A_IDIV; ops : 1; - optypes : (ot_regmem or ot_bits8,ot_none,ot_none); - code : #192#1#246#135; - flags : if_8086 - ), - ( - opcode : A_IDIV; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#135; flags : if_8086 ), ( opcode : A_IDIV; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#135; - flags : if_386 + optypes : (ot_regmem or ot_bits8,ot_none,ot_none); + code : #192#1#246#135; + flags : if_8086 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); + code : #208#193#2#15#175#72; + flags : if_386 or if_sm + ), + ( + opcode : A_IMUL; + ops : 1; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#247#133; + flags : if_8086 + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg32 or ot_bits64,ot_regmem,ot_immediate or ot_bits8 or ot_signed); + code : #208#193#1#107#72#14; + flags : if_286 or if_sm + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg32 or ot_bits64,ot_regmem,ot_immediate); + code : #208#193#1#105#72#34; + flags : if_286 or if_sm or if_sd or if_ar2 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); + code : #208#1#107#64#13; + flags : if_286 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg32 or ot_bits64,ot_immediate,ot_none); + code : #208#1#105#64#33; + flags : if_286 or if_sd + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg16,ot_regmem,ot_immediate or ot_bits8 or ot_signed); + code : #212#193#1#107#72#14; + flags : if_286 or if_sm + ), + ( + opcode : A_IMUL; + ops : 3; + optypes : (ot_reg16,ot_regmem,ot_immediate); + code : #212#193#1#105#72#26; + flags : if_286 or if_sm or if_sw or if_ar2 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg16,ot_immediate or ot_bits8 or ot_signed,ot_none); + code : #212#1#107#64#13; + flags : if_286 + ), + ( + opcode : A_IMUL; + ops : 2; + optypes : (ot_reg16,ot_immediate,ot_none); + code : #212#1#105#64#25; + flags : if_286 or if_sw ), ( opcode : A_IMUL; @@ -2975,132 +2366,6 @@ code : #192#1#246#133; flags : if_8086 ), - ( - opcode : A_IMUL; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); - code : #208#192#1#247#133; - flags : if_8086 - ), - ( - opcode : A_IMUL; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#133; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#175#72; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#175#72; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#175#72; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#175#72; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_memory,ot_immediate or ot_bits8 or ot_signed); - code : #208#193#1#107#72#14; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_reg16,ot_immediate or ot_bits8 or ot_signed); - code : #208#193#1#107#72#14; - flags : if_286 - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_memory,ot_immediate); - code : #208#193#1#105#72#26; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg16,ot_reg16,ot_immediate); - code : #208#193#1#105#72#26; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_memory,ot_immediate or ot_bits8 or ot_signed); - code : #209#193#1#107#72#14; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_reg32,ot_immediate or ot_bits8 or ot_signed); - code : #209#193#1#107#72#14; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_memory,ot_immediate); - code : #209#193#1#105#72#34; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 3; - optypes : (ot_reg32,ot_reg32,ot_immediate); - code : #209#193#1#105#72#34; - flags : if_386 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #208#1#107#64#13; - flags : if_286 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg16,ot_immediate,ot_none); - code : #208#1#105#64#25; - flags : if_286 or if_sm - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#1#107#64#13; - flags : if_386 - ), - ( - opcode : A_IMUL; - ops : 2; - optypes : (ot_reg32,ot_immediate,ot_none); - code : #209#1#105#64#33; - flags : if_386 or if_sm - ), ( opcode : A_IN; ops : 2; @@ -3111,17 +2376,10 @@ ( opcode : A_IN; ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); + optypes : (ot_reg_ax or ot_bits32 or ot_bits64,ot_immediate,ot_none); code : #208#1#229#21; flags : if_8086 or if_sb ), - ( - opcode : A_IN; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#229#21; - flags : if_386 or if_sb - ), ( opcode : A_IN; ops : 2; @@ -3132,30 +2390,23 @@ ( opcode : A_IN; ops : 2; - optypes : (ot_reg_ax,ot_reg_dx,ot_none); + optypes : (ot_reg_ax or ot_bits32 or ot_bits64,ot_reg_dx,ot_none); code : #208#1#237; flags : if_8086 ), - ( - opcode : A_IN; - ops : 2; - optypes : (ot_reg_eax,ot_reg_dx,ot_none); - code : #209#1#237; - flags : if_386 - ), ( opcode : A_INC; ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#64; flags : if_8086 ), ( opcode : A_INC; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#64; - flags : if_386 + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#128; + flags : if_8086 ), ( opcode : A_INC; @@ -3164,20 +2415,6 @@ code : #192#1#254#128; flags : if_8086 ), - ( - opcode : A_INC; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#128; - flags : if_8086 - ), - ( - opcode : A_INC; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#128; - flags : if_386 - ), ( opcode : A_INSB; ops : 0; @@ -3189,14 +2426,14 @@ opcode : A_INSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#109; + code : #213#1#109; flags : if_386 ), ( opcode : A_INSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#109; + code : #212#1#109; flags : if_186 ), ( @@ -3259,37 +2496,58 @@ opcode : A_IRET; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#207; + code : #215#1#207; flags : if_8086 ), ( opcode : A_IRETD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#207; + code : #213#1#207; flags : if_386 ), ( opcode : A_IRETW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#207; + code : #212#1#207; flags : if_8086 ), ( opcode : A_JCXZ; ops : 1; optypes : (ot_immediate,ot_none,ot_none); - code : #208#1#227#40; + code : #212#1#227#40; flags : if_8086 ), ( opcode : A_JECXZ; ops : 1; optypes : (ot_immediate,ot_none,ot_none); - code : #209#1#227#40; + code : #213#1#227#40; flags : if_386 ), + ( + opcode : A_JMP; + ops : 1; + optypes : (ot_immediate or ot_bits8,ot_none,ot_none); + code : #1#235#40; + flags : if_8086 or if_pass2 + ), + ( + opcode : A_JMP; + ops : 1; + optypes : (ot_immediate or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#1#233#52; + flags : if_8086 or if_pass2 + ), + ( + opcode : A_JMP; + ops : 1; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#132; + flags : if_8086 + ), ( opcode : A_JMP; ops : 1; @@ -3297,165 +2555,53 @@ code : #1#235#40; flags : if_8086 or if_pass2 ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate,ot_none,ot_none); - code : #211#1#233#52; - flags : if_8086 or if_pass2 - ), ( opcode : A_JMP; ops : 1; optypes : (ot_immediate or ot_near,ot_none,ot_none); - code : #211#1#233#52; + code : #208#1#233#52; flags : if_8086 or if_pass2 ), ( opcode : A_JMP; ops : 1; optypes : (ot_immediate or ot_far,ot_none,ot_none); - code : #211#1#234#28#31; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits16,ot_none,ot_none); - code : #208#1#233#52; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#1#233#52; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_far,ot_none,ot_none); code : #208#1#234#28#31; flags : if_8086 or if_pass2 ), ( opcode : A_JMP; ops : 1; - optypes : (ot_immediate or ot_bits32,ot_none,ot_none); - code : #209#1#233#52; - flags : if_8086 or if_pass2 + optypes : (ot_memory or ot_near,ot_none,ot_none); + code : #208#192#1#255#132; + flags : if_8086 ), ( opcode : A_JMP; ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#1#233#52; - flags : if_8086 or if_pass2 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#1#234#28#31; - flags : if_8086 or if_pass2 + optypes : (ot_memory or ot_far,ot_none,ot_none); + code : #208#192#1#255#133; + flags : if_8086 ), ( opcode : A_JMP; ops : 2; optypes : (ot_immediate,ot_immediate,ot_none); - code : #211#1#234#29#24; + code : #215#1#234#29#24; flags : if_8086 ), ( opcode : A_JMP; ops : 2; optypes : (ot_immediate,ot_immediate or ot_bits16,ot_none); - code : #208#1#234#25#24; + code : #212#1#234#25#24; flags : if_8086 ), ( opcode : A_JMP; ops : 2; optypes : (ot_immediate,ot_immediate or ot_bits32,ot_none); - code : #209#1#234#33#24; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#133; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); - code : #208#192#1#255#133; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#133; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_JMP; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#132; + code : #213#1#234#33#24; flags : if_386 ), ( @@ -3468,142 +2614,51 @@ ( opcode : A_LAR; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#2#72; flags : if_286 or if_prot or if_sm ), - ( - opcode : A_LAR; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#2#72; - flags : if_286 or if_prot - ), - ( - opcode : A_LAR; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#2#72; - flags : if_286 or if_prot or if_sm - ), - ( - opcode : A_LAR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#2#72; - flags : if_286 or if_prot - ), ( opcode : A_LCALL; ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#131; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#130; flags : if_8086 ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); - code : #208#192#1#255#131; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#131; - flags : if_386 - ), ( opcode : A_LCALL; ops : 1; optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); code : #208#192#1#255#130; flags : if_8086 ), ( opcode : A_LCALL; ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#130; + optypes : (ot_memory or ot_far,ot_none,ot_none); + code : #208#192#1#255#131; flags : if_8086 ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#130; - flags : if_8086 - ), - ( - opcode : A_LCALL; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#130; - flags : if_386 - ), ( opcode : A_LDS; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#1#197#72; flags : if_8086 ), - ( - opcode : A_LDS; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#197#72; - flags : if_8086 - ), ( opcode : A_LEA; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg32 or ot_bits64,ot_memory,ot_none); code : #208#193#1#141#72; flags : if_8086 ), ( opcode : A_LEA; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#141#72; - flags : if_8086 - ), - ( - opcode : A_LEA; - ops : 2; - optypes : (ot_reg32,ot_immediate or ot_bits32,ot_none); - code : #209#193#1#141#72; - flags : if_8086 + optypes : (ot_reg32 or ot_bits64,ot_immediate,ot_none); + code : #208#193#1#141#72; + flags : if_8086 or if_sd ), ( opcode : A_LEAVE; @@ -3615,31 +2670,17 @@ ( opcode : A_LES; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#1#196#72; flags : if_8086 ), - ( - opcode : A_LES; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#196#72; - flags : if_8086 - ), ( opcode : A_LFS; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#2#15#180#72; flags : if_386 ), - ( - opcode : A_LFS; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#180#72; - flags : if_386 - ), ( opcode : A_LGDT; ops : 1; @@ -3650,17 +2691,10 @@ ( opcode : A_LGS; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32,ot_memory,ot_none); code : #208#193#2#15#181#72; flags : if_386 ), - ( - opcode : A_LGS; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#181#72; - flags : if_386 - ), ( opcode : A_LIDT; ops : 1; @@ -3671,119 +2705,35 @@ ( opcode : A_LJMP; ops : 1; - optypes : (ot_memory or ot_far,ot_none,ot_none); - code : #211#192#1#255#133; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#255#132; flags : if_8086 ), ( opcode : A_LJMP; ops : 1; - optypes : (ot_memory or ot_bits16 or ot_far,ot_none,ot_none); + optypes : (ot_memory or ot_far,ot_none,ot_none); code : #208#192#1#255#133; flags : if_8086 ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_far,ot_none,ot_none); - code : #209#192#1#255#133; - flags : if_386 - ), ( opcode : A_LJMP; ops : 1; optypes : (ot_memory or ot_near,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits16 or ot_near,ot_none,ot_none); code : #208#192#1#255#132; flags : if_8086 ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #211#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #208#192#1#255#132; - flags : if_8086 - ), - ( - opcode : A_LJMP; - ops : 1; - optypes : (ot_memory or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#132; - flags : if_386 - ), ( opcode : A_LLDT; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#1#15#15#130; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LLDT; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#130; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LLDT; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16,ot_none,ot_none); code : #192#1#15#15#130; flags : if_286 or if_prot or if_priv ), ( opcode : A_LMSW; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#2#15#1#134; - flags : if_286 or if_priv - ), - ( - opcode : A_LMSW; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#2#15#1#134; - flags : if_286 or if_priv - ), - ( - opcode : A_LMSW; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16,ot_none,ot_none); code : #192#2#15#1#134; flags : if_286 or if_priv ), @@ -3819,14 +2769,14 @@ opcode : A_LODSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#173; + code : #213#1#173; flags : if_386 ), ( opcode : A_LODSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#173; + code : #212#1#173; flags : if_8086 ), ( @@ -3846,7 +2796,7 @@ ( opcode : A_LOOP; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#226#40; flags : if_386 ), @@ -3867,7 +2817,7 @@ ( opcode : A_LOOPE; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#225#40; flags : if_386 ), @@ -3888,7 +2838,7 @@ ( opcode : A_LOOPNE; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#224#40; flags : if_386 ), @@ -3909,7 +2859,7 @@ ( opcode : A_LOOPNZ; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#224#40; flags : if_386 ), @@ -3930,70 +2880,28 @@ ( opcode : A_LOOPZ; ops : 2; - optypes : (ot_immediate,ot_reg_ecx,ot_none); + optypes : (ot_immediate,ot_reg_ecx or ot_bits64,ot_none); code : #201#1#225#40; flags : if_386 ), ( opcode : A_LSL; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#2#15#3#72; flags : if_286 or if_prot or if_sm ), - ( - opcode : A_LSL; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#3#72; - flags : if_286 or if_prot - ), - ( - opcode : A_LSL; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#3#72; - flags : if_286 or if_prot or if_sm - ), - ( - opcode : A_LSL; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#3#72; - flags : if_286 or if_prot - ), ( opcode : A_LSS; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); code : #208#193#2#15#178#72; flags : if_386 ), - ( - opcode : A_LSS; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#178#72; - flags : if_386 - ), ( opcode : A_LTR; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#1#15#15#131; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LTR; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#131; - flags : if_286 or if_prot or if_priv - ), - ( - opcode : A_LTR; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16,ot_none,ot_none); code : #192#1#15#15#131; flags : if_286 or if_prot or if_priv ), @@ -4014,108 +2922,108 @@ ( opcode : A_MOV; ops : 2; - optypes : (ot_memory,ot_reg_cs,ot_none); - code : #208#192#1#140#129; + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); + code : #208#192#1#137#65; flags : if_8086 or if_sm ), ( opcode : A_MOV; ops : 2; - optypes : (ot_memory,ot_reg_dess,ot_none); - code : #208#192#1#140#65; + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); + code : #208#193#1#139#72; flags : if_8086 or if_sm ), ( opcode : A_MOV; ops : 2; - optypes : (ot_memory,ot_reg_fsgs,ot_none); - code : #208#192#1#140#65; - flags : if_386 or if_sm + optypes : (ot_reg32 or ot_bits64,ot_immediate,ot_none); + code : #208#8#184#33; + flags : if_386 or if_sd ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg16,ot_reg_cs,ot_none); + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#199#128#33; + flags : if_386 or if_sd + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg16,ot_immediate,ot_none); + code : #212#8#184#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#199#128#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#136#65; + flags : if_8086 + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#138#72; + flags : if_8086 or if_sm + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_reg8,ot_immediate,ot_none); + code : #8#176#17; + flags : if_8086 or if_sb + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); + code : #192#1#198#128#17; + flags : if_8086 or if_sb + ), + ( + opcode : A_MOV; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32,ot_reg_cs,ot_none); code : #208#192#1#140#129; flags : if_8086 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg16,ot_reg_dess,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32,ot_reg_dess,ot_none); code : #208#192#1#140#65; flags : if_8086 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg16,ot_reg_fsgs,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32,ot_reg_fsgs,ot_none); code : #208#192#1#140#65; flags : if_386 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cs,ot_none); - code : #209#192#1#140#129; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_dess,ot_none); - code : #209#192#1#140#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_fsgs,ot_none); - code : #209#192#1#140#65; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_dess,ot_memory,ot_none); - code : #208#193#1#142#72; + optypes : (ot_reg_dess,ot_regmem or ot_bits16 or ot_bits32,ot_none); + code : #209#193#1#142#72; flags : if_8086 or if_sm ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg_fsgs,ot_memory,ot_none); - code : #208#193#1#142#72; + optypes : (ot_reg_fsgs,ot_regmem or ot_bits16 or ot_bits32,ot_none); + code : #209#193#1#142#72; flags : if_386 or if_sm ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_dess,ot_reg16,ot_none); - code : #208#193#1#142#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_fsgs,ot_reg16,ot_none); - code : #208#193#1#142#72; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_dess,ot_regmem or ot_bits32,ot_none); - code : #209#193#1#142#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg_fsgs,ot_regmem or ot_bits32,ot_none); - code : #209#193#1#142#72; - flags : if_386 - ), ( opcode : A_MOV; ops : 2; @@ -4147,219 +3055,30 @@ ( opcode : A_MOV; ops : 2; - optypes : (ot_reg_cr4,ot_reg32,ot_none); + optypes : (ot_reg_cr4,ot_reg64,ot_none); code : #2#15#34#140; - flags : if_pent or if_priv + flags : if_pent or if_priv or if_x86_64 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg_creg,ot_reg32,ot_none); + optypes : (ot_reg_creg,ot_reg64,ot_none); code : #2#15#34#72; - flags : if_386 or if_priv + flags : if_386 or if_priv or if_x86_64 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg_dreg,ot_reg32,ot_none); + optypes : (ot_reg_dreg,ot_reg64,ot_none); code : #2#15#35#72; - flags : if_386 or if_priv + flags : if_386 or if_priv or if_x86_64 ), ( opcode : A_MOV; ops : 2; - optypes : (ot_reg_treg,ot_reg32,ot_none); + optypes : (ot_reg_treg,ot_reg64,ot_none); code : #2#15#38#72; - flags : if_386 or if_priv - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#136#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#136#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); - code : #208#192#1#137#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#137#65; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#137#65; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#137#65; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_reg64,ot_none); - code : #210#192#1#137#65; - flags : if_x86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg64,ot_reg64,ot_none); - code : #210#192#1#137#65; - flags : if_x86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#138#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#138#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#1#139#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#139#72; - flags : if_8086 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#139#72; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#139#72; - flags : if_386 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg64,ot_memory,ot_none); - code : #210#193#1#139#72; - flags : if_x86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg64,ot_reg64,ot_none); - code : #210#193#1#139#72; - flags : if_x86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg8,ot_immediate,ot_none); - code : #8#176#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg16,ot_immediate,ot_none); - code : #208#8#184#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg32,ot_immediate,ot_none); - code : #209#8#184#33; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_reg64,ot_immediate,ot_none); - code : #210#8#184#33; - flags : if_x86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); - code : #192#1#198#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#199#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#199#128#33; - flags : if_386 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_regmem or ot_bits64,ot_immediate,ot_none); - code : #210#192#1#199#128#33; - flags : if_x86_64 - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#198#128#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#199#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_MOV; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#199#128#33; - flags : if_386 or if_sm + flags : if_386 or if_priv or if_x86_64 ), ( opcode : A_MOVD; @@ -4484,7 +3203,7 @@ opcode : A_MOVSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#165; + code : #213#1#165; flags : if_386 ), ( @@ -4519,78 +3238,50 @@ opcode : A_MOVSQ; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #210#1#165; + code : #214#1#165; flags : if_x86_64 ), ( opcode : A_MOVSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#165; + code : #212#1#165; flags : if_8086 ), ( opcode : A_MOVSX; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#190#72; - flags : if_386 or if_sb + optypes : (ot_reg32 or ot_bits64,ot_regmem or ot_bits16,ot_none); + code : #208#193#2#15#191#72; + flags : if_386 ), ( opcode : A_MOVSX; ops : 2; - optypes : (ot_reg16,ot_reg8,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem or ot_bits8,ot_none); code : #208#193#2#15#190#72; flags : if_386 ), ( - opcode : A_MOVSX; + opcode : A_MOVZX; ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits8,ot_none); - code : #209#193#2#15#190#72; + optypes : (ot_reg32 or ot_bits64,ot_regmem or ot_bits16,ot_none); + code : #208#193#2#15#183#72; flags : if_386 ), - ( - opcode : A_MOVSX; - ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits16,ot_none); - code : #209#193#2#15#191#72; - flags : if_386 - ), - ( - opcode : A_MOVSX; - ops : 2; - optypes : (ot_reg64,ot_regmem or ot_bits16,ot_none); - code : #209#193#2#15#191#72; - flags : if_x86_64 - ), ( opcode : A_MOVZX; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#182#72; - flags : if_386 or if_sb - ), - ( - opcode : A_MOVZX; - ops : 2; - optypes : (ot_reg16,ot_reg8,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem or ot_bits8,ot_none); code : #208#193#2#15#182#72; flags : if_386 ), ( - opcode : A_MOVZX; - ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits8,ot_none); - code : #209#193#2#15#182#72; - flags : if_386 - ), - ( - opcode : A_MOVZX; - ops : 2; - optypes : (ot_reg32,ot_regmem or ot_bits16,ot_none); - code : #209#193#2#15#183#72; - flags : if_386 + opcode : A_MUL; + ops : 1; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#1#247#132; + flags : if_8086 ), ( opcode : A_MUL; @@ -4599,20 +3290,6 @@ code : #192#1#246#132; flags : if_8086 ), - ( - opcode : A_MUL; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); - code : #208#192#1#247#132; - flags : if_8086 - ), - ( - opcode : A_MUL; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#132; - flags : if_386 - ), ( opcode : A_MWAIT; ops : 0; @@ -4630,23 +3307,16 @@ ( opcode : A_NEG; ops : 1; - optypes : (ot_regmem or ot_bits8,ot_none,ot_none); - code : #192#1#246#131; - flags : if_8086 - ), - ( - opcode : A_NEG; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#131; flags : if_8086 ), ( opcode : A_NEG; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#131; - flags : if_386 + optypes : (ot_regmem or ot_bits8,ot_none,ot_none); + code : #192#1#246#131; + flags : if_8086 ), ( opcode : A_NOP; @@ -4658,184 +3328,93 @@ ( opcode : A_NOT; ops : 1; - optypes : (ot_regmem or ot_bits8,ot_none,ot_none); - code : #192#1#246#130; - flags : if_8086 - ), - ( - opcode : A_NOT; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#247#130; flags : if_8086 ), ( opcode : A_NOT; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#247#130; - flags : if_386 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#8#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#8#65; + optypes : (ot_regmem or ot_bits8,ot_none,ot_none); + code : #192#1#246#130; flags : if_8086 ), ( opcode : A_OR; ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#9#65; flags : if_8086 or if_sm ), ( opcode : A_OR; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#9#65; - flags : if_8086 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#9#65; - flags : if_386 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#9#65; - flags : if_386 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#10#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#10#72; - flags : if_8086 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#11#72; flags : if_8086 or if_sm ), ( opcode : A_OR; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#11#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#8#65; flags : if_8086 ), ( opcode : A_OR; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#11#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#10#72; + flags : if_8086 or if_sm ), ( opcode : A_OR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#11#72; - flags : if_386 - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#129#13; flags : if_8086 ), ( opcode : A_OR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#129#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#13#33; + flags : if_386 or if_sd + ), + ( + opcode : A_OR; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#129#33; + flags : if_386 or if_sd + ), + ( + opcode : A_OR; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#13#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_OR; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#129#25; + flags : if_8086 or if_sw ), ( opcode : A_OR; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#12#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#13#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#13#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_OR; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#129#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#129#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#129#33; - flags : if_386 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#129#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#129#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_OR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#129#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_OUT; @@ -4848,14 +3427,14 @@ opcode : A_OUT; ops : 2; optypes : (ot_immediate,ot_reg_ax,ot_none); - code : #208#1#231#20; + code : #212#1#231#20; flags : if_8086 or if_sb ), ( opcode : A_OUT; ops : 2; optypes : (ot_immediate,ot_reg_eax,ot_none); - code : #209#1#231#20; + code : #213#1#231#20; flags : if_386 or if_sb ), ( @@ -4869,14 +3448,14 @@ opcode : A_OUT; ops : 2; optypes : (ot_reg_dx,ot_reg_ax,ot_none); - code : #208#1#239; + code : #212#1#239; flags : if_8086 ), ( opcode : A_OUT; ops : 2; optypes : (ot_reg_dx,ot_reg_eax,ot_none); - code : #209#1#239; + code : #213#1#239; flags : if_386 ), ( @@ -4890,14 +3469,14 @@ opcode : A_OUTSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#111; + code : #213#1#111; flags : if_386 ), ( opcode : A_OUTSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#111; + code : #212#1#111; flags : if_186 ), ( @@ -5869,31 +4448,17 @@ ( opcode : A_POP; ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#88; flags : if_8086 ), ( opcode : A_POP; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#88; - flags : if_386 - ), - ( - opcode : A_POP; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#143#128; flags : if_8086 ), - ( - opcode : A_POP; - ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#143#128; - flags : if_386 - ), ( opcode : A_POP; ops : 1; @@ -5919,42 +4484,42 @@ opcode : A_POPA; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#97; + code : #215#1#97; flags : if_186 ), ( opcode : A_POPAD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#97; + code : #213#1#97; flags : if_386 ), ( opcode : A_POPAW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#97; + code : #212#1#97; flags : if_186 ), ( opcode : A_POPF; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#157; + code : #215#1#157; flags : if_186 ), ( opcode : A_POPFD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#157; + code : #213#1#157; flags : if_386 ), ( opcode : A_POPFW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#157; + code : #212#1#157; flags : if_186 ), ( @@ -6723,38 +5288,31 @@ ( opcode : A_PUSH; ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#8#80; flags : if_8086 ), ( opcode : A_PUSH; ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#8#80; - flags : if_386 - ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_reg64,ot_none,ot_none); - code : #209#8#80; - flags : if_x86_64 - ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_regmem or ot_bits16,ot_none,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#192#1#255#134; flags : if_8086 ), ( opcode : A_PUSH; ops : 1; - optypes : (ot_regmem or ot_bits32,ot_none,ot_none); - code : #209#192#1#255#134; + optypes : (ot_immediate or ot_bits32,ot_none,ot_none); + code : #213#1#104#32; flags : if_386 ), + ( + opcode : A_PUSH; + ops : 1; + optypes : (ot_immediate or ot_bits16,ot_none,ot_none); + code : #212#1#104#24; + flags : if_286 + ), ( opcode : A_PUSH; ops : 1; @@ -6762,60 +5320,46 @@ code : #1#106#12; flags : if_286 ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_immediate or ot_bits16,ot_none,ot_none); - code : #208#1#104#24; - flags : if_286 - ), - ( - opcode : A_PUSH; - ops : 1; - optypes : (ot_immediate or ot_bits32,ot_none,ot_none); - code : #209#1#104#32; - flags : if_386 - ), ( opcode : A_PUSHA; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#96; + code : #215#1#96; flags : if_186 ), ( opcode : A_PUSHAD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#96; + code : #213#1#96; flags : if_386 ), ( opcode : A_PUSHAW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#96; + code : #212#1#96; flags : if_186 ), ( opcode : A_PUSHF; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #211#1#156; + code : #215#1#156; flags : if_186 ), ( opcode : A_PUSHFD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#156; + code : #213#1#156; flags : if_386 ), ( opcode : A_PUSHFW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#156; + code : #212#1#156; flags : if_186 ), ( @@ -6846,6 +5390,27 @@ code : #3#102#15#239#72; flags : if_willamette or if_sse2 ), + ( + opcode : A_RCL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#130; + flags : if_8086 + ), + ( + opcode : A_RCL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#130; + flags : if_8086 + ), + ( + opcode : A_RCL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8,ot_none); + code : #208#192#1#193#130#21; + flags : if_8086 + ), ( opcode : A_RCL; ops : 2; @@ -6868,46 +5433,25 @@ flags : if_186 or if_sb ), ( - opcode : A_RCL; + opcode : A_RCR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#130; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#131; flags : if_8086 ), ( - opcode : A_RCL; + opcode : A_RCR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#130; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#131; flags : if_8086 ), ( - opcode : A_RCL; + opcode : A_RCR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#130#21; - flags : if_186 or if_sb - ), - ( - opcode : A_RCL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#130; - flags : if_386 - ), - ( - opcode : A_RCL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#130; - flags : if_386 - ), - ( - opcode : A_RCL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#130#21; - flags : if_386 or if_sb + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8,ot_none); + code : #208#192#1#193#131#21; + flags : if_8086 ), ( opcode : A_RCR; @@ -6930,48 +5474,6 @@ code : #192#1#192#131#21; flags : if_186 or if_sb ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#131; - flags : if_8086 - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#131; - flags : if_8086 - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#131#21; - flags : if_186 or if_sb - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#131; - flags : if_386 - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#131; - flags : if_386 - ), - ( - opcode : A_RCR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#131#21; - flags : if_386 or if_sb - ), ( opcode : A_RDSHR; ops : 0; @@ -7077,6 +5579,27 @@ code : #1#194#24; flags : if_8086 or if_sw ), + ( + opcode : A_ROL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#128; + flags : if_8086 + ), + ( + opcode : A_ROL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#128; + flags : if_8086 + ), + ( + opcode : A_ROL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#128#21; + flags : if_8086 or if_sb + ), ( opcode : A_ROL; ops : 2; @@ -7099,46 +5622,25 @@ flags : if_186 or if_sb ), ( - opcode : A_ROL; + opcode : A_ROR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#128; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#129; flags : if_8086 ), ( - opcode : A_ROL; + opcode : A_ROR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#128; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#129; flags : if_8086 ), ( - opcode : A_ROL; + opcode : A_ROR; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#128#21; - flags : if_186 or if_sb - ), - ( - opcode : A_ROL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#128; - flags : if_386 - ), - ( - opcode : A_ROL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#128; - flags : if_386 - ), - ( - opcode : A_ROL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#128#21; - flags : if_386 or if_sb + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#129#21; + flags : if_8086 or if_sb ), ( opcode : A_ROR; @@ -7161,48 +5663,6 @@ code : #192#1#192#129#21; flags : if_186 or if_sb ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#129; - flags : if_8086 - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#129; - flags : if_8086 - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#129#21; - flags : if_186 or if_sb - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#129; - flags : if_386 - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#129; - flags : if_386 - ), - ( - opcode : A_ROR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#129#21; - flags : if_386 or if_sb - ), ( opcode : A_RSDC; ops : 2; @@ -7224,6 +5684,27 @@ code : #2#15#170; flags : if_pent or if_smm ), + ( + opcode : A_SAL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#132; + flags : if_8086 + ), + ( + opcode : A_SAL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#132; + flags : if_8086 + ), + ( + opcode : A_SAL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#132#21; + flags : if_8086 or if_sb + ), ( opcode : A_SAL; ops : 2; @@ -7245,48 +5726,6 @@ code : #192#1#192#132#21; flags : if_186 or if_sb ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#132; - flags : if_8086 - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#132; - flags : if_8086 - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#132#21; - flags : if_186 or if_sb - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#132; - flags : if_386 - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#132; - flags : if_386 - ), - ( - opcode : A_SAL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#132#21; - flags : if_386 or if_sb - ), ( opcode : A_SALC; ops : 0; @@ -7294,6 +5733,27 @@ code : #1#214; flags : if_8086 or if_undoc ), + ( + opcode : A_SAR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#135; + flags : if_8086 + ), + ( + opcode : A_SAR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#135; + flags : if_8086 + ), + ( + opcode : A_SAR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#135#21; + flags : if_8086 or if_sb + ), ( opcode : A_SAR; ops : 2; @@ -7315,208 +5775,82 @@ code : #192#1#192#135#21; flags : if_186 or if_sb ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#135; - flags : if_8086 - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#135; - flags : if_8086 - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#135#21; - flags : if_186 or if_sb - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#135; - flags : if_386 - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#135; - flags : if_386 - ), - ( - opcode : A_SAR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#135#21; - flags : if_386 or if_sb - ), ( opcode : A_SBB; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#24#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#24#65; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#25#65; flags : if_8086 or if_sm ), ( opcode : A_SBB; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#25#65; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#25#65; - flags : if_386 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#25#65; - flags : if_386 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#26#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#26#72; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#27#72; flags : if_8086 or if_sm ), ( opcode : A_SBB; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#27#72; - flags : if_8086 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#27#72; - flags : if_386 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#27#72; - flags : if_386 - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#131#13; flags : if_8086 ), ( opcode : A_SBB; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#131#13; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#24#65; flags : if_8086 ), ( opcode : A_SBB; ops : 2; - optypes : (ot_reg_al,ot_immediate,ot_none); - code : #1#28#17; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#26#72; flags : if_8086 or if_sm ), + ( + opcode : A_SBB; + ops : 2; + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#29#33; + flags : if_386 or if_sd + ), + ( + opcode : A_SBB; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#131#33; + flags : if_386 or if_sd + ), ( opcode : A_SBB; ops : 2; optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#29#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#29#33; - flags : if_386 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); - code : #192#1#128#131#17; - flags : if_8086 or if_sm + code : #212#1#29#25; + flags : if_8086 or if_sw ), ( opcode : A_SBB; ops : 2; optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); code : #208#192#1#129#131#25; - flags : if_8086 or if_sm + flags : if_8086 or if_sw ), ( opcode : A_SBB; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#131#33; - flags : if_386 or if_sm + optypes : (ot_reg_al,ot_immediate,ot_none); + code : #1#28#17; + flags : if_8086 or if_sb ), ( opcode : A_SBB; ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); + optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#131#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#131#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SBB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#131#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_SCASB; @@ -7529,14 +5863,14 @@ opcode : A_SCASD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#209#1#175; + code : #218#213#1#175; flags : if_386 ), ( opcode : A_SCASW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #218#208#1#175; + code : #218#212#1#175; flags : if_8086 ), ( @@ -7588,6 +5922,27 @@ code : #192#2#15#1#128; flags : if_286 ), + ( + opcode : A_SHL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#132; + flags : if_8086 + ), + ( + opcode : A_SHL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#132; + flags : if_8086 + ), + ( + opcode : A_SHL; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#132#21; + flags : if_186 or if_sw + ), ( opcode : A_SHL; ops : 2; @@ -7609,104 +5964,83 @@ code : #192#1#192#132#21; flags : if_186 or if_sb ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#132; - flags : if_8086 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#132; - flags : if_8086 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#132#21; - flags : if_186 or if_sw - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#132; - flags : if_386 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#132; - flags : if_386 - ), - ( - opcode : A_SHL; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#132#21; - flags : if_386 or if_sd - ), ( opcode : A_SHLD; ops : 3; optypes : (ot_memory,ot_reg16,ot_immediate); - code : #192#208#2#15#164#65#22; + 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_reg16,ot_reg16,ot_immediate); - code : #192#208#2#15#164#65#22; + 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#209#2#15#164#65#22; + 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#209#2#15#164#65#22; + 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#208#2#15#165#65; + code : #192#212#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#208#2#15#165#65; + 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#209#2#15#165#65; + 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#209#2#15#165#65; + code : #192#213#2#15#165#65; flags : if_386 ), + ( + opcode : A_SHR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_unity,ot_none); + code : #208#192#1#209#133; + flags : if_8086 + ), + ( + opcode : A_SHR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_reg_cl,ot_none); + code : #208#192#1#211#133; + flags : if_8086 + ), + ( + opcode : A_SHR; + ops : 2; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#193#133#21; + flags : if_186 or if_sw + ), ( opcode : A_SHR; ops : 2; @@ -7728,102 +6062,60 @@ code : #192#1#192#133#21; flags : if_186 or if_sb ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_unity,ot_none); - code : #208#192#1#209#133; - flags : if_8086 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_reg_cl,ot_none); - code : #208#192#1#211#133; - flags : if_8086 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#193#133#21; - flags : if_186 or if_sw - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_unity,ot_none); - code : #209#192#1#209#133; - flags : if_386 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_reg_cl,ot_none); - code : #209#192#1#211#133; - flags : if_386 - ), - ( - opcode : A_SHR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#193#133#21; - flags : if_386 or if_sd - ), ( opcode : A_SHRD; ops : 3; optypes : (ot_memory,ot_reg16,ot_immediate); - code : #192#208#2#15#172#65#22; + 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_reg16,ot_reg16,ot_immediate); - code : #192#208#2#15#172#65#22; + 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#209#2#15#172#65#22; + 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#209#2#15#172#65#22; + 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#208#2#15#173#65; + code : #192#212#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#208#2#15#173#65; + 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#209#2#15#173#65; + 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#209#2#15#173#65; + code : #192#213#2#15#173#65; flags : if_386 ), ( @@ -7843,24 +6135,10 @@ ( opcode : A_SLDT; ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#128; - flags : if_286 - ), - ( - opcode : A_SLDT; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#1#15#15#128; flags : if_286 ), - ( - opcode : A_SLDT; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#1#15#15#128; - flags : if_386 - ), ( opcode : A_SMI; ops : 0; @@ -7885,31 +6163,10 @@ ( opcode : A_SMSW; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#2#15#1#132; + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_none,ot_none); + code : #208#192#2#15#1#132; flags : if_286 ), - ( - opcode : A_SMSW; - ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#2#15#1#132; - flags : if_286 - ), - ( - opcode : A_SMSW; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); - code : #208#2#15#1#132; - flags : if_286 - ), - ( - opcode : A_SMSW; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#2#15#1#132; - flags : if_386 - ), ( opcode : A_STC; ops : 0; @@ -7942,14 +6199,14 @@ opcode : A_STOSD; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#171; + code : #213#1#171; flags : if_386 ), ( opcode : A_STOSW; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #208#1#171; + code : #212#1#171; flags : if_8086 ), ( @@ -7962,240 +6219,86 @@ ( opcode : A_STR; ops : 1; - optypes : (ot_memory or ot_bits16,ot_none,ot_none); - code : #192#1#15#15#129; - flags : if_286 or if_prot - ), - ( - opcode : A_STR; - ops : 1; - optypes : (ot_reg16,ot_none,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_none,ot_none); code : #208#1#15#15#129; flags : if_286 or if_prot ), - ( - opcode : A_STR; - ops : 1; - optypes : (ot_reg32,ot_none,ot_none); - code : #209#1#15#15#129; - flags : if_386 or if_prot - ), ( opcode : A_SUB; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#40#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#40#65; - flags : if_8086 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#41#65; flags : if_8086 or if_sm ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#41#65; - flags : if_8086 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#41#65; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#41#65; - flags : if_386 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#41#65; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#41#65; - flags : if_386 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_reg64,ot_none); - code : #210#192#1#41#65; - flags : if_x86_64 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg64,ot_reg64,ot_none); - code : #210#192#1#41#65; - flags : if_x86_64 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#42#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#42#72; - flags : if_8086 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#43#72; flags : if_8086 or if_sm ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#43#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#40#65; flags : if_8086 ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#43#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#42#72; + flags : if_8086 or if_sm ), ( opcode : A_SUB; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#43#72; - flags : if_386 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg64,ot_reg64,ot_none); - code : #210#193#1#43#72; - flags : if_x86_64 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#133#13; flags : if_8086 ), ( opcode : A_SUB; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#133#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#45#33; + flags : if_386 or if_sd ), ( opcode : A_SUB; ops : 2; - optypes : (ot_regmem or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #210#192#1#131#133#13; - flags : if_x86_64 + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#133#33; + flags : if_8086 or if_sd + ), + ( + opcode : A_SUB; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#45#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_SUB; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#133#25; + flags : if_8086 or if_sw ), ( opcode : A_SUB; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#44#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#45#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#45#33; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_reg_rax,ot_immediate,ot_none); - code : #210#1#45#33; - flags : if_x86_64 + flags : if_8086 or if_sb ), ( opcode : A_SUB; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#133#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#133#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#133#33; - flags : if_386 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_regmem or ot_bits64,ot_immediate,ot_none); - code : #210#192#1#129#133#33; - flags : if_x86_64 - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#133#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#133#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_SUB; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#133#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_SVDC; @@ -8249,8 +6352,15 @@ ( opcode : A_TEST; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#132#65; + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); + code : #208#192#1#133#65; + flags : if_8086 or if_sm + ), + ( + opcode : A_TEST; + ops : 2; + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); + code : #208#193#1#133#72; flags : if_8086 or if_sm ), ( @@ -8260,34 +6370,6 @@ code : #192#1#132#65; flags : if_8086 ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); - code : #208#192#1#133#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#133#65; - flags : if_8086 - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#133#65; - flags : if_386 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#133#65; - flags : if_386 - ), ( opcode : A_TEST; ops : 2; @@ -8298,16 +6380,16 @@ ( opcode : A_TEST; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#1#133#72; - flags : if_8086 or if_sm + optypes : (ot_reg_eax,ot_immediate,ot_none); + code : #213#1#169#33; + flags : if_386 or if_sm ), ( opcode : A_TEST; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#133#72; - flags : if_386 or if_sm + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#169#25; + flags : if_8086 or if_sm ), ( opcode : A_TEST; @@ -8319,16 +6401,16 @@ ( opcode : A_TEST; ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#169#25; - flags : if_8086 or if_sm + optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); + code : #213#192#1#247#128#33; + flags : if_386 or if_sm ), ( opcode : A_TEST; ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#169#33; - flags : if_386 or if_sm + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#247#128#25; + flags : if_8086 or if_sm ), ( opcode : A_TEST; @@ -8340,16 +6422,16 @@ ( opcode : A_TEST; ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#247#128#25; - flags : if_8086 or if_sm + optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); + code : #213#192#1#247#128#33; + flags : if_386 or if_sm ), ( opcode : A_TEST; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#247#128#33; - flags : if_386 or if_sm + optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); + code : #212#192#1#247#128#25; + flags : if_8086 or if_sm ), ( opcode : A_TEST; @@ -8358,20 +6440,6 @@ code : #192#1#246#128#17; flags : if_8086 or if_sm ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#247#128#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_TEST; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#247#128#33; - flags : if_386 or if_sm - ), ( opcode : A_UD1; ops : 0; @@ -8389,85 +6457,29 @@ ( opcode : A_UMOV; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#16#65; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#16#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#17#65; flags : if_386 or if_undoc or if_sm ), ( opcode : A_UMOV; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#17#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#17#65; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#17#65; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#2#15#18#72; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#2#15#18#72; - flags : if_386 or if_undoc - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_memory,ot_none); code : #208#193#2#15#19#72; flags : if_386 or if_undoc or if_sm ), ( opcode : A_UMOV; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#19#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#2#15#16#65; flags : if_386 or if_undoc ), ( opcode : A_UMOV; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#19#72; - flags : if_386 or if_undoc or if_sm - ), - ( - opcode : A_UMOV; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#19#72; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#2#15#18#72; flags : if_386 or if_undoc ), ( @@ -8543,184 +6555,114 @@ ( opcode : A_XADD; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#2#15#192#65; - flags : if_486 or if_sm - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#2#15#192#65; - flags : if_486 - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_memory,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#2#15#193#65; flags : if_486 or if_sm ), ( opcode : A_XADD; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#2#15#193#65; - flags : if_486 - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#2#15#193#65; - flags : if_486 or if_sm - ), - ( - opcode : A_XADD; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#2#15#193#65; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#2#15#192#65; flags : if_486 ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#2#15#166#72; + code : #212#193#2#15#166#72; flags : if_386 or if_sw or if_undoc ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#2#15#166#72; + code : #212#193#2#15#166#72; flags : if_386 or if_undoc ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#2#15#166#72; + code : #213#193#2#15#166#72; flags : if_386 or if_sd or if_undoc ), ( opcode : A_XBTS; ops : 2; optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#2#15#166#72; + code : #213#193#2#15#166#72; flags : if_386 or if_undoc ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg_ax,ot_reg16,ot_none); - code : #208#9#144; + code : #212#9#144; flags : if_8086 ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg_eax,ot_reg32,ot_none); - code : #209#9#144; + code : #213#9#144; flags : if_386 ), + ( + opcode : A_XCHG; + ops : 2; + optypes : (ot_reg_rax,ot_reg64,ot_none); + code : #214#9#144; + flags : if_x86_64 + ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg16,ot_reg_ax,ot_none); - code : #208#8#144; + code : #212#8#144; flags : if_8086 ), ( opcode : A_XCHG; ops : 2; optypes : (ot_reg32,ot_reg_eax,ot_none); - code : #209#8#144; + code : #213#8#144; flags : if_386 ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#134#72; - flags : if_8086 or if_sm + optypes : (ot_reg64,ot_reg_rax,ot_none); + code : #214#8#144; + flags : if_x86_64 ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#134#72; - flags : if_8086 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#135#72; flags : if_8086 or if_sm ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#135#72; - flags : if_8086 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#135#72; - flags : if_386 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#135#72; - flags : if_386 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#134#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#134#65; - flags : if_8086 - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_memory,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#135#65; flags : if_8086 or if_sm ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#135#65; + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#134#72; flags : if_8086 ), ( opcode : A_XCHG; ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#135#65; - flags : if_386 or if_sm - ), - ( - opcode : A_XCHG; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#135#65; - flags : if_386 + optypes : (ot_memory or ot_bits8,ot_reg8,ot_none); + code : #192#1#134#65; + flags : if_8086 ), ( opcode : A_XLAT; @@ -8739,163 +6681,79 @@ ( opcode : A_XOR; ops : 2; - optypes : (ot_memory,ot_reg8,ot_none); - code : #192#1#48#65; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #192#1#48#65; - flags : if_8086 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_reg16,ot_none); + optypes : (ot_regmem,ot_reg16 or ot_bits32 or ot_bits64,ot_none); code : #208#192#1#49#65; flags : if_8086 or if_sm ), ( opcode : A_XOR; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#192#1#49#65; - flags : if_8086 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_reg32,ot_none); - code : #209#192#1#49#65; - flags : if_386 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#192#1#49#65; - flags : if_386 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg8,ot_memory,ot_none); - code : #193#1#50#72; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg8,ot_reg8,ot_none); - code : #193#1#50#72; - flags : if_8086 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); code : #208#193#1#51#72; flags : if_8086 or if_sm ), ( opcode : A_XOR; ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#51#72; + optypes : (ot_regmem or ot_bits8,ot_reg8,ot_none); + code : #192#1#48#65; flags : if_8086 ), ( opcode : A_XOR; ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#51#72; - flags : if_386 or if_sm + optypes : (ot_reg8,ot_regmem or ot_bits8,ot_none); + code : #193#1#50#72; + flags : if_8086 ), ( opcode : A_XOR; ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#51#72; - flags : if_386 - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate or ot_bits8 or ot_signed,ot_none); + optypes : (ot_regmem or ot_bits16 or ot_bits32 or ot_bits64,ot_immediate or ot_bits8 or ot_signed,ot_none); code : #208#192#1#131#134#13; flags : if_8086 ), ( opcode : A_XOR; ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate or ot_bits8 or ot_signed,ot_none); - code : #209#192#1#131#134#13; - flags : if_386 + optypes : (ot_reg_eax or ot_bits64,ot_immediate,ot_none); + code : #208#1#53#33; + flags : if_386 or if_sd + ), + ( + opcode : A_XOR; + ops : 2; + optypes : (ot_regmem or ot_bits32 or ot_bits64,ot_immediate,ot_none); + code : #208#192#1#129#134#33; + flags : if_386 or if_sd + ), + ( + opcode : A_XOR; + ops : 2; + optypes : (ot_reg_ax,ot_immediate,ot_none); + code : #212#1#53#25; + flags : if_8086 or if_sw + ), + ( + opcode : A_XOR; + ops : 2; + optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); + code : #212#192#1#129#134#25; + flags : if_8086 or if_sw ), ( opcode : A_XOR; ops : 2; optypes : (ot_reg_al,ot_immediate,ot_none); code : #1#52#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg_ax,ot_immediate,ot_none); - code : #208#1#53#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_reg_eax,ot_immediate,ot_none); - code : #209#1#53#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_XOR; ops : 2; optypes : (ot_regmem or ot_bits8,ot_immediate,ot_none); code : #192#1#128#134#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_regmem or ot_bits16,ot_immediate,ot_none); - code : #208#192#1#129#134#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_regmem or ot_bits32,ot_immediate,ot_none); - code : #209#192#1#129#134#33; - flags : if_386 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits8,ot_none); - code : #192#1#128#134#17; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits16,ot_none); - code : #208#192#1#129#134#25; - flags : if_8086 or if_sm - ), - ( - opcode : A_XOR; - ops : 2; - optypes : (ot_memory,ot_immediate or ot_bits32,ot_none); - code : #209#192#1#129#134#33; - flags : if_386 or if_sm + flags : if_8086 or if_sb ), ( opcode : A_XSTORE; @@ -8935,78 +6793,43 @@ ( opcode : A_CMOVcc; ops : 2; - optypes : (ot_reg16,ot_memory,ot_none); - code : #208#193#1#15#216#64#72; + optypes : (ot_reg16 or ot_bits32 or ot_bits64,ot_regmem,ot_none); + code : #208#193#1#15#11#64#72; flags : if_p6 or if_sm ), - ( - opcode : A_CMOVcc; - ops : 2; - optypes : (ot_reg16,ot_reg16,ot_none); - code : #208#193#1#15#216#64#72; - flags : if_p6 - ), - ( - opcode : A_CMOVcc; - ops : 2; - optypes : (ot_reg32,ot_memory,ot_none); - code : #209#193#1#15#216#64#72; - flags : if_p6 or if_sm - ), - ( - opcode : A_CMOVcc; - ops : 2; - optypes : (ot_reg32,ot_reg32,ot_none); - code : #209#193#1#15#216#64#72; - flags : if_p6 - ), ( opcode : A_Jcc; ops : 1; - optypes : (ot_immediate or ot_near,ot_none,ot_none); - code : #211#1#15#216#128#52; - flags : if_386 or if_pass2 - ), - ( - opcode : A_Jcc; - ops : 1; - optypes : (ot_immediate or ot_bits16 or ot_near,ot_none,ot_none); - code : #208#1#15#216#128#52; - flags : if_386 or if_pass2 - ), - ( - opcode : A_Jcc; - ops : 1; - optypes : (ot_immediate or ot_bits32 or ot_near,ot_none,ot_none); - code : #209#1#15#216#128#52; - flags : if_386 or if_pass2 - ), - ( - opcode : A_Jcc; - ops : 1; - optypes : (ot_immediate,ot_none,ot_none); - code : #216#112#40; + optypes : (ot_immediate or ot_bits8,ot_none,ot_none); + code : #11#112#40; flags : if_8086 ), + ( + opcode : A_Jcc; + ops : 1; + optypes : (ot_immediate or ot_bits16 or ot_bits32,ot_none,ot_none); + code : #208#1#15#11#128#52; + flags : if_386 or if_pass2 + ), ( opcode : A_Jcc; ops : 1; optypes : (ot_immediate or ot_short,ot_none,ot_none); - code : #216#112#40; + code : #11#112#40; flags : if_8086 ), ( - opcode : A_SETcc; + opcode : A_Jcc; ops : 1; - optypes : (ot_memory,ot_none,ot_none); - code : #192#1#15#216#144#128; - flags : if_386 or if_sb + optypes : (ot_immediate or ot_near,ot_none,ot_none); + code : #208#1#15#11#128#52; + flags : if_386 or if_pass2 ), ( opcode : A_SETcc; ops : 1; - optypes : (ot_reg8,ot_none,ot_none); - code : #192#1#15#216#144#128; + optypes : (ot_regmem or ot_bits8,ot_none,ot_none); + code : #192#1#15#11#144#128; flags : if_386 ), ( @@ -11813,28 +9636,28 @@ opcode : A_MOVABS; ops : 2; optypes : (ot_reg32,ot_immediate,ot_none); - code : #209#8#184#33; + code : #213#8#184#33; flags : if_x86_64 ), ( opcode : A_MOVSXD; ops : 2; optypes : (ot_reg64,ot_memory,ot_none); - code : #209#193#1#99#72; + code : #213#193#1#99#72; flags : if_x86_64 ), ( opcode : A_MOVSXD; ops : 2; optypes : (ot_reg64,ot_reg32,ot_none); - code : #209#193#1#99#72; + code : #213#193#1#99#72; flags : if_x86_64 ), ( opcode : A_CQO; ops : 0; optypes : (ot_none,ot_none,ot_none); - code : #209#1#153; + code : #213#1#153; flags : if_x86_64 ) );