Cure recent x86 warts.
This commit is contained in:
parent
0d2bcfafbf
commit
6e0b89ee6c
11 changed files with 287 additions and 263 deletions
|
@ -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,
|
||||
|
|
27
bfd/configure
vendored
27
bfd/configure
vendored
|
@ -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
|
||||
|
|
|
@ -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" ;;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue