aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-01-12 03:34:49 +0000
committerAlan Modra <amodra@gmail.com>2001-01-12 03:34:49 +0000
commit6e0b89ee6c97bd3145b27d67b20514f907e5fefd (patch)
tree9118ab031a002b8c45044f4b86b786dd1e2e4ac1
parent0d2bcfafbfc1ede123ec9d61813745d775c5251c (diff)
downloadgdb-6e0b89ee6c97bd3145b27d67b20514f907e5fefd.zip
gdb-6e0b89ee6c97bd3145b27d67b20514f907e5fefd.tar.gz
gdb-6e0b89ee6c97bd3145b27d67b20514f907e5fefd.tar.bz2
Cure recent x86 warts.
-rw-r--r--bfd/ChangeLog5
-rwxr-xr-xbfd/configure27
-rw-r--r--bfd/configure.in3
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-i386.c32
-rw-r--r--gas/testsuite/ChangeLog11
-rw-r--r--gas/testsuite/gas/i386/i386.exp6
-rw-r--r--gas/testsuite/gas/i386/sse2.d2
-rw-r--r--gas/testsuite/gas/i386/sse2.s296
-rw-r--r--gas/testsuite/gas/i386/ssemmx2.d2
-rw-r--r--gas/testsuite/gas/i386/ssemmx2.s161
11 files changed, 287 insertions, 263 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7988d77..a142dc7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-12 Alan Modra <alan@linuxcare.com.au>
+
+ * configure.in ([bfd_elf64_x86_64_vec]): Set target64.
+ * configure: Regenerate.
+
2001-01-11 Peter Targett <peter.targett@arccores.com>
* bfd-in2.h (bfd_architecture): Add bfd_mach_arc_5,
diff --git a/bfd/configure b/bfd/configure
index 370ef0c..7092544 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -5958,7 +5958,8 @@ do
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;;
- bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf" ;;
+ bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"
+ target64=true ;;
bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;;
@@ -6176,17 +6177,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6180: checking for $ac_hdr" >&5
+echo "configure:6181: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6185 "configure"
+#line 6186 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6191: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6215,12 +6216,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6219: checking for $ac_func" >&5
+echo "configure:6220: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6224 "configure"
+#line 6225 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6243,7 +6244,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6268,7 +6269,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6272: checking for working mmap" >&5
+echo "configure:6273: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6276,7 +6277,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 6280 "configure"
+#line 6281 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6416,7 +6417,7 @@ main()
}
EOF
-if { (eval echo configure:6420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -6441,12 +6442,12 @@ fi
for ac_func in madvise mprotect
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6445: checking for $ac_func" >&5
+echo "configure:6446: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6450 "configure"
+#line 6451 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6469,7 +6470,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
diff --git a/bfd/configure.in b/bfd/configure.in
index 0c7fd42..0cdf539 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -507,7 +507,8 @@ do
bfd_elf32_hppa_vec) tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
bfd_elf32_i370_vec) tb="$tb elf32-i370.lo elf32.lo $elf" ;;
bfd_elf32_i386_vec) tb="$tb elf32-i386.lo elf32.lo $elf" ;;
- bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf" ;;
+ bfd_elf64_x86_64_vec) tb="$tb elf64-x86-64.lo elf64.lo $elf"
+ target64=true ;;
bfd_elf32_i860_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i860_little_vec) tb="$tb elf32-i860.lo elf32.lo $elf" ;;
bfd_elf32_i960_vec) tb="$tb elf32-i960.lo elf32.lo $elf" ;;
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f3b8069..e6b3a9a 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2001-01-12 Alan Modra <alan@linuxcare.com.au>
+
+ * config/tc-i386.c (md_longopts): Recognize "--64" only for ELF.
+ (md_parse_option): Always accept "--32".
+
2001-01-11 Peter Targett <peter.targett@arccores.com>
* as.h (TC_ARC): Ensure struc-symbol.h included.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index fb2384b..7cca4cf 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -4366,11 +4366,14 @@ const char *md_shortopts = "kVQ:sq";
#else
const char *md_shortopts = "q";
#endif
+
struct option md_longopts[] = {
#define OPTION_32 (OPTION_MD_BASE + 0)
{"32", no_argument, NULL, OPTION_32},
+#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
#define OPTION_64 (OPTION_MD_BASE + 1)
{"64", no_argument, NULL, OPTION_64},
+#endif
{NULL, no_argument, NULL, 0}
};
size_t md_longopts_size = sizeof (md_longopts);
@@ -4405,36 +4408,29 @@ md_parse_option (c, arg)
/* -s: On i386 Solaris, this tells the native assembler to use
.stab instead of .stab.excl. We always use .stab anyhow. */
break;
-#endif
-#ifdef OBJ_ELF
- case OPTION_32:
+
case OPTION_64:
{
const char **list, **l;
- default_arch = c == OPTION_32 ? "i386" : "x86_64";
list = bfd_target_list ();
for (l = list; *l != NULL; l++)
- {
- if (c == OPTION_32)
- {
- if (strcmp (*l, "elf32-i386") == 0)
- break;
- }
- else
- {
- if (strcmp (*l, "elf64-x86-64") == 0)
- break;
- }
- }
+ if (strcmp (*l, "elf64-x86-64") == 0)
+ {
+ default_arch = "x86_64";
+ break;
+ }
if (*l == NULL)
- as_fatal (_("No compiled in support for %d bit object file format"),
- c == OPTION_32 ? 32 : 64);
+ as_fatal (_("No compiled in support for x86_64"));
free (list);
}
break;
#endif
+ case OPTION_32:
+ default_arch = "i386";
+ break;
+
default:
return 0;
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 4f1ddd8..1d8f6c8 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2001-01-12 Alan Modra <alan@linuxcare.com.au>
+
+ * gas/i386/i386.exp (gas_64_check): Correct target string.
+ Use gas_64_check rather than target string to decided whether
+ x86_64 checks should run.
+
+ * gas/i386/sse2.s: Add a label to cure objdump "no symbols" error.
+ * gas/i386/ssemmx2.s: Likewise.
+ * gas/i386/sse2.d: Update to suit.
+ * gas/i386/ssemmx2.s: Likewise.
+
2001-01-11 Peter Targett <peter.targett@arccores.com>
* gas/arc/alias.*: Removed.
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 8449661..386323a 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -20,8 +20,9 @@ proc gas_64_check { } {
global srcdir
catch "exec $srcdir/lib/run $NM $NMFLAGS --help" nm_help
- return [regexp "targets:.*x86_64" $nm_help];
+ return [regexp "targets:.*x86-64" $nm_help];
}
+
proc gas_32_check { } {
global NM
global NMFLAGS
@@ -61,7 +62,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
}
set ASFLAGS "$old_ASFLAGS"
}
-if [istarget "x86_64-*-*"] then {
+
+if [gas_64_check] then {
global ASFLAGS
set old_ASFLAGS "$ASFLAGS"
diff --git a/gas/testsuite/gas/i386/sse2.d b/gas/testsuite/gas/i386/sse2.d
index 5ea977b..d5bcacf 100644
--- a/gas/testsuite/gas/i386/sse2.d
+++ b/gas/testsuite/gas/i386/sse2.d
@@ -6,7 +6,7 @@
Disassembly of section .text:
-0+ <.text>:
+0+ <foo>:
[ ]+0: 0f c3 00[ ]+movnti %eax,\(%eax\)
[ ]+3: 0f ae f8[ ]+sfence
[ ]+6: 0f ae e8[ ]+lfence
diff --git a/gas/testsuite/gas/i386/sse2.s b/gas/testsuite/gas/i386/sse2.s
index 96ae296..c997162 100644
--- a/gas/testsuite/gas/i386/sse2.s
+++ b/gas/testsuite/gas/i386/sse2.s
@@ -1,147 +1,149 @@
-movnti %eax, (%eax)
-sfence
-lfence
-mfence
-addpd (%ecx),%xmm0
-addpd %xmm2,%xmm1
-addsd (%ebx),%xmm2
-addsd %xmm4,%xmm3
-andnpd 0x0(%ebp),%xmm4
-andnpd %xmm6,%xmm5
-andpd (%edi),%xmm6
-andpd %xmm0,%xmm7
-cmppd $0x2,%xmm1,%xmm0
-cmppd $0x3,(%edx),%xmm1
-cmpsd $0x4,%xmm2,%xmm2
-cmpsd $0x5,(%esp,1),%xmm3
-cmppd $0x6,%xmm5,%xmm4
-cmppd $0x7,(%esi),%xmm5
-cmpsd $0x0,%xmm7,%xmm6
-cmpsd $0x1,(%eax),%xmm7
-cmpeqpd %xmm1,%xmm0
-cmpeqpd (%edx),%xmm1
-cmpeqsd %xmm2,%xmm2
-cmpeqsd (%esp,1),%xmm3
-cmpltpd %xmm5,%xmm4
-cmpltpd (%esi),%xmm5
-cmpltsd %xmm7,%xmm6
-cmpltsd (%eax),%xmm7
-cmplepd (%ecx),%xmm0
-cmplepd %xmm2,%xmm1
-cmplesd (%ebx),%xmm2
-cmplesd %xmm4,%xmm3
-cmpunordpd 0x0(%ebp),%xmm4
-cmpunordpd %xmm6,%xmm5
-cmpunordsd (%edi),%xmm6
-cmpunordsd %xmm0,%xmm7
-cmpneqpd %xmm1,%xmm0
-cmpneqpd (%edx),%xmm1
-cmpneqsd %xmm2,%xmm2
-cmpneqsd (%esp,1),%xmm3
-cmpnltpd %xmm5,%xmm4
-cmpnltpd (%esi),%xmm5
-cmpnltsd %xmm7,%xmm6
-cmpnltsd (%eax),%xmm7
-cmpnlepd (%ecx),%xmm0
-cmpnlepd %xmm2,%xmm1
-cmpnlesd (%ebx),%xmm2
-cmpnlesd %xmm4,%xmm3
-cmpordpd 0x0(%ebp),%xmm4
-cmpordpd %xmm6,%xmm5
-cmpordsd (%edi),%xmm6
-cmpordsd %xmm0,%xmm7
-comisd %xmm1,%xmm0
-comisd (%edx),%xmm1
-cvtpi2pd %mm3,%xmm2
-cvtpi2pd (%esp,1),%xmm3
-cvtsi2sd %ebp,%xmm4
-cvtsi2sd (%esi),%xmm5
-cvtpd2pi %xmm7,%mm6
-cvtpd2pi (%eax),%mm7
-cvtsd2si (%ecx),%eax
-cvtsd2si %xmm2,%ecx
-cvttpd2pi (%ebx),%mm2
-cvttpd2pi %xmm4,%mm3
-cvttsd2si 0x0(%ebp),%esp
-cvttsd2si %xmm6,%ebp
-divpd %xmm1,%xmm0
-divpd (%edx),%xmm1
-divsd %xmm3,%xmm2
-divsd (%esp,1),%xmm3
-ldmxcsr 0x0(%ebp)
-stmxcsr (%esi)
-sfence
-maxpd %xmm1,%xmm0
-maxpd (%edx),%xmm1
-maxsd %xmm3,%xmm2
-maxsd (%esp,1),%xmm3
-minpd %xmm5,%xmm4
-minpd (%esi),%xmm5
-minsd %xmm7,%xmm6
-minsd (%eax),%xmm7
-movapd %xmm1,%xmm0
-movapd %xmm2,(%ecx)
-movapd (%edx),%xmm2
-movhpd %xmm5,(%esp,1)
-movhpd (%esi),%xmm5
-movlpd %xmm0,(%edi)
-movlpd (%eax),%xmm0
-movmskpd %xmm2,%ecx
-movupd %xmm3,%xmm2
-movupd %xmm4,(%edx)
-movupd 0x0(%ebp),%xmm4
-movsd %xmm6,%xmm5
-movsd %xmm7,(%esi)
-movsd (%eax),%xmm7
-mulpd %xmm1,%xmm0
-mulpd (%edx),%xmm1
-mulsd %xmm2,%xmm2
-mulsd (%esp,1),%xmm3
-orpd %xmm5,%xmm4
-orpd (%esi),%xmm5
-shufpd $0x2,(%edi),%xmm6
-shufpd $0x3,%xmm0,%xmm7
-sqrtpd %xmm1,%xmm0
-sqrtpd (%edx),%xmm1
-sqrtsd %xmm2,%xmm2
-sqrtsd (%esp,1),%xmm3
-subpd %xmm5,%xmm4
-subpd (%esi),%xmm5
-subsd %xmm7,%xmm6
-subsd (%eax),%xmm7
-ucomisd (%ecx),%xmm0
-ucomisd %xmm2,%xmm1
-unpckhpd (%ebx),%xmm2
-unpckhpd %xmm4,%xmm3
-unpcklpd 0x0(%ebp),%xmm4
-unpcklpd %xmm6,%xmm5
-xorpd (%edi),%xmm6
-xorpd %xmm0,%xmm7
-movntpd %xmm6,(%ebx)
-xorpd %xmm0, %xmm1
-cvtdq2pd %xmm0, %xmm1
-cvtpd2dq %xmm0, %xmm1
-cvtdq2ps %xmm0, %xmm1
-cvtpd2ps %xmm0, %xmm1
-cvtps2pd %xmm0, %xmm1
-cvtps2dq %xmm0, %mm1
-cvtsd2ss %xmm0, %xmm1
-cvtss2sd %xmm0, %xmm1
-cvttpd2dq %xmm0, %xmm1
-cvttps2dq %xmm0, %xmm1
-maskmovdqu %xmm0, %xmm1
-movdqa %xmm0, %xmm1
-movdqa %xmm0, %xmm1
-movdqu %xmm0, %xmm1
-movdqu %xmm0, %xmm1
-movdq2q %mm0, %xmm1
-movq2dq %xmm0, %mm1
-pmuludq %xmm0, %xmm1
-pmuludq %xmm0, %xmm1
-pshufd $1, %xmm0, %xmm1
-pshufhw $1, %xmm0, %xmm1
-pshuflw $1, %xmm0, %xmm1
-pslldq $1, %xmm0
-psrldq $1, %xmm0
-punpckhqdq %xmm0, %xmm1
-.p2align 4
+foo:
+ movnti %eax, (%eax)
+ sfence
+ lfence
+ mfence
+ addpd (%ecx),%xmm0
+ addpd %xmm2,%xmm1
+ addsd (%ebx),%xmm2
+ addsd %xmm4,%xmm3
+ andnpd 0x0(%ebp),%xmm4
+ andnpd %xmm6,%xmm5
+ andpd (%edi),%xmm6
+ andpd %xmm0,%xmm7
+ cmppd $0x2,%xmm1,%xmm0
+ cmppd $0x3,(%edx),%xmm1
+ cmpsd $0x4,%xmm2,%xmm2
+ cmpsd $0x5,(%esp,1),%xmm3
+ cmppd $0x6,%xmm5,%xmm4
+ cmppd $0x7,(%esi),%xmm5
+ cmpsd $0x0,%xmm7,%xmm6
+ cmpsd $0x1,(%eax),%xmm7
+ cmpeqpd %xmm1,%xmm0
+ cmpeqpd (%edx),%xmm1
+ cmpeqsd %xmm2,%xmm2
+ cmpeqsd (%esp,1),%xmm3
+ cmpltpd %xmm5,%xmm4
+ cmpltpd (%esi),%xmm5
+ cmpltsd %xmm7,%xmm6
+ cmpltsd (%eax),%xmm7
+ cmplepd (%ecx),%xmm0
+ cmplepd %xmm2,%xmm1
+ cmplesd (%ebx),%xmm2
+ cmplesd %xmm4,%xmm3
+ cmpunordpd 0x0(%ebp),%xmm4
+ cmpunordpd %xmm6,%xmm5
+ cmpunordsd (%edi),%xmm6
+ cmpunordsd %xmm0,%xmm7
+ cmpneqpd %xmm1,%xmm0
+ cmpneqpd (%edx),%xmm1
+ cmpneqsd %xmm2,%xmm2
+ cmpneqsd (%esp,1),%xmm3
+ cmpnltpd %xmm5,%xmm4
+ cmpnltpd (%esi),%xmm5
+ cmpnltsd %xmm7,%xmm6
+ cmpnltsd (%eax),%xmm7
+ cmpnlepd (%ecx),%xmm0
+ cmpnlepd %xmm2,%xmm1
+ cmpnlesd (%ebx),%xmm2
+ cmpnlesd %xmm4,%xmm3
+ cmpordpd 0x0(%ebp),%xmm4
+ cmpordpd %xmm6,%xmm5
+ cmpordsd (%edi),%xmm6
+ cmpordsd %xmm0,%xmm7
+ comisd %xmm1,%xmm0
+ comisd (%edx),%xmm1
+ cvtpi2pd %mm3,%xmm2
+ cvtpi2pd (%esp,1),%xmm3
+ cvtsi2sd %ebp,%xmm4
+ cvtsi2sd (%esi),%xmm5
+ cvtpd2pi %xmm7,%mm6
+ cvtpd2pi (%eax),%mm7
+ cvtsd2si (%ecx),%eax
+ cvtsd2si %xmm2,%ecx
+ cvttpd2pi (%ebx),%mm2
+ cvttpd2pi %xmm4,%mm3
+ cvttsd2si 0x0(%ebp),%esp
+ cvttsd2si %xmm6,%ebp
+ divpd %xmm1,%xmm0
+ divpd (%edx),%xmm1
+ divsd %xmm3,%xmm2
+ divsd (%esp,1),%xmm3
+ ldmxcsr 0x0(%ebp)
+ stmxcsr (%esi)
+ sfence
+ maxpd %xmm1,%xmm0
+ maxpd (%edx),%xmm1
+ maxsd %xmm3,%xmm2
+ maxsd (%esp,1),%xmm3
+ minpd %xmm5,%xmm4
+ minpd (%esi),%xmm5
+ minsd %xmm7,%xmm6
+ minsd (%eax),%xmm7
+ movapd %xmm1,%xmm0
+ movapd %xmm2,(%ecx)
+ movapd (%edx),%xmm2
+ movhpd %xmm5,(%esp,1)
+ movhpd (%esi),%xmm5
+ movlpd %xmm0,(%edi)
+ movlpd (%eax),%xmm0
+ movmskpd %xmm2,%ecx
+ movupd %xmm3,%xmm2
+ movupd %xmm4,(%edx)
+ movupd 0x0(%ebp),%xmm4
+ movsd %xmm6,%xmm5
+ movsd %xmm7,(%esi)
+ movsd (%eax),%xmm7
+ mulpd %xmm1,%xmm0
+ mulpd (%edx),%xmm1
+ mulsd %xmm2,%xmm2
+ mulsd (%esp,1),%xmm3
+ orpd %xmm5,%xmm4
+ orpd (%esi),%xmm5
+ shufpd $0x2,(%edi),%xmm6
+ shufpd $0x3,%xmm0,%xmm7
+ sqrtpd %xmm1,%xmm0
+ sqrtpd (%edx),%xmm1
+ sqrtsd %xmm2,%xmm2
+ sqrtsd (%esp,1),%xmm3
+ subpd %xmm5,%xmm4
+ subpd (%esi),%xmm5
+ subsd %xmm7,%xmm6
+ subsd (%eax),%xmm7
+ ucomisd (%ecx),%xmm0
+ ucomisd %xmm2,%xmm1
+ unpckhpd (%ebx),%xmm2
+ unpckhpd %xmm4,%xmm3
+ unpcklpd 0x0(%ebp),%xmm4
+ unpcklpd %xmm6,%xmm5
+ xorpd (%edi),%xmm6
+ xorpd %xmm0,%xmm7
+ movntpd %xmm6,(%ebx)
+ xorpd %xmm0, %xmm1
+ cvtdq2pd %xmm0, %xmm1
+ cvtpd2dq %xmm0, %xmm1
+ cvtdq2ps %xmm0, %xmm1
+ cvtpd2ps %xmm0, %xmm1
+ cvtps2pd %xmm0, %xmm1
+ cvtps2dq %xmm0, %mm1
+ cvtsd2ss %xmm0, %xmm1
+ cvtss2sd %xmm0, %xmm1
+ cvttpd2dq %xmm0, %xmm1
+ cvttps2dq %xmm0, %xmm1
+ maskmovdqu %xmm0, %xmm1
+ movdqa %xmm0, %xmm1
+ movdqa %xmm0, %xmm1
+ movdqu %xmm0, %xmm1
+ movdqu %xmm0, %xmm1
+ movdq2q %mm0, %xmm1
+ movq2dq %xmm0, %mm1
+ pmuludq %xmm0, %xmm1
+ pmuludq %xmm0, %xmm1
+ pshufd $1, %xmm0, %xmm1
+ pshufhw $1, %xmm0, %xmm1
+ pshuflw $1, %xmm0, %xmm1
+ pslldq $1, %xmm0
+ psrldq $1, %xmm0
+ punpckhqdq %xmm0, %xmm1
+
+ .p2align 4
diff --git a/gas/testsuite/gas/i386/ssemmx2.d b/gas/testsuite/gas/i386/ssemmx2.d
index 1dd7ef5..4891816 100644
--- a/gas/testsuite/gas/i386/ssemmx2.d
+++ b/gas/testsuite/gas/i386/ssemmx2.d
@@ -6,7 +6,7 @@
Disassembly of section .text:
-0+ <.text>:
+0+ <foo>:
[ ]+0: 66 0f e0 c1[ ]+pavgb[ ]+%xmm1,%xmm0
[ ]+4: 66 0f e0 0a[ ]+pavgb[ ]+\(%edx\),%xmm1
[ ]+8: 66 0f e3 d3[ ]+pavgw[ ]+%xmm3,%xmm2
diff --git a/gas/testsuite/gas/i386/ssemmx2.s b/gas/testsuite/gas/i386/ssemmx2.s
index 5e67fc9..bd3d5ea 100644
--- a/gas/testsuite/gas/i386/ssemmx2.s
+++ b/gas/testsuite/gas/i386/ssemmx2.s
@@ -1,80 +1,81 @@
-.code32
-pavgb %xmm1,%xmm0
-pavgb (%edx),%xmm1
-pavgw %xmm3,%xmm2
-pavgw (%esp,1),%xmm3
-pextrw $0x0,%xmm1,%eax
-pinsrw $0x1,(%ecx),%xmm1
-pinsrw $0x2,%edx,%xmm2
-pmaxsw %xmm1,%xmm0
-pmaxsw (%edx),%xmm1
-pmaxub %xmm2,%xmm2
-pmaxub (%esp,1),%xmm3
-pminsw %xmm5,%xmm4
-pminsw (%esi),%xmm5
-pminub %xmm7,%xmm6
-pminub (%eax),%xmm7
-pmovmskb %xmm5,%eax
-pmulhuw %xmm5,%xmm4
-pmulhuw (%esi),%xmm5
-psadbw %xmm7,%xmm6
-psadbw (%eax),%xmm7
-pshufd $0x1,%xmm2,%xmm3
-pshufd $0x4,0x0(%ebp),%xmm6
-pshufhw $0x1,%xmm2,%xmm3
-pshufhw $0x4,0x0(%ebp),%xmm6
-pshuflw $0x1,%xmm2,%xmm3
-pshuflw $0x4,0x0(%ebp),%xmm6
-movntq %xmm2,(%eax)
-punpcklbw 0x90909090(%eax),%xmm2
-punpcklwd 0x90909090(%eax),%xmm2
-punpckldq 0x90909090(%eax),%xmm2
-packsswb 0x90909090(%eax),%xmm2
-pcmpgtb 0x90909090(%eax),%xmm2
-pcmpgtw 0x90909090(%eax),%xmm2
-pcmpgtd 0x90909090(%eax),%xmm2
-packuswb 0x90909090(%eax),%xmm2
-punpckhbw 0x90909090(%eax),%xmm2
-punpckhwd 0x90909090(%eax),%xmm2
-punpckhdq 0x90909090(%eax),%xmm2
-packssdw 0x90909090(%eax),%xmm2
-movd 0x90909090(%eax),%xmm2
-movq 0x90909090(%eax),%xmm2
-psrlw $0x90,%xmm0
-psrld $0x90,%xmm0
-psrlq $0x90,%xmm0
-pcmpeqb 0x90909090(%eax),%xmm2
-pcmpeqw 0x90909090(%eax),%xmm2
-pcmpeqd 0x90909090(%eax),%xmm2
-movd %xmm2,0x90909090(%eax)
-movq %xmm2,0x90909090(%eax)
-psrlw 0x90909090(%eax),%xmm2
-psrld 0x90909090(%eax),%xmm2
-psrlq 0x90909090(%eax),%xmm2
-pmullw 0x90909090(%eax),%xmm2
-psubusb 0x90909090(%eax),%xmm2
-psubusw 0x90909090(%eax),%xmm2
-pand 0x90909090(%eax),%xmm2
-paddusb 0x90909090(%eax),%xmm2
-paddusw 0x90909090(%eax),%xmm2
-pandn 0x90909090(%eax),%xmm2
-psraw 0x90909090(%eax),%xmm2
-psrad 0x90909090(%eax),%xmm2
-pmulhw 0x90909090(%eax),%xmm2
-psubsb 0x90909090(%eax),%xmm2
-psubsw 0x90909090(%eax),%xmm2
-por 0x90909090(%eax),%xmm2
-paddsb 0x90909090(%eax),%xmm2
-paddsw 0x90909090(%eax),%xmm2
-pxor 0x90909090(%eax),%xmm2
-psllw 0x90909090(%eax),%xmm2
-pslld 0x90909090(%eax),%xmm2
-psllq 0x90909090(%eax),%xmm2
-pmaddwd 0x90909090(%eax),%xmm2
-psubb 0x90909090(%eax),%xmm2
-psubw 0x90909090(%eax),%xmm2
-psubd 0x90909090(%eax),%xmm2
-paddb 0x90909090(%eax),%xmm2
-paddw 0x90909090(%eax),%xmm2
-paddd 0x90909090(%eax),%xmm2
-.p2align 4
+ .code32
+foo:
+ pavgb %xmm1,%xmm0
+ pavgb (%edx),%xmm1
+ pavgw %xmm3,%xmm2
+ pavgw (%esp,1),%xmm3
+ pextrw $0x0,%xmm1,%eax
+ pinsrw $0x1,(%ecx),%xmm1
+ pinsrw $0x2,%edx,%xmm2
+ pmaxsw %xmm1,%xmm0
+ pmaxsw (%edx),%xmm1
+ pmaxub %xmm2,%xmm2
+ pmaxub (%esp,1),%xmm3
+ pminsw %xmm5,%xmm4
+ pminsw (%esi),%xmm5
+ pminub %xmm7,%xmm6
+ pminub (%eax),%xmm7
+ pmovmskb %xmm5,%eax
+ pmulhuw %xmm5,%xmm4
+ pmulhuw (%esi),%xmm5
+ psadbw %xmm7,%xmm6
+ psadbw (%eax),%xmm7
+ pshufd $0x1,%xmm2,%xmm3
+ pshufd $0x4,0x0(%ebp),%xmm6
+ pshufhw $0x1,%xmm2,%xmm3
+ pshufhw $0x4,0x0(%ebp),%xmm6
+ pshuflw $0x1,%xmm2,%xmm3
+ pshuflw $0x4,0x0(%ebp),%xmm6
+ movntq %xmm2,(%eax)
+ punpcklbw 0x90909090(%eax),%xmm2
+ punpcklwd 0x90909090(%eax),%xmm2
+ punpckldq 0x90909090(%eax),%xmm2
+ packsswb 0x90909090(%eax),%xmm2
+ pcmpgtb 0x90909090(%eax),%xmm2
+ pcmpgtw 0x90909090(%eax),%xmm2
+ pcmpgtd 0x90909090(%eax),%xmm2
+ packuswb 0x90909090(%eax),%xmm2
+ punpckhbw 0x90909090(%eax),%xmm2
+ punpckhwd 0x90909090(%eax),%xmm2
+ punpckhdq 0x90909090(%eax),%xmm2
+ packssdw 0x90909090(%eax),%xmm2
+ movd 0x90909090(%eax),%xmm2
+ movq 0x90909090(%eax),%xmm2
+ psrlw $0x90,%xmm0
+ psrld $0x90,%xmm0
+ psrlq $0x90,%xmm0
+ pcmpeqb 0x90909090(%eax),%xmm2
+ pcmpeqw 0x90909090(%eax),%xmm2
+ pcmpeqd 0x90909090(%eax),%xmm2
+ movd %xmm2,0x90909090(%eax)
+ movq %xmm2,0x90909090(%eax)
+ psrlw 0x90909090(%eax),%xmm2
+ psrld 0x90909090(%eax),%xmm2
+ psrlq 0x90909090(%eax),%xmm2
+ pmullw 0x90909090(%eax),%xmm2
+ psubusb 0x90909090(%eax),%xmm2
+ psubusw 0x90909090(%eax),%xmm2
+ pand 0x90909090(%eax),%xmm2
+ paddusb 0x90909090(%eax),%xmm2
+ paddusw 0x90909090(%eax),%xmm2
+ pandn 0x90909090(%eax),%xmm2
+ psraw 0x90909090(%eax),%xmm2
+ psrad 0x90909090(%eax),%xmm2
+ pmulhw 0x90909090(%eax),%xmm2
+ psubsb 0x90909090(%eax),%xmm2
+ psubsw 0x90909090(%eax),%xmm2
+ por 0x90909090(%eax),%xmm2
+ paddsb 0x90909090(%eax),%xmm2
+ paddsw 0x90909090(%eax),%xmm2
+ pxor 0x90909090(%eax),%xmm2
+ psllw 0x90909090(%eax),%xmm2
+ pslld 0x90909090(%eax),%xmm2
+ psllq 0x90909090(%eax),%xmm2
+ pmaddwd 0x90909090(%eax),%xmm2
+ psubb 0x90909090(%eax),%xmm2
+ psubw 0x90909090(%eax),%xmm2
+ psubd 0x90909090(%eax),%xmm2
+ paddb 0x90909090(%eax),%xmm2
+ paddw 0x90909090(%eax),%xmm2
+ paddd 0x90909090(%eax),%xmm2
+ .p2align 4