aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20001205-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20001205-1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20001205-1.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20001205-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20001205-1.c
new file mode 100644
index 000000000..d25d2f0f1
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20001205-1.c
@@ -0,0 +1,23 @@
+/* { dg-do assemble } */
+
+static inline unsigned long rdfpcr(void)
+{
+ unsigned long tmp, ret;
+ __asm__ ("" : "=r"(tmp), "=r"(ret));
+ return ret;
+}
+
+static inline unsigned long
+swcr_update_status(unsigned long swcr, unsigned long fpcr)
+{
+ swcr &= ~0x7e0000ul;
+ swcr |= (fpcr >> 3) & 0x7e0000ul;
+ return swcr;
+}
+
+unsigned long osf_getsysinfo(unsigned long flags)
+{
+ unsigned long w;
+ w = swcr_update_status(flags, rdfpcr());
+ return w;
+}