.*:49: Error: .*
.*:50: Error: .*
.*:51: Error: .*
-.*:52: Error: .*
-.*:53: Error: .*
GAS LISTING .*
20 [ ]*foo:[ ]*jcxz foo # No prefix exists to select CX as a counter
21 [ ]*jmpl \*%eax # 32-bit data size not allowed
22 [ ]*jmpl \*\(%rax\) # 32-bit data size not allowed
- 23 [ ]*lahf # illegal
- 24 [ ]*lcalll \$0,\$0 # illegal
- 25 [ ]*lcallq \$0,\$0 # illegal
- 26 [ ]*ldsl %eax,\(%rax\) # illegal
- 27 [ ]*ldsq %rax,\(%rax\) # illegal
- 28 [ ]*lesl %eax,\(%rax\) # illegal
- 29 [ ]*lesq %rax,\(%rax\) # illegal
- 30 [ ]*ljmpl \$0,\$0 # illegal
- 31 [ ]*ljmpq \$0,\$0 # illegal
- 32 [ ]*ljmpq \*\(%rax\) # 64-bit data size not allowed
- 33 [ ]*loopw foo # No prefix exists to select CX as a counter
- 34 [ ]*loopew foo # No prefix exists to select CX as a counter
- 35 [ ]*loopnew foo # No prefix exists to select CX as a counter
- 36 [ ]*loopnzw foo # No prefix exists to select CX as a counter
- 37 [ ]*loopzw foo # No prefix exists to select CX as a counter
- 38 [ ]*leavel # can't have 32-bit stack operands
- 39 [ ]*pop %ds # illegal
- 40 [ ]*pop %es # illegal
- 41 [ ]*pop %ss # illegal
- 42 [ ]*popa # illegal
- 43 [ ]*popl %eax # can't have 32-bit stack operands
- 44 [ ]*push %cs # illegal
- 45 [ ]*push %ds # illegal
- 46 [ ]*push %es # illegal
- 47 [ ]*push %ss # illegal
- 48 [ ]*pusha # illegal
- 49 [ ]*pushl %eax # can't have 32-bit stack operands
- 50 [ ]*pushfl # can't have 32-bit stack operands
- 51 [ ]*popfl # can't have 32-bit stack operands
- 52 [ ]*retl # can't have 32-bit stack operands
- 53 [ ]*sahf # illegal
+ 23 [ ]*lcalll \$0,\$0 # illegal
+ 24 [ ]*lcallq \$0,\$0 # illegal
+ 25 [ ]*ldsl %eax,\(%rax\) # illegal
+ 26 [ ]*ldsq %rax,\(%rax\) # illegal
+ 27 [ ]*lesl %eax,\(%rax\) # illegal
+ 28 [ ]*lesq %rax,\(%rax\) # illegal
+ 29 [ ]*ljmpl \$0,\$0 # illegal
+ 30 [ ]*ljmpq \$0,\$0 # illegal
+ 31 [ ]*ljmpq \*\(%rax\) # 64-bit data size not allowed
+ 32 [ ]*loopw foo # No prefix exists to select CX as a counter
+ 33 [ ]*loopew foo # No prefix exists to select CX as a counter
+ 34 [ ]*loopnew foo # No prefix exists to select CX as a counter
+ 35 [ ]*loopnzw foo # No prefix exists to select CX as a counter
+ 36 [ ]*loopzw foo # No prefix exists to select CX as a counter
+ 37 [ ]*leavel # can't have 32-bit stack operands
+ 38 [ ]*pop %ds # illegal
+ 39 [ ]*pop %es # illegal
+ 40 [ ]*pop %ss # illegal
+ 41 [ ]*popa # illegal
+ 42 [ ]*popl %eax # can't have 32-bit stack operands
+ 43 [ ]*push %cs # illegal
+ 44 [ ]*push %ds # illegal
+ 45 [ ]*push %es # illegal
+ 46 [ ]*push %ss # illegal
+ 47 [ ]*pusha # illegal
+ 48 [ ]*pushl %eax # can't have 32-bit stack operands
+ 49 [ ]*pushfl # can't have 32-bit stack operands
+ 50 [ ]*popfl # can't have 32-bit stack operands
+ 51 [ ]*retl # can't have 32-bit stack operands
#define MOV_AX_DISP32 0xa0
/* In the 64bit mode the short form mov immediate is redefined to have
64bit displacement value. */
-{ "mov", 2, 0xa0, X, CpuNo64,bwlq_Suf|D|W, { Disp16|Disp32, Acc, 0 } },
+{ "mov", 2, 0xa0, X, CpuNo64,bwl_Suf|D|W, { Disp16|Disp32, Acc, 0 } },
{ "mov", 2, 0x88, X, 0, bwlq_Suf|D|W|Modrm, { Reg, Reg|AnyMem, 0} },
/* In the 64bit mode the short form mov immediate is redefined to have
64bit displacement value. */
{ "mov", 2, 0x0f20, X, Cpu64, q_Suf|D|Modrm|IgnoreSize|NoRex64,{ Control, Reg64|InvMem, 0} },
{ "mov", 2, 0x0f21, X, Cpu386|CpuNo64, l_Suf|D|Modrm|IgnoreSize,{ Debug, Reg32|InvMem, 0} },
{ "mov", 2, 0x0f21, X, Cpu64, q_Suf|D|Modrm|IgnoreSize|NoRex64,{ Debug, Reg64|InvMem, 0} },
-{ "mov", 2, 0x0f24, X, Cpu386, l_Suf|D|Modrm|IgnoreSize, { Test, Reg32|InvMem, 0} },
+{ "mov", 2, 0x0f24, X, Cpu386|CpuNo64, l_Suf|D|Modrm|IgnoreSize, { Test, Reg32|InvMem, 0} },
{ "movabs",2, 0xa0, X, Cpu64, bwlq_Suf|D|W, { Disp64, Acc, 0 } },
{ "movabs",2, 0xb0, X, Cpu64, q_Suf|W|ShortForm, { Imm64, Reg64, 0 } },
{"cli", 0, 0xfa, X, 0, NoSuf, { 0, 0, 0} },
{"clts", 0, 0x0f06, X, Cpu286, NoSuf, { 0, 0, 0} },
{"cmc", 0, 0xf5, X, 0, NoSuf, { 0, 0, 0} },
-{"lahf", 0, 0x9f, X, CpuNo64,NoSuf, { 0, 0, 0} },
-{"sahf", 0, 0x9e, X, CpuNo64,NoSuf, { 0, 0, 0} },
+{"lahf", 0, 0x9f, X, 0, NoSuf, { 0, 0, 0} },
+{"sahf", 0, 0x9e, X, 0, NoSuf, { 0, 0, 0} },
{"pushf", 0, 0x9c, X, CpuNo64,wl_Suf|DefaultSize, { 0, 0, 0} },
{"pushf", 0, 0x9c, X, Cpu64, wq_Suf|DefaultSize|NoRex64,{ 0, 0, 0} },
{"popf", 0, 0x9d, X, CpuNo64,wl_Suf|DefaultSize, { 0, 0, 0} },
{"sgdt", 1, 0x0f01, 0, Cpu286|CpuNo64, wl_Suf|Modrm, { WordMem, 0, 0} },
{"sgdt", 1, 0x0f01, 0, Cpu64, q_Suf|Modrm|NoRex64, { LLongMem, 0, 0} },
{"sidt", 1, 0x0f01, 1, Cpu286|CpuNo64, wl_Suf|Modrm, { WordMem, 0, 0} },
-{"sidt", 1, 0x0f01, 1, Cpu64, q_Suf|Modrm, { LLongMem, 0, 0} },
+{"sidt", 1, 0x0f01, 1, Cpu64, q_Suf|Modrm|NoRex64, { LLongMem, 0, 0} },
{"sldt", 1, 0x0f00, 0, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} },
{"sldt", 1, 0x0f00, 0, Cpu286, w_Suf|Modrm|IgnoreSize,{ ShortMem, 0, 0} },
{"smsw", 1, 0x0f01, 4, Cpu286, wlq_Suf|Modrm, { WordReg|InvMem, 0, 0} },
/* Pentium II/Pentium Pro extensions. */
{"sysenter",0, 0x0f34, X, Cpu686, NoSuf, { 0, 0, 0} },
{"sysexit", 0, 0x0f35, X, Cpu686, NoSuf, { 0, 0, 0} },
-{"fxsave", 1, 0x0fae, 0, Cpu686, FP|Modrm, { LLongMem, 0, 0} },
-{"fxrstor", 1, 0x0fae, 1, Cpu686, FP|Modrm, { LLongMem, 0, 0} },
+{"fxsave", 1, 0x0fae, 0, Cpu686, q_Suf|Modrm, { LLongMem, 0, 0} },
+{"fxrstor", 1, 0x0fae, 1, Cpu686, q_Suf|Modrm, { LLongMem, 0, 0} },
{"rdpmc", 0, 0x0f33, X, Cpu686, NoSuf, { 0, 0, 0} },
/* official undefined instr. */
{"ud2", 0, 0x0f0b, X, Cpu686, NoSuf, { 0, 0, 0} },
{"addsubpd", 2, 0x660fd0, X, CpuPNI, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
{"addsubps", 2, 0xf20fd0, X, CpuPNI, NoSuf|IgnoreSize|Modrm, { RegXMM|LLongMem, RegXMM, 0 } },
+{"cmpxchg16b",1, 0x0fc7, 1, CpuPNI|Cpu64, NoSuf|Modrm|Rex64, { LLongMem, 0, 0} },
{"fisttp", 1, 0xdf, 1, CpuPNI, sl_FP|Modrm, { ShortMem|LongMem, 0, 0} },
{"fisttp", 1, 0xdd, 1, CpuPNI, q_FP|Modrm, { LLongMem, 0, 0} },
{"fisttpll", 1, 0xdd, 1, CpuPNI, FP|Modrm, { LLongMem, 0, 0} },