diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 120984a318..5f2f9f0641 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2008-01-15 H.J. Lu + + * gas/i386/prescott.s: Add tests for movddup in Intel syntax. + * gas/i386/x86-64-prescott.s: Likewise. + + * gas/i386/prescott.d: Updated. + * gas/i386/x86-64-prescott.d: Likewise. + 2008-01-15 H.J. Lu * gas/i386/i386.s: Add more tests for movsx and movzx. diff --git a/gas/testsuite/gas/i386/prescott.d b/gas/testsuite/gas/i386/prescott.d index 9b701c007d..ed385096ab 100644 --- a/gas/testsuite/gas/i386/prescott.d +++ b/gas/testsuite/gas/i386/prescott.d @@ -34,4 +34,6 @@ Disassembly of section .text: 69: 0f 01 c9 [ ]*mwait %eax,%ecx 6c: 67 0f 01 c8 [ ]*monitor %ax,%ecx,%edx 70: 67 0f 01 c8 [ ]*monitor %ax,%ecx,%edx - ... + 74: f2 0f 12 38 [ ]*movddup \(%eax\),%xmm7 + 78: f2 0f 12 38 [ ]*movddup \(%eax\),%xmm7 +#pass diff --git a/gas/testsuite/gas/i386/prescott.s b/gas/testsuite/gas/i386/prescott.s index 95dacf7729..6049c9766e 100644 --- a/gas/testsuite/gas/i386/prescott.s +++ b/gas/testsuite/gas/i386/prescott.s @@ -32,4 +32,6 @@ foo: monitor %ax,%ecx,%edx addr16 monitor - .p2align 4,0 + .intel_syntax noprefix + movddup xmm7,[eax] + movddup xmm7,QWORD PTR [eax] diff --git a/gas/testsuite/gas/i386/x86-64-prescott.d b/gas/testsuite/gas/i386/x86-64-prescott.d index 26b9e6ec95..943ad3ec08 100644 --- a/gas/testsuite/gas/i386/x86-64-prescott.d +++ b/gas/testsuite/gas/i386/x86-64-prescott.d @@ -34,4 +34,6 @@ Disassembly of section .text: 69: 0f 01 c9 [ ]*mwait %rax,%rcx 6c: 67 0f 01 c8 [ ]*monitor %eax,%rcx,%rdx 70: 67 0f 01 c8 [ ]*monitor %eax,%rcx,%rdx - ... + 74: f2 0f 12 38 [ ]*movddup \(%rax\),%xmm7 + 78: f2 0f 12 38 [ ]*movddup \(%rax\),%xmm7 +#pass diff --git a/gas/testsuite/gas/i386/x86-64-prescott.s b/gas/testsuite/gas/i386/x86-64-prescott.s index 0f03683c2a..58fea020ad 100644 --- a/gas/testsuite/gas/i386/x86-64-prescott.s +++ b/gas/testsuite/gas/i386/x86-64-prescott.s @@ -32,4 +32,6 @@ foo: monitor %eax,%rcx,%rdx addr32 monitor - .p2align 4,0 + .intel_syntax noprefix + movddup xmm7,[rax] + movddup xmm7,QWORD PTR [rax] diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 4188e9f52c..20c0447a5f 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2008-01-15 H.J. Lu + + * i386-opc.tbl: Use Qword on movddup. + * i386-tbl.h: Regenerated. + 2008-01-15 H.J. Lu * i386-opc.tbl: Put back 16bit movsx/movzx for AT&T syntax. diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 22c54c342a..337722c4ac 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -1275,7 +1275,7 @@ monitor, 0, 0xf01, 0xc8, 2, CpuSSE3, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ monitor, 3, 0xf01, 0xc8, 2, CpuSSE3|CpuNo64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|AddrPrefixOp0, { Reg16|Reg32, Reg32, Reg32 } // Need to ensure only "monitor %rax/%eax,%rcx,%rdx" is accepted. monitor, 3, 0xf01, 0xc8, 2, CpuSSE3|Cpu64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt|AddrPrefixOp0|NoRex64, { Reg32|Reg64, Reg64, Reg64 } -movddup, 2, 0xf20f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } +movddup, 2, 0xf20f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } movshdup, 2, 0xf30f16, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } movsldup, 2, 0xf30f12, None, 2, CpuSSE3, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Xmmword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S|RegXMM, RegXMM } mwait, 0, 0xf01, 0xc9, 2, CpuSSE3, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|ImmExt, { 0 } diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index 8622fb3bb3..4ee01a51a6 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -10919,7 +10919,7 @@ const template i386_optab[] = 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0 } }, { { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,