diff options
Diffstat (limited to 'emulators/tme/patches/patch-bc')
-rw-r--r-- | emulators/tme/patches/patch-bc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/emulators/tme/patches/patch-bc b/emulators/tme/patches/patch-bc new file mode 100644 index 00000000000..34f3d585455 --- /dev/null +++ b/emulators/tme/patches/patch-bc @@ -0,0 +1,65 @@ +$NetBSD: patch-bc,v 1.1 2007/03/17 13:44:20 tsutsui Exp $ + +--- ic/ieee754/ieee754-ops-auto.sh.orig 2005-03-23 20:47:37.000000000 +0900 ++++ ic/ieee754/ieee754-ops-auto.sh 2007-03-14 22:00:59.000000000 +0900 +@@ -126,7 +126,7 @@ + + # generate the operations: + # +- for name in add sub mul div \ ++ for name in add cmp sub mul div \ + rem sqrt abs neg move \ + rint \ + cos acos cosh \ +@@ -144,7 +144,7 @@ + # + monadic=true + case "${name}" in +- add | sub | mul | div | rem | pow | scale) ++ add | cmp | sub | mul | div | rem | pow | scale) + monadic=false + ;; + esac +@@ -243,13 +243,14 @@ + func_softfloat="${name}" + ;; + *-add) op_builtin='+' ;; ++ *-cmp) op_builtin='-' ;; + *-sub) op_builtin='-' ;; + *-mul) op_builtin='*' ;; + *-div) op_builtin='/' ;; + *-sqrt) func_libm=sqrt ;; + partial-abs | unknown-abs) func_libm=fabs ;; + strict-neg) op0=0 ; func_softfloat=sub ; op1=src0 ;; +- partial-neg | unknown-neg) op0=0 ; op_builtin='-'; op1=src0 ;; ++ partial-neg | unknown-neg) op0=-1.0 ; op_builtin='*'; op1=src0 ;; + strict-move) func_softfloat=add ; op1=0 ;; + *-move) type="${level_stricter}-move" ; src0_buffer=false ;; + strict-rint) func_softfloat=round_to_int ;; +@@ -547,6 +548,15 @@ + # a builtin operation: + # + builtin) ++ if test ${name} = "cmp"; then ++ ++ echo " if (tme_float_is_inf(src0, TME_FLOAT_FORMAT_IEEE754_${capprecision} ) &" ++ echo " tme_float_is_inf(src1, TME_FLOAT_FORMAT_IEEE754_${capprecision}) &" ++ echo " (tme_float_is_negative(src0, TME_FLOAT_FORMAT_IEEE754_${capprecision}) ==" ++ echo " tme_float_is_negative(src1, TME_FLOAT_FORMAT_IEEE754_${capprecision})))" ++ echo " tme_ieee754_${precision}_value_builtin_set(dst, TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN, 0.0);" ++ echo " else" ++ fi; + echo " tme_ieee754_${precision}_value_builtin_set(dst, TME_FLOAT_FORMAT_IEEE754_${capprecision}_BUILTIN, ${op0} ${op_builtin} ${op1});" + ;; + +--- ic/m68k/m6888x-auto.sh.orig 2006-10-01 08:22:49.000000000 -0400 ++++ ic/m68k/m6888x-auto.sh 2006-10-01 08:22:56.000000000 -0400 +@@ -136,7 +136,7 @@ + 12) name=asin ; fpu_types=TME_M68K_FPU_M6888X ;; # fasin pp 315 + 10) name=atan ; fpu_types=TME_M68K_FPU_M6888X ;; # fatan pp 318 + 13) name=atanh ; fpu_types=TME_M68K_FPU_M6888X ;; # fatanh pp 321 +- 56) name=cmp ; name_ieee754=sub ; optype=DST_SRC ;; # fcmp pp 326 ++ 56) name=cmp ; optype=DST_SRC ;; # fcmp pp 326 + 29) name=cos ; fpu_types=TME_M68K_FPU_M6888X ;; # fcos pp 329 + 25) name=cosh ; fpu_types=TME_M68K_FPU_M6888X ;; # fcosh pp 332 + |