summaryrefslogtreecommitdiff
path: root/sparc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sparc.c')
-rw-r--r--sparc.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/sparc.c b/sparc.c
index e5f7985e19..fe9dd684f4 100644
--- a/sparc.c
+++ b/sparc.c
@@ -7,16 +7,26 @@
window of the process executing the instruction will not be flushed
correctly.
- See http://bugs.ruby-lang.org/issues/5244 for discussion.
+ See https://bugs.ruby-lang.org/issues/5244 for discussion.
*********************************************************************/
-void rb_sparc_flush_register_windows(void)
+void
+rb_sparc_flush_register_windows(void)
{
- asm
+/*
+ * gcc doesn't provide "asm" keyword if -ansi and the various -std options
+ * are given.
+ * https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
+ */
+#ifndef __GNUC__
+#define __asm__ asm
+#endif
+
+ __asm__
#ifdef __GNUC__
__volatile__
#endif
-/* This condition should be in sync with one in configure.in */
+/* This condition should be in sync with one in configure.ac */
#if defined(__sparcv9) || defined(__sparc_v9__) || defined(__arch64__)
# ifdef __GNUC__
("flushw" : : : "%o7")