aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2005-11-04 22:07:10 +0000
committerMike Stump <mrs@apple.com>2005-11-04 22:07:10 +0000
commit8bfc5f69462aee2606324dd2a88a4578473ed664 (patch)
tree3afdf94eda8203f1a2e9042c4b10658f92d874cf
parent65c80992baf20af94bd3a69840996bb11fe63228 (diff)
4319887 MS asm: call to named function fails
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@106508 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/config/i386/i386.h2
-rw-r--r--gcc/testsuite/g++.dg/asm-block-32.C13
-rw-r--r--gcc/testsuite/gcc.apple/asm-block-32.c13
3 files changed, 28 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index d667e5924c8..ad536b4632a 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -3392,6 +3392,8 @@ extern tree x86_canonicalize_operands (const char **, tree, void *);
{ "xorpd", 2, "xm"}, \
{ "xorps", 1, "+x"}, \
{ "xorps", 2, "xm"},
+
+#define CW_FUNCTION_MODIFIER "P"
/* APPLE LOCAL end CW asm blocks */
/*
diff --git a/gcc/testsuite/g++.dg/asm-block-32.C b/gcc/testsuite/g++.dg/asm-block-32.C
new file mode 100644
index 00000000000..c2bb049c1be
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asm-block-32.C
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target i?86*-*-darwin* } } */
+/* { dg-options { -fasm-blocks -msse3 } } */
+/* Radar 4319887 */
+
+void bar();
+
+void foo () {
+ asm {
+ call bar
+ call foo
+ }
+}
diff --git a/gcc/testsuite/gcc.apple/asm-block-32.c b/gcc/testsuite/gcc.apple/asm-block-32.c
new file mode 100644
index 00000000000..c2bb049c1be
--- /dev/null
+++ b/gcc/testsuite/gcc.apple/asm-block-32.c
@@ -0,0 +1,13 @@
+/* APPLE LOCAL file CW asm blocks */
+/* { dg-do assemble { target i?86*-*-darwin* } } */
+/* { dg-options { -fasm-blocks -msse3 } } */
+/* Radar 4319887 */
+
+void bar();
+
+void foo () {
+ asm {
+ call bar
+ call foo
+ }
+}