summaryrefslogtreecommitdiff
path: root/src/fenv/sh/fenv.s
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2016-01-20 02:07:59 +0000
committerRich Felker <dalias@aerifal.cx>2016-01-20 02:07:59 +0000
commitaf21a82ccc8687aa16e85def7db95efeae4cf72e (patch)
tree6b34bd5b507fe4076ce3c3f4556cad3d860a2a95 /src/fenv/sh/fenv.s
parent4b9a08f29303661e9680fc1ee1569daa25df7d50 (diff)
downloadmusl-af21a82ccc8687aa16e85def7db95efeae4cf72e.tar.gz
switch arm, sh, and mips fenv asm from .sub system to .S files
Diffstat (limited to 'src/fenv/sh/fenv.s')
-rw-r--r--src/fenv/sh/fenv.s74
1 files changed, 0 insertions, 74 deletions
diff --git a/src/fenv/sh/fenv.s b/src/fenv/sh/fenv.s
deleted file mode 100644
index 7f5c6277..00000000
--- a/src/fenv/sh/fenv.s
+++ /dev/null
@@ -1,74 +0,0 @@
-.global fegetround
-.type fegetround, @function
-fegetround:
- sts fpscr, r0
- rts
- and #3, r0
-
-.global __fesetround
-.type __fesetround, @function
-__fesetround:
- sts fpscr, r0
- or r4, r0
- lds r0, fpscr
- rts
- mov #0, r0
-
-.global fetestexcept
-.type fetestexcept, @function
-fetestexcept:
- sts fpscr, r0
- and r4, r0
- rts
- and #0x7c, r0
-
-.global feclearexcept
-.type feclearexcept, @function
-feclearexcept:
- mov r4, r0
- and #0x7c, r0
- not r0, r4
- sts fpscr, r0
- and r4, r0
- lds r0, fpscr
- rts
- mov #0, r0
-
-.global feraiseexcept
-.type feraiseexcept, @function
-feraiseexcept:
- mov r4, r0
- and #0x7c, r0
- sts fpscr, r4
- or r4, r0
- lds r0, fpscr
- rts
- mov #0, r0
-
-.global fegetenv
-.type fegetenv, @function
-fegetenv:
- sts fpscr, r0
- mov.l r0, @r4
- rts
- mov #0, r0
-
-.global fesetenv
-.type fesetenv, @function
-fesetenv:
- mov r4, r0
- cmp/eq #-1, r0
- bf 1f
-
- ! the default environment is complicated by the fact that we need to
- ! preserve the current precision bit, which we do not know a priori
- sts fpscr, r0
- mov #8, r1
- swap.w r1, r1
- bra 2f
- and r1, r0
-
-1: mov.l @r4, r0 ! non-default environment
-2: lds r0, fpscr
- rts
- mov #0, r0