aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2006-02-24 18:35:28 +0000
committerMike Stump <mrs@apple.com>2006-02-24 18:35:28 +0000
commit984935c35ab96a9572a5668e3bf9a7f4b856966e (patch)
tree0d0eeed929abd3e83be8b3df183eaf2b97310ca5 /gcc/testsuite
parent1ffee3671dd3934c08d0fab843b8f985c543b8dd (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-ppc7
-rw-r--r--gcc/testsuite/g++.dg/asm-block-13.C41
-rw-r--r--gcc/testsuite/g++.dg/asm-block-47.C9
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-13.c41
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