diff options
author | Mike Stump <mrs@apple.com> | 2006-02-24 18:35:28 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2006-02-24 18:35:28 +0000 |
commit | 984935c35ab96a9572a5668e3bf9a7f4b856966e (patch) | |
tree | 0d0eeed929abd3e83be8b3df183eaf2b97310ca5 /gcc/testsuite | |
parent | 1ffee3671dd3934c08d0fab843b8f985c543b8dd (diff) |
Radar 4298040
* config/i386/i386.h (TARGET_CW_OP_CONSTRAINT): Improve fdivr,
fiadd, ficom, ficomp, fidiv, fidivr fild, fimul, fist, fistp,
fisttp, fisub, fisubr, fmul, idiv, inc, lds, les, lfs, lgs, lss.
Remove fildl, fildll, fistpll, fisttpll.
* config/i386/i386.c (x86_canonicalize_operands): Add DImode
support. Allow mov to be used on floats.
* c-common.c (m1, m2, m4, m2m4): Remove.
(m64, m16m32, m16m32m64, r16r32, r16r32r64): Add.
(rm64, rm8rm16rm32rm64): Add.
(print_cw_asm_operand, case INDIRECT_REF): Handle all
INDIRECT_REFs uniformly.
* g++.dg/asm-block-47.C: Add.
* g++.dg/asm-block-13.C: Update.
* gcc.apple/asm-block-13.c: Update.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@111422 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog.apple-ppc | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/asm-block-13.C | 41 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/asm-block-47.C | 9 | ||||
-rw-r--r-- | gcc/testsuite/gcc.apple/asm-block-13.c | 41 |
4 files changed, 66 insertions, 32 deletions
diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index 7a443216357..0cbb929132d 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,3 +1,10 @@ +2006-02-24 Mike Stump <mrs@apple.com> + + Radar 4298040 + * g++.dg/asm-block-47.C: Add. + * g++.dg/asm-block-13.C: Update. + * gcc.apple/asm-block-13.c: Update. + 2006-02-17 Stuart Hastings <stuart@apple.com> * gcc.dg/4176531.c: Fix target. diff --git a/gcc/testsuite/g++.dg/asm-block-13.C b/gcc/testsuite/g++.dg/asm-block-13.C index 096cc732430..42f56ab6368 100644 --- a/gcc/testsuite/g++.dg/asm-block-13.C +++ b/gcc/testsuite/g++.dg/asm-block-13.C @@ -3,7 +3,7 @@ /* { dg-options { -fasm-blocks -msse3 } } */ /* Radar 4259442 */ -char fooc; short foos; int fooi; float foof; double food; long double foold; +char fooc; short foos; int fooi; long long fooll; float foof; double food; long double foold; asm void bar() { fool: adc eax, 1 adc fool, 1 @@ -188,7 +188,8 @@ asm void bar() { fool: fdiv food fdivp st(2), st(0) fdivr st(0), st(2) - fdivr fool + fdivr foof + fdivr food fdivrp st(2), st(0) ffree st(2) fiadd foos @@ -199,21 +200,21 @@ asm void bar() { fool: ficomp fooi fidiv foos fidiv fooi - fidivl fool fidivr foos fidivr fooi - fidivrl fool - fild fool - fildl fool - fildll fool + fild foos + fild fooi + fild fooll fimul foos fimul fooi - fist fool - fistp fool - fistpll fool + fist foos + fist fooi + fistp foos + fistp fooi + fistp fooll fisttp foos fisttp fooi - fisttpll fool + fisttp fooll fisub foos fisub fooi fisubr foos @@ -227,8 +228,8 @@ asm void bar() { fool: fldt fool fmul st(2), st(0) fmul st(0), st(2) - fmul foos - fmul fooi + fmul foof + fmul food fmulp st(2), st(0) fnsave fool fnstcw fool @@ -271,9 +272,17 @@ asm void bar() { fool: hsubpd xmm0, fool hsubps xmm0, xmm0 hsubps xmm0, fool + idiv ah + idiv fooc + idiv ax + idiv foos idiv eax idiv fooi in eax, 1 + inc ah + inc fooc + inc ax + inc foos inc eax inc fooi int 1 @@ -318,10 +327,10 @@ asm void bar() { fool: ldmxcsr fool lds eax, fooi lea eax, fool - les eax, fool - lfs eax, fool + les eax, fooi + lfs eax, fooi lgdt fool - lgs eax, fool + lgs eax, fooi lidt fool lldt eax lldt fool diff --git a/gcc/testsuite/g++.dg/asm-block-47.C b/gcc/testsuite/g++.dg/asm-block-47.C new file mode 100644 index 00000000000..64d35e480c5 --- /dev/null +++ b/gcc/testsuite/g++.dg/asm-block-47.C @@ -0,0 +1,9 @@ +/* APPLE LOCAL file CW asm blocks */ +/* { dg-do assemble { target i?86*-*-darwin* } } */ +/* { dg-options { -fasm-blocks -msse3 } } */ +/* Radar 4298040 */ + +int foo(float &c) { + asm mov ecx, c + asm mov c, ecx +} diff --git a/gcc/testsuite/gcc.apple/asm-block-13.c b/gcc/testsuite/gcc.apple/asm-block-13.c index 096cc732430..42f56ab6368 100644 --- a/gcc/testsuite/gcc.apple/asm-block-13.c +++ b/gcc/testsuite/gcc.apple/asm-block-13.c @@ -3,7 +3,7 @@ /* { dg-options { -fasm-blocks -msse3 } } */ /* Radar 4259442 */ -char fooc; short foos; int fooi; float foof; double food; long double foold; +char fooc; short foos; int fooi; long long fooll; float foof; double food; long double foold; asm void bar() { fool: adc eax, 1 adc fool, 1 @@ -188,7 +188,8 @@ asm void bar() { fool: fdiv food fdivp st(2), st(0) fdivr st(0), st(2) - fdivr fool + fdivr foof + fdivr food fdivrp st(2), st(0) ffree st(2) fiadd foos @@ -199,21 +200,21 @@ asm void bar() { fool: ficomp fooi fidiv foos fidiv fooi - fidivl fool fidivr foos fidivr fooi - fidivrl fool - fild fool - fildl fool - fildll fool + fild foos + fild fooi + fild fooll fimul foos fimul fooi - fist fool - fistp fool - fistpll fool + fist foos + fist fooi + fistp foos + fistp fooi + fistp fooll fisttp foos fisttp fooi - fisttpll fool + fisttp fooll fisub foos fisub fooi fisubr foos @@ -227,8 +228,8 @@ asm void bar() { fool: fldt fool fmul st(2), st(0) fmul st(0), st(2) - fmul foos - fmul fooi + fmul foof + fmul food fmulp st(2), st(0) fnsave fool fnstcw fool @@ -271,9 +272,17 @@ asm void bar() { fool: hsubpd xmm0, fool hsubps xmm0, xmm0 hsubps xmm0, fool + idiv ah + idiv fooc + idiv ax + idiv foos idiv eax idiv fooi in eax, 1 + inc ah + inc fooc + inc ax + inc foos inc eax inc fooi int 1 @@ -318,10 +327,10 @@ asm void bar() { fool: ldmxcsr fool lds eax, fooi lea eax, fool - les eax, fool - lfs eax, fool + les eax, fooi + lfs eax, fooi lgdt fool - lgs eax, fool + lgs eax, fooi lidt fool lldt eax lldt fool |