From bd5295b282c09d4aa5ee49b869cb39cd1dc8f02b Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 10 Jan 2009 17:25:52 +0000 Subject: gas/ 2009-01-10 H.J. Lu * gas/config/tc-i386.c (cpu_arch): Add corei7, .clflush and .syscall. (i386_align_code): Handle PROCESSOR_COREI7. (md_show_usage): Add corei7, clflush and syscall. (i386_target_format): Replace cpup4 with cpuclflush. * gas/config/tc-i386.h (processor_type): Add PROCESSOR_COREI7. * doc/c-i386.texi: Document corei7, clflush and syscall. gas/testsuite/ 2009-01-10 H.J. Lu * gas/i386/arch-10.s: Add clflush and syscall. * gas/i386/x86-64-arch-2.s: Likewise. * gas/i386/arch-10.d: Updated. * gas/i386/arch-10-1.l: Likewise. * gas/i386/arch-10-2.l: Likewise. * gas/i386/arch-10-3.l: Likewise. * gas/i386/arch-10-4.l: Likewise. * gas/i386/x86-64-arch-2.d: Likewise. opcodes/ 2009-01-10 H.J. Lu * i386-gen.c (cpu_flag_init): Replace CpuP4 and CpuK6 with CpuClflush and CpuSYSCALL, respectively. Remove CpuK8. Add CPU_COREI7_FLAGS, CPU_CLFLUSH_FLAGS and CPU_SYSCALL_FLAGS. (cpu_flags): Remove CpuP4, CpuK6 and CpuK8. Add CpuClflush and CpuSYSCALL. (lineno): Removed. (set_bitfield): Take an argument, lineno. Don't report lineno on error if it is -1. (process_i386_cpu_flag): Take an argument, lineno. (process_i386_opcode_modifier): Likewise. (process_i386_operand_type): Likewise. (output_i386_opcode): Likewise. (opcode_hash_entry): Add lineno. (process_i386_opcodes): Updated. (process_i386_registers): Likewise. (process_i386_initializers): Likewise. * i386-opc.h (CpuP4): Removed. (CpuK6): Likewise. (CpuK8): Likewise. (CpuClflush): New. (CpuSYSCALL): Likewise. (CpuMMX): Updated. (i386_cpu_flags): Remove cpup4, cpuk6 and cpuk8. Add cpuclflush and cpusyscall. * i386-opc.tbl: Update movnti, clflush, lfence, mfence, pause, syscall and sysret. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. --- gas/ChangeLog | 12 ++++ gas/config/tc-i386.c | 24 ++++--- gas/config/tc-i386.h | 1 + gas/doc/c-i386.texi | 9 ++- gas/testsuite/ChangeLog | 12 ++++ gas/testsuite/gas/i386/arch-10-1.l | 109 ++++++++++++++++-------------- gas/testsuite/gas/i386/arch-10-2.l | 109 ++++++++++++++++-------------- gas/testsuite/gas/i386/arch-10-3.l | 116 +++++++++++++++++--------------- gas/testsuite/gas/i386/arch-10-4.l | 118 +++++++++++++++++---------------- gas/testsuite/gas/i386/arch-10.d | 4 +- gas/testsuite/gas/i386/arch-10.s | 4 ++ gas/testsuite/gas/i386/x86-64-arch-2.d | 4 +- gas/testsuite/gas/i386/x86-64-arch-2.s | 4 ++ 13 files changed, 302 insertions(+), 224 deletions(-) (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 3bbc31c..134ad9e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,15 @@ +2009-01-10 H.J. Lu + + * gas/config/tc-i386.c (cpu_arch): Add corei7, .clflush and + .syscall. + (i386_align_code): Handle PROCESSOR_COREI7. + (md_show_usage): Add corei7, clflush and syscall. + (i386_target_format): Replace cpup4 with cpuclflush. + + * gas/config/tc-i386.h (processor_type): Add PROCESSOR_COREI7. + + * doc/c-i386.texi: Document corei7, clflush and syscall. + 2009-01-09 H.J. Lu * config/tc-i386.c (cpu_arch): Add .rdtscp. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 7222969..f731abb 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -600,6 +600,8 @@ static const arch_entry cpu_arch[] = CPU_CORE2_FLAGS }, { "core2", PROCESSOR_CORE2, CPU_CORE2_FLAGS }, + { "corei7", PROCESSOR_COREI7, + CPU_COREI7_FLAGS }, { "k6", PROCESSOR_K6, CPU_K6_FLAGS }, { "k6_2", PROCESSOR_K6, @@ -650,6 +652,10 @@ static const arch_entry cpu_arch[] = CPU_MOVBE_FLAGS }, { ".ept", PROCESSOR_UNKNOWN, CPU_EPT_FLAGS }, + { ".clflush", PROCESSOR_UNKNOWN, + CPU_CLFLUSH_FLAGS }, + { ".syscall", PROCESSOR_UNKNOWN, + CPU_SYSCALL_FLAGS }, { ".rdtscp", PROCESSOR_UNKNOWN, CPU_RDTSCP_FLAGS }, { ".3dnow", PROCESSOR_UNKNOWN, @@ -950,8 +956,8 @@ i386_align_code (fragS *fragP, int count) 1. For PROCESSOR_I386, PROCESSOR_I486, PROCESSOR_PENTIUM and PROCESSOR_GENERIC32, f32_patt will be used. 2. For PROCESSOR_PENTIUMPRO, PROCESSOR_PENTIUM4, PROCESSOR_NOCONA, - PROCESSOR_CORE, PROCESSOR_CORE2, and PROCESSOR_GENERIC64, - alt_long_patt will be used. + PROCESSOR_CORE, PROCESSOR_CORE2, PROCESSOR_COREI7, and + PROCESSOR_GENERIC64, alt_long_patt will be used. 3. For PROCESSOR_ATHLON, PROCESSOR_K6, PROCESSOR_K8 and PROCESSOR_AMDFAM10, alt_short_patt will be used. @@ -997,6 +1003,7 @@ i386_align_code (fragS *fragP, int count) case PROCESSOR_NOCONA: case PROCESSOR_CORE: case PROCESSOR_CORE2: + case PROCESSOR_COREI7: case PROCESSOR_GENERIC64: patt = alt_long_patt; break; @@ -1044,6 +1051,7 @@ i386_align_code (fragS *fragP, int count) case PROCESSOR_NOCONA: case PROCESSOR_CORE: case PROCESSOR_CORE2: + case PROCESSOR_COREI7: if (fragP->tc_frag_data.isa_flags.bitfield.cpui686) patt = alt_long_patt; else @@ -8232,18 +8240,18 @@ md_show_usage (stream) generate code for CPU and EXTENSION, CPU is one of:\n\ i8086, i186, i286, i386, i486, pentium, pentiumpro,\n\ pentiumii, pentiumiii, pentium4, prescott, nocona,\n\ - core, core2, k6, k6_2, athlon, k8, amdfam10,\n\ + core, core2, corei7, k6, k6_2, athlon, k8, amdfam10,\n\ generic32, generic64\n\ EXTENSION is combination of:\n\ mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, sse4,\n\ avx, vmx, smx, xsave, movbe, ept, aes, pclmul, fma,\n\ - rdtscp, 3dnow, 3dnowa, sse4a, sse5, svme, abm,\n\ - padlock\n")); + clflush, syscall, rdtscp, 3dnow, 3dnowa, sse4a,\n\ + sse5, svme, abm, padlock\n")); fprintf (stream, _("\ -mtune=CPU optimize for CPU, CPU is one of:\n\ i8086, i186, i286, i386, i486, pentium, pentiumpro,\n\ pentiumii, pentiumiii, pentium4, prescott, nocona,\n\ - core, core2, k6, k6_2, athlon, k8, amdfam10,\n\ + core, core2, corei7, k6, k6_2, athlon, k8, amdfam10,\n\ generic32, generic64\n")); fprintf (stream, _("\ -msse2avx encode SSE instructions with VEX prefix\n")); @@ -8281,7 +8289,7 @@ i386_target_format (void) cpu_arch_isa_flags.bitfield.cpui486 = 1; cpu_arch_isa_flags.bitfield.cpui586 = 1; cpu_arch_isa_flags.bitfield.cpui686 = 1; - cpu_arch_isa_flags.bitfield.cpup4 = 1; + cpu_arch_isa_flags.bitfield.cpuclflush = 1; cpu_arch_isa_flags.bitfield.cpummx= 1; cpu_arch_isa_flags.bitfield.cpusse = 1; cpu_arch_isa_flags.bitfield.cpusse2 = 1; @@ -8294,7 +8302,7 @@ i386_target_format (void) cpu_arch_tune_flags.bitfield.cpui486 = 1; cpu_arch_tune_flags.bitfield.cpui586 = 1; cpu_arch_tune_flags.bitfield.cpui686 = 1; - cpu_arch_tune_flags.bitfield.cpup4 = 1; + cpu_arch_tune_flags.bitfield.cpuclflush = 1; cpu_arch_tune_flags.bitfield.cpummx= 1; cpu_arch_tune_flags.bitfield.cpusse = 1; cpu_arch_tune_flags.bitfield.cpusse2 = 1; diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h index f7f829c..1670041a 100644 --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -198,6 +198,7 @@ enum processor_type PROCESSOR_NOCONA, PROCESSOR_CORE, PROCESSOR_CORE2, + PROCESSOR_COREI7, PROCESSOR_K6, PROCESSOR_ATHLON, PROCESSOR_K8, diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi index d07c2d1..8a70523 100644 --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -100,6 +100,7 @@ processor names are recognized: @code{nocona}, @code{core}, @code{core2}, +@code{corei7}, @code{k6}, @code{k6_2}, @code{athlon}, @@ -130,6 +131,8 @@ accept various extension mnemonics. For example, @code{fma}, @code{movbe}, @code{ept}, +@code{clflush}, +@code{syscall}, @code{rdtscp}, @code{3dnow}, @code{3dnowa}, @@ -873,14 +876,14 @@ supported on the CPU specified. The choices for @var{cpu_type} are: @item @samp{i486} @tab @samp{i586} @tab @samp{i686} @tab @samp{pentium} @item @samp{pentiumpro} @tab @samp{pentiumii} @tab @samp{pentiumiii} @tab @samp{pentium4} @item @samp{prescott} @tab @samp{nocona} @tab @samp{core} @tab @samp{core2} -@item @samp{k6} @tab @samp{k6_2} @tab @samp{athlon} @tab @samp{k8} -@item @samp{amdfam10} +@item @samp{corei7} @tab @samp{k6} @tab @samp{k6_2} @tab @samp{athlon} +@item @samp{k8} @tab @samp{amdfam10} @item @samp{generic32} @tab @samp{generic64} @item @samp{.mmx} @tab @samp{.sse} @tab @samp{.sse2} @tab @samp{.sse3} @item @samp{.ssse3} @tab @samp{.sse4.1} @tab @samp{.sse4.2} @tab @samp{.sse4} @item @samp{.avx} @tab @samp{.vmx} @tab @samp{.smx} @tab @samp{.xsave} @item @samp{.aes} @tab @samp{.pclmul} @tab @samp{.fma} @tab @samp{.movbe} -@item @samp{.ept} @tab @samp{.rdtscp} +@item @samp{.ept} @tab @samp{.clflush} @tab @samp{.syscall} @tab @samp{.rdtscp} @item @samp{.3dnow} @tab @samp{.3dnowa} @tab @samp{.sse4a} @tab @samp{.sse5} @item @samp{.svme} @tab @samp{.abm} @item @samp{.padlock} diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 9e41c37..3e422f3 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2009-01-10 H.J. Lu + + * gas/i386/arch-10.s: Add clflush and syscall. + * gas/i386/x86-64-arch-2.s: Likewise. + + * gas/i386/arch-10.d: Updated. + * gas/i386/arch-10-1.l: Likewise. + * gas/i386/arch-10-2.l: Likewise. + * gas/i386/arch-10-3.l: Likewise. + * gas/i386/arch-10-4.l: Likewise. + * gas/i386/x86-64-arch-2.d: Likewise. + 2009-01-09 H.J. Lu * gas/i386/arch-10.s: Add rdtscp. diff --git a/gas/testsuite/gas/i386/arch-10-1.l b/gas/testsuite/gas/i386/arch-10-1.l index 7dae75f..3d1c9fe 100644 --- a/gas/testsuite/gas/i386/arch-10-1.l +++ b/gas/testsuite/gas/i386/arch-10-1.l @@ -25,6 +25,8 @@ .*:50: Error: .* .*:52: Error: .* .*:54: Error: .* +.*:56: Error: .* +.*:58: Error: .* GAS LISTING .* @@ -33,53 +35,60 @@ GAS LISTING .* [ ]*2[ ]+\.text [ ]*3[ ]+\# cmov feature [ ]*4[ ]+cmove %eax,%ebx -[ ]*5[ ]+\# MMX -[ ]*6[ ]+paddb %mm4,%mm3 -[ ]*7[ ]+\# SSE -[ ]*8[ ]+addss %xmm4,%xmm3 -[ ]*9[ ]+\# SSE2 -[ ]*10[ ]+addsd %xmm4,%xmm3 -[ ]*11[ ]+\# SSE3 -[ ]*12[ ]+addsubpd %xmm4,%xmm3 -[ ]*13[ ]+\# SSSE3 -[ ]*14[ ]+phaddw %xmm4,%xmm3 -[ ]*15[ ]+\# SSE4\.1 -[ ]*16[ ]+phminposuw %xmm1,%xmm3 -[ ]*17[ ]+\# SSE4\.2 -[ ]*18[ ]+crc32 %ecx,%ebx -[ ]*19[ ]+\# AVX -[ ]*20[ ]+vzeroall -[ ]*21[ ]+\# VMX -[ ]*22[ ]+vmxoff -[ ]*23[ ]+\# SMX -[ ]*24[ ]+getsec -[ ]*25[ ]+\# Xsave -[ ]*26[ ]+xgetbv -[ ]*27[ ]+\# AES -[ ]*28[ ]+aesenc \(%ecx\),%xmm0 -[ ]*29[ ]+\# PCLMUL -[ ]*30[ ]+pclmulqdq \$8,%xmm1,%xmm0 -[ ]*31[ ]+\# AES \+ AVX -[ ]*32[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*33[ ]+\# FMA -[ ]*34[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*35[ ]+\# MOVBE -[ ]*36[ ]+movbe \(%ecx\),%ebx -[ ]*37[ ]+\# EPT -[ ]*38[ ]+invept \(%ecx\),%ebx -[ ]*39[ ]+\# RDTSCP -[ ]*40[ ]+rdtscp -[ ]*41[ ]+\# 3DNow -[ ]*42[ ]+pmulhrw %mm4,%mm3 -[ ]*43[ ]+\# 3DNow Extensions -[ ]*44[ ]+pswapd %mm4,%mm3 -[ ]*45[ ]+\# SSE4a -[ ]*46[ ]+insertq %xmm2,%xmm1 -[ ]*47[ ]+\# SVME -[ ]*48[ ]+vmload -[ ]*49[ ]+\# ABM -[ ]*50[ ]+lzcnt %ecx,%ebx -[ ]*51[ ]+\# SSE5 -[ ]*52[ ]+frczss %xmm2, %xmm1 -[ ]*53[ ]+\# PadLock -[ ]*54[ ]+xstorerng +[ ]*5[ ]+\# clflush +[ ]*6[ ]+clflush \(%eax\) +[ ]*7[ ]+\# SYSCALL +[ ]*8[ ]+syscall +[ ]*9[ ]+\# MMX +[ ]*10[ ]+paddb %mm4,%mm3 +[ ]*11[ ]+\# SSE +[ ]*12[ ]+addss %xmm4,%xmm3 +[ ]*13[ ]+\# SSE2 +[ ]*14[ ]+addsd %xmm4,%xmm3 +[ ]*15[ ]+\# SSE3 +[ ]*16[ ]+addsubpd %xmm4,%xmm3 +[ ]*17[ ]+\# SSSE3 +[ ]*18[ ]+phaddw %xmm4,%xmm3 +[ ]*19[ ]+\# SSE4\.1 +[ ]*20[ ]+phminposuw %xmm1,%xmm3 +[ ]*21[ ]+\# SSE4\.2 +[ ]*22[ ]+crc32 %ecx,%ebx +[ ]*23[ ]+\# AVX +[ ]*24[ ]+vzeroall +[ ]*25[ ]+\# VMX +[ ]*26[ ]+vmxoff +[ ]*27[ ]+\# SMX +[ ]*28[ ]+getsec +[ ]*29[ ]+\# Xsave +[ ]*30[ ]+xgetbv +[ ]*31[ ]+\# AES +[ ]*32[ ]+aesenc \(%ecx\),%xmm0 +[ ]*33[ ]+\# PCLMUL +[ ]*34[ ]+pclmulqdq \$8,%xmm1,%xmm0 +[ ]*35[ ]+\# AES \+ AVX +[ ]*36[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 +[ ]*37[ ]+\# FMA +[ ]*38[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 +[ ]*39[ ]+\# MOVBE +[ ]*40[ ]+movbe \(%ecx\),%ebx +[ ]*41[ ]+\# EPT +[ ]*42[ ]+invept \(%ecx\),%ebx +[ ]*43[ ]+\# RDTSCP +[ ]*44[ ]+rdtscp +[ ]*45[ ]+\# 3DNow +[ ]*46[ ]+pmulhrw %mm4,%mm3 +[ ]*47[ ]+\# 3DNow Extensions +[ ]*48[ ]+pswapd %mm4,%mm3 +[ ]*49[ ]+\# SSE4a +[ ]*50[ ]+insertq %xmm2,%xmm1 +[ ]*51[ ]+\# SVME +[ ]*52[ ]+vmload +[ ]*53[ ]+\# ABM +[ ]*54[ ]+lzcnt %ecx,%ebx +[ ]*55[ ]+\# SSE5 +[ ]*56[ ]+frczss %xmm2, %xmm1 + GAS LISTING .* + + +[ ]*57[ ]+\# PadLock +[ ]*58[ ]+xstorerng diff --git a/gas/testsuite/gas/i386/arch-10-2.l b/gas/testsuite/gas/i386/arch-10-2.l index 0a0c0f7..6c0eb59 100644 --- a/gas/testsuite/gas/i386/arch-10-2.l +++ b/gas/testsuite/gas/i386/arch-10-2.l @@ -24,6 +24,8 @@ .*:50: Error: .* .*:52: Error: .* .*:54: Error: .* +.*:56: Error: .* +.*:58: Error: .* GAS LISTING .* @@ -32,53 +34,60 @@ GAS LISTING .* [ ]*2[ ]+\.text [ ]*3[ ]+\# cmov feature [ ]*4[ ]+\?\?\?\? 0F44D8 cmove %eax,%ebx -[ ]*5[ ]+\# MMX -[ ]*6[ ]+paddb %mm4,%mm3 -[ ]*7[ ]+\# SSE -[ ]*8[ ]+addss %xmm4,%xmm3 -[ ]*9[ ]+\# SSE2 -[ ]*10[ ]+addsd %xmm4,%xmm3 -[ ]*11[ ]+\# SSE3 -[ ]*12[ ]+addsubpd %xmm4,%xmm3 -[ ]*13[ ]+\# SSSE3 -[ ]*14[ ]+phaddw %xmm4,%xmm3 -[ ]*15[ ]+\# SSE4\.1 -[ ]*16[ ]+phminposuw %xmm1,%xmm3 -[ ]*17[ ]+\# SSE4\.2 -[ ]*18[ ]+crc32 %ecx,%ebx -[ ]*19[ ]+\# AVX -[ ]*20[ ]+vzeroall -[ ]*21[ ]+\# VMX -[ ]*22[ ]+vmxoff -[ ]*23[ ]+\# SMX -[ ]*24[ ]+getsec -[ ]*25[ ]+\# Xsave -[ ]*26[ ]+xgetbv -[ ]*27[ ]+\# AES -[ ]*28[ ]+aesenc \(%ecx\),%xmm0 -[ ]*29[ ]+\# PCLMUL -[ ]*30[ ]+pclmulqdq \$8,%xmm1,%xmm0 -[ ]*31[ ]+\# AES \+ AVX -[ ]*32[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*33[ ]+\# FMA -[ ]*34[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*35[ ]+\# MOVBE -[ ]*36[ ]+movbe \(%ecx\),%ebx -[ ]*37[ ]+\# EPT -[ ]*38[ ]+invept \(%ecx\),%ebx -[ ]*39[ ]+\# RDTSCP -[ ]*40[ ]+rdtscp -[ ]*41[ ]+\# 3DNow -[ ]*42[ ]+pmulhrw %mm4,%mm3 -[ ]*43[ ]+\# 3DNow Extensions -[ ]*44[ ]+pswapd %mm4,%mm3 -[ ]*45[ ]+\# SSE4a -[ ]*46[ ]+insertq %xmm2,%xmm1 -[ ]*47[ ]+\# SVME -[ ]*48[ ]+vmload -[ ]*49[ ]+\# ABM -[ ]*50[ ]+lzcnt %ecx,%ebx -[ ]*51[ ]+\# SSE5 -[ ]*52[ ]+frczss %xmm2, %xmm1 -[ ]*53[ ]+\# PadLock -[ ]*54[ ]+xstorerng +[ ]*5[ ]+\# clflush +[ ]*6[ ]+clflush \(%eax\) +[ ]*7[ ]+\# SYSCALL +[ ]*8[ ]+syscall +[ ]*9[ ]+\# MMX +[ ]*10[ ]+paddb %mm4,%mm3 +[ ]*11[ ]+\# SSE +[ ]*12[ ]+addss %xmm4,%xmm3 +[ ]*13[ ]+\# SSE2 +[ ]*14[ ]+addsd %xmm4,%xmm3 +[ ]*15[ ]+\# SSE3 +[ ]*16[ ]+addsubpd %xmm4,%xmm3 +[ ]*17[ ]+\# SSSE3 +[ ]*18[ ]+phaddw %xmm4,%xmm3 +[ ]*19[ ]+\# SSE4\.1 +[ ]*20[ ]+phminposuw %xmm1,%xmm3 +[ ]*21[ ]+\# SSE4\.2 +[ ]*22[ ]+crc32 %ecx,%ebx +[ ]*23[ ]+\# AVX +[ ]*24[ ]+vzeroall +[ ]*25[ ]+\# VMX +[ ]*26[ ]+vmxoff +[ ]*27[ ]+\# SMX +[ ]*28[ ]+getsec +[ ]*29[ ]+\# Xsave +[ ]*30[ ]+xgetbv +[ ]*31[ ]+\# AES +[ ]*32[ ]+aesenc \(%ecx\),%xmm0 +[ ]*33[ ]+\# PCLMUL +[ ]*34[ ]+pclmulqdq \$8,%xmm1,%xmm0 +[ ]*35[ ]+\# AES \+ AVX +[ ]*36[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 +[ ]*37[ ]+\# FMA +[ ]*38[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 +[ ]*39[ ]+\# MOVBE +[ ]*40[ ]+movbe \(%ecx\),%ebx +[ ]*41[ ]+\# EPT +[ ]*42[ ]+invept \(%ecx\),%ebx +[ ]*43[ ]+\# RDTSCP +[ ]*44[ ]+rdtscp +[ ]*45[ ]+\# 3DNow +[ ]*46[ ]+pmulhrw %mm4,%mm3 +[ ]*47[ ]+\# 3DNow Extensions +[ ]*48[ ]+pswapd %mm4,%mm3 +[ ]*49[ ]+\# SSE4a +[ ]*50[ ]+insertq %xmm2,%xmm1 +[ ]*51[ ]+\# SVME +[ ]*52[ ]+vmload +[ ]*53[ ]+\# ABM +[ ]*54[ ]+lzcnt %ecx,%ebx +[ ]*55[ ]+\# SSE5 +[ ]*56[ ]+frczss %xmm2, %xmm1 + GAS LISTING .* + + +[ ]*57[ ]+\# PadLock +[ ]*58[ ]+xstorerng diff --git a/gas/testsuite/gas/i386/arch-10-3.l b/gas/testsuite/gas/i386/arch-10-3.l index 7284804..4a638ff 100644 --- a/gas/testsuite/gas/i386/arch-10-3.l +++ b/gas/testsuite/gas/i386/arch-10-3.l @@ -1,6 +1,6 @@ .*: Assembler messages: -.*:20: Error: .* -.*:22: Error: .* +.*:6: Error: .* +.*:8: Error: .* .*:24: Error: .* .*:26: Error: .* .*:28: Error: .* @@ -17,6 +17,8 @@ .*:50: Error: .* .*:52: Error: .* .*:54: Error: .* +.*:56: Error: .* +.*:58: Error: .* GAS LISTING .* @@ -25,59 +27,63 @@ GAS LISTING .* [ ]*2[ ]+\.text [ ]*3[ ]+\# cmov feature [ ]*4[ ]+\?\?\?\? 0F44D8 cmove %eax,%ebx -[ ]*5[ ]+\# MMX -[ ]*6[ ]+\?\?\?\? 0FFCDC paddb %mm4,%mm3 -[ ]*7[ ]+\# SSE -[ ]*8[ ]+\?\?\?\? F30F58DC addss %xmm4,%xmm3 -[ ]*9[ ]+\# SSE2 -[ ]*10[ ]+\?\?\?\? F20F58DC addsd %xmm4,%xmm3 -[ ]*11[ ]+\# SSE3 -[ ]*12[ ]+\?\?\?\? 660FD0DC addsubpd %xmm4,%xmm3 -[ ]*13[ ]+\# SSSE3 -[ ]*14[ ]+\?\?\?\? 660F3801 phaddw %xmm4,%xmm3 -[ ]*14[ ]+DC -[ ]*15[ ]+\# SSE4\.1 -[ ]*16[ ]+\?\?\?\? 660F3841 phminposuw %xmm1,%xmm3 -[ ]*16[ ]+D9 -[ ]*17[ ]+\# SSE4\.2 -[ ]*18[ ]+\?\?\?\? F20F38F1 crc32 %ecx,%ebx -[ ]*18[ ]+D9 -[ ]*19[ ]+\# AVX -[ ]*20[ ]+vzeroall -[ ]*21[ ]+\# VMX -[ ]*22[ ]+vmxoff -[ ]*23[ ]+\# SMX -[ ]*24[ ]+getsec -[ ]*25[ ]+\# Xsave -[ ]*26[ ]+xgetbv -[ ]*27[ ]+\# AES -[ ]*28[ ]+aesenc \(%ecx\),%xmm0 -[ ]*29[ ]+\# PCLMUL -[ ]*30[ ]+pclmulqdq \$8,%xmm1,%xmm0 -[ ]*31[ ]+\# AES \+ AVX -[ ]*32[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*33[ ]+\# FMA -[ ]*34[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*35[ ]+\# MOVBE -[ ]*36[ ]+movbe \(%ecx\),%ebx -[ ]*37[ ]+\# EPT -[ ]*38[ ]+invept \(%ecx\),%ebx -[ ]*39[ ]+\# RDTSCP -[ ]*40[ ]+rdtscp -[ ]*41[ ]+\# 3DNow -[ ]*42[ ]+pmulhrw %mm4,%mm3 -[ ]*43[ ]+\# 3DNow Extensions -[ ]*44[ ]+pswapd %mm4,%mm3 -[ ]*45[ ]+\# SSE4a -[ ]*46[ ]+insertq %xmm2,%xmm1 -[ ]*47[ ]+\# SVME -[ ]*48[ ]+vmload -[ ]*49[ ]+\# ABM -[ ]*50[ ]+lzcnt %ecx,%ebx -[ ]*51[ ]+\# SSE5 -[ ]*52[ ]+frczss %xmm2, %xmm1 -[ ]*53[ ]+\# PadLock +[ ]*5[ ]+\# clflush +[ ]*6[ ]+clflush \(%eax\) +[ ]*7[ ]+\# SYSCALL +[ ]*8[ ]+syscall +[ ]*9[ ]+\# MMX +[ ]*10[ ]+\?\?\?\? 0FFCDC paddb %mm4,%mm3 +[ ]*11[ ]+\# SSE +[ ]*12[ ]+\?\?\?\? F30F58DC addss %xmm4,%xmm3 +[ ]*13[ ]+\# SSE2 +[ ]*14[ ]+\?\?\?\? F20F58DC addsd %xmm4,%xmm3 +[ ]*15[ ]+\# SSE3 +[ ]*16[ ]+\?\?\?\? 660FD0DC addsubpd %xmm4,%xmm3 +[ ]*17[ ]+\# SSSE3 +[ ]*18[ ]+\?\?\?\? 660F3801 phaddw %xmm4,%xmm3 +[ ]*18[ ]+DC +[ ]*19[ ]+\# SSE4\.1 +[ ]*20[ ]+\?\?\?\? 660F3841 phminposuw %xmm1,%xmm3 +[ ]*20[ ]+D9 +[ ]*21[ ]+\# SSE4\.2 +[ ]*22[ ]+\?\?\?\? F20F38F1 crc32 %ecx,%ebx +[ ]*22[ ]+D9 +[ ]*23[ ]+\# AVX +[ ]*24[ ]+vzeroall +[ ]*25[ ]+\# VMX +[ ]*26[ ]+vmxoff +[ ]*27[ ]+\# SMX +[ ]*28[ ]+getsec +[ ]*29[ ]+\# Xsave +[ ]*30[ ]+xgetbv +[ ]*31[ ]+\# AES +[ ]*32[ ]+aesenc \(%ecx\),%xmm0 +[ ]*33[ ]+\# PCLMUL +[ ]*34[ ]+pclmulqdq \$8,%xmm1,%xmm0 +[ ]*35[ ]+\# AES \+ AVX +[ ]*36[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 +[ ]*37[ ]+\# FMA +[ ]*38[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 +[ ]*39[ ]+\# MOVBE +[ ]*40[ ]+movbe \(%ecx\),%ebx +[ ]*41[ ]+\# EPT +[ ]*42[ ]+invept \(%ecx\),%ebx +[ ]*43[ ]+\# RDTSCP +[ ]*44[ ]+rdtscp +[ ]*45[ ]+\# 3DNow +[ ]*46[ ]+pmulhrw %mm4,%mm3 +[ ]*47[ ]+\# 3DNow Extensions +[ ]*48[ ]+pswapd %mm4,%mm3 +[ ]*49[ ]+\# SSE4a +[ ]*50[ ]+insertq %xmm2,%xmm1 +[ ]*51[ ]+\# SVME +[ ]*52[ ]+vmload +[ ]*53[ ]+\# ABM GAS LISTING .* -[ ]*54[ ]+xstorerng +[ ]*54[ ]+lzcnt %ecx,%ebx +[ ]*55[ ]+\# SSE5 +[ ]*56[ ]+frczss %xmm2, %xmm1 +[ ]*57[ ]+\# PadLock +[ ]*58[ ]+xstorerng diff --git a/gas/testsuite/gas/i386/arch-10-4.l b/gas/testsuite/gas/i386/arch-10-4.l index c541d05..559efaf 100644 --- a/gas/testsuite/gas/i386/arch-10-4.l +++ b/gas/testsuite/gas/i386/arch-10-4.l @@ -1,7 +1,7 @@ .*: Assembler messages: -.*:20: Error: .* -.*:26: Error: .* -.*:28: Error: .* +.*:6: Error: .* +.*:8: Error: .* +.*:24: Error: .* .*:30: Error: .* .*:32: Error: .* .*:34: Error: .* @@ -15,6 +15,8 @@ .*:50: Error: .* .*:52: Error: .* .*:54: Error: .* +.*:56: Error: .* +.*:58: Error: .* GAS LISTING .* @@ -23,59 +25,63 @@ GAS LISTING .* [ ]*2[ ]+\.text [ ]*3[ ]+\# cmov feature [ ]*4[ ]+\?\?\?\? 0F44D8 cmove %eax,%ebx -[ ]*5[ ]+\# MMX -[ ]*6[ ]+\?\?\?\? 0FFCDC paddb %mm4,%mm3 -[ ]*7[ ]+\# SSE -[ ]*8[ ]+\?\?\?\? F30F58DC addss %xmm4,%xmm3 -[ ]*9[ ]+\# SSE2 -[ ]*10[ ]+\?\?\?\? F20F58DC addsd %xmm4,%xmm3 -[ ]*11[ ]+\# SSE3 -[ ]*12[ ]+\?\?\?\? 660FD0DC addsubpd %xmm4,%xmm3 -[ ]*13[ ]+\# SSSE3 -[ ]*14[ ]+\?\?\?\? 660F3801 phaddw %xmm4,%xmm3 -[ ]*14[ ]+DC -[ ]*15[ ]+\# SSE4\.1 -[ ]*16[ ]+\?\?\?\? 660F3841 phminposuw %xmm1,%xmm3 -[ ]*16[ ]+D9 -[ ]*17[ ]+\# SSE4\.2 -[ ]*18[ ]+\?\?\?\? F20F38F1 crc32 %ecx,%ebx -[ ]*18[ ]+D9 -[ ]*19[ ]+\# AVX -[ ]*20[ ]+vzeroall -[ ]*21[ ]+\# VMX -[ ]*22[ ]+\?\?\?\? 0F01C4 vmxoff -[ ]*23[ ]+\# SMX -[ ]*24[ ]+\?\?\?\? 0F37 getsec -[ ]*25[ ]+\# Xsave -[ ]*26[ ]+xgetbv -[ ]*27[ ]+\# AES -[ ]*28[ ]+aesenc \(%ecx\),%xmm0 -[ ]*29[ ]+\# PCLMUL -[ ]*30[ ]+pclmulqdq \$8,%xmm1,%xmm0 -[ ]*31[ ]+\# AES \+ AVX -[ ]*32[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*33[ ]+\# FMA -[ ]*34[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*35[ ]+\# MOVBE -[ ]*36[ ]+movbe \(%ecx\),%ebx -[ ]*37[ ]+\# EPT -[ ]*38[ ]+invept \(%ecx\),%ebx -[ ]*39[ ]+\# RDTSCP -[ ]*40[ ]+rdtscp -[ ]*41[ ]+\# 3DNow -[ ]*42[ ]+pmulhrw %mm4,%mm3 -[ ]*43[ ]+\# 3DNow Extensions -[ ]*44[ ]+pswapd %mm4,%mm3 -[ ]*45[ ]+\# SSE4a -[ ]*46[ ]+insertq %xmm2,%xmm1 -[ ]*47[ ]+\# SVME -[ ]*48[ ]+vmload -[ ]*49[ ]+\# ABM -[ ]*50[ ]+lzcnt %ecx,%ebx -[ ]*51[ ]+\# SSE5 -[ ]*52[ ]+frczss %xmm2, %xmm1 -[ ]*53[ ]+\# PadLock +[ ]*5[ ]+\# clflush +[ ]*6[ ]+clflush \(%eax\) +[ ]*7[ ]+\# SYSCALL +[ ]*8[ ]+syscall +[ ]*9[ ]+\# MMX +[ ]*10[ ]+\?\?\?\? 0FFCDC paddb %mm4,%mm3 +[ ]*11[ ]+\# SSE +[ ]*12[ ]+\?\?\?\? F30F58DC addss %xmm4,%xmm3 +[ ]*13[ ]+\# SSE2 +[ ]*14[ ]+\?\?\?\? F20F58DC addsd %xmm4,%xmm3 +[ ]*15[ ]+\# SSE3 +[ ]*16[ ]+\?\?\?\? 660FD0DC addsubpd %xmm4,%xmm3 +[ ]*17[ ]+\# SSSE3 +[ ]*18[ ]+\?\?\?\? 660F3801 phaddw %xmm4,%xmm3 +[ ]*18[ ]+DC +[ ]*19[ ]+\# SSE4\.1 +[ ]*20[ ]+\?\?\?\? 660F3841 phminposuw %xmm1,%xmm3 +[ ]*20[ ]+D9 +[ ]*21[ ]+\# SSE4\.2 +[ ]*22[ ]+\?\?\?\? F20F38F1 crc32 %ecx,%ebx +[ ]*22[ ]+D9 +[ ]*23[ ]+\# AVX +[ ]*24[ ]+vzeroall +[ ]*25[ ]+\# VMX +[ ]*26[ ]+\?\?\?\? 0F01C4 vmxoff +[ ]*27[ ]+\# SMX +[ ]*28[ ]+\?\?\?\? 0F37 getsec +[ ]*29[ ]+\# Xsave +[ ]*30[ ]+xgetbv +[ ]*31[ ]+\# AES +[ ]*32[ ]+aesenc \(%ecx\),%xmm0 +[ ]*33[ ]+\# PCLMUL +[ ]*34[ ]+pclmulqdq \$8,%xmm1,%xmm0 +[ ]*35[ ]+\# AES \+ AVX +[ ]*36[ ]+vaesenc \(%ecx\),%xmm0,%xmm2 +[ ]*37[ ]+\# FMA +[ ]*38[ ]+vfmadd132pd %xmm4,%xmm6,%xmm2 +[ ]*39[ ]+\# MOVBE +[ ]*40[ ]+movbe \(%ecx\),%ebx +[ ]*41[ ]+\# EPT +[ ]*42[ ]+invept \(%ecx\),%ebx +[ ]*43[ ]+\# RDTSCP +[ ]*44[ ]+rdtscp +[ ]*45[ ]+\# 3DNow +[ ]*46[ ]+pmulhrw %mm4,%mm3 +[ ]*47[ ]+\# 3DNow Extensions +[ ]*48[ ]+pswapd %mm4,%mm3 +[ ]*49[ ]+\# SSE4a +[ ]*50[ ]+insertq %xmm2,%xmm1 +[ ]*51[ ]+\# SVME +[ ]*52[ ]+vmload +[ ]*53[ ]+\# ABM GAS LISTING .* -[ ]*54[ ]+xstorerng +[ ]*54[ ]+lzcnt %ecx,%ebx +[ ]*55[ ]+\# SSE5 +[ ]*56[ ]+frczss %xmm2, %xmm1 +[ ]*57[ ]+\# PadLock +[ ]*58[ ]+xstorerng diff --git a/gas/testsuite/gas/i386/arch-10.d b/gas/testsuite/gas/i386/arch-10.d index 274ea08..409d8fc 100644 --- a/gas/testsuite/gas/i386/arch-10.d +++ b/gas/testsuite/gas/i386/arch-10.d @@ -1,4 +1,4 @@ -#as: -march=i686+avx+vmx+smx+xsave+aes+pclmul+fma+movbe+ept+rdtscp+sse5+3dnowa+svme+padlock +#as: -march=i686+avx+vmx+smx+xsave+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+sse5+3dnowa+svme+padlock #objdump: -dw #name: i386 arch 10 @@ -8,6 +8,8 @@ Disassembly of section .text: 0+ <.text>: [ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx +[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) +[ ]*[a-f0-9]+: 0f 05 syscall [ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 [ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 [ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 diff --git a/gas/testsuite/gas/i386/arch-10.s b/gas/testsuite/gas/i386/arch-10.s index 1aeae59..998ba2e 100644 --- a/gas/testsuite/gas/i386/arch-10.s +++ b/gas/testsuite/gas/i386/arch-10.s @@ -2,6 +2,10 @@ .text # cmov feature cmove %eax,%ebx +# clflush +clflush (%eax) +# SYSCALL +syscall # MMX paddb %mm4,%mm3 # SSE diff --git a/gas/testsuite/gas/i386/x86-64-arch-2.d b/gas/testsuite/gas/i386/x86-64-arch-2.d index cb02711..a811d76 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2.d @@ -1,4 +1,4 @@ -#as: -march=generic64+avx+vmx+smx+xsave+aes+pclmul+fma+movbe+ept+rdtscp+sse5+3dnowa+svme+padlock +#as: -march=generic64+avx+vmx+smx+xsave+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+sse5+3dnowa+svme+padlock #objdump: -dw #name: x86-64 arch 2 @@ -8,6 +8,8 @@ Disassembly of section .text: 0+ <.text>: [ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx +[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) +[ ]*[a-f0-9]+: 0f 05 syscall [ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 [ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 [ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 diff --git a/gas/testsuite/gas/i386/x86-64-arch-2.s b/gas/testsuite/gas/i386/x86-64-arch-2.s index 89e6114..e0dafea 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2.s +++ b/gas/testsuite/gas/i386/x86-64-arch-2.s @@ -2,6 +2,10 @@ .text # cmov feature cmove %eax,%ebx +# clflush +clflush (%rax) +# SYSCALL +syscall # MMX paddb %mm4,%mm3 # SSE -- cgit v1.1