浏览代码

fix sh fesetround failure to clear old mode

the sh version of fesetround or'd the new rounding mode onto the
control register without clearing the old rounding mode bits, making
changes sticky. this was the root cause of multiple test failures.
Rich Felker 4 年之前
父节点
当前提交
043c6e31d9
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      src/fenv/sh/fenv.S

+ 2 - 0
src/fenv/sh/fenv.S

@@ -12,6 +12,8 @@ fegetround:
 .type   __fesetround, @function
 __fesetround:
 	sts fpscr, r0
+	mov #-4, r1
+	and r1, r0
 	or  r4, r0
 	lds r0, fpscr
 	rts