aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-10-23 21:53:39 +0000
committerdos-reis <gdr@axiomatics.org>2011-10-23 21:53:39 +0000
commit6a7022d0c0be54f3411ee07663765f60691c5f0c (patch)
tree907995b463cb3cc2a59ec2b67634ec536c3b0986 /src/interp
parent776d3d65f420e017b7cc45549e845cbf28920291 (diff)
downloadopen-axiom-6a7022d0c0be54f3411ee07663765f60691c5f0c.tar.gz
* interp/g-opt.boot ($VMsideEffectFreeOperators): Include %fdecode.
* interp/lisp-backend.boot: Expand it. * algebra/sf.spad.pamphlet (DoubleFloat): Remove %fmanexpr import. Use %fdecode to access Lisp-level double-float decoding. [mantissa]: Rewrite. [exponent]: Likewise. [negative?]: Likewise. [positive?]: Likewise. [manexp]: Likewise. * algebra/view2D.spad.pamphlet (TwoDimensionalViewport): Tidy.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/g-opt.boot2
-rw-r--r--src/interp/lisp-backend.boot4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index e2a1e7c9..f044b7a2 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -431,7 +431,7 @@ $VMsideEffectFreeOperators ==
%idec %irem %iquo %idivide %idec %irandom
%feq %flt %fle %fgt %fge %fmul %fadd %fsub %fexp %fmin %fmax %float?
%fpowi %fdiv %fneg %i2f %fminval %fmaxval %fbase %fprec %ftrunc
- %fsqrt %fpowf %flog %flog2 %flog10 %fmanexp %fNaN?
+ %fsqrt %fpowf %flog %flog2 %flog10 %fmanexp %fNaN? %fdecode
%fsin %fcos %ftan %fcot
%fasin %facos %fatan %facot
%fsinh %fcosh %ftanh
diff --git a/src/interp/lisp-backend.boot b/src/interp/lisp-backend.boot
index 89972184..17efec64 100644
--- a/src/interp/lisp-backend.boot
+++ b/src/interp/lisp-backend.boot
@@ -322,6 +322,9 @@ expandFatanh ['%fatanh,x] ==
expandFacoth ['%facoth,x] ==
['C_-TO_-R,['ACOTH,expandToVMForm x]]
+expandFdecode ['%fdecode,x] ==
+ ['MULTIPLE_-VALUE_-CALL,['FUNCTION,'LIST],
+ ['INTEGER_-DECODE_-FLOAT,expandToVMForm x]]
-- String operations
@@ -655,6 +658,7 @@ for x in [
['%idivide, :function expandIdivide],
['%i2f, :function expandI2f],
+ ['%fdecode, :function expandFdecode],
['%fbase, :function expandFbase],
['%feq, :function expandFeq],
['%fgt, :function expandFgt],