You need to sign in or sign up before continuing.
- Jul 25, 2007
-
-
rtoy authored
it's really a 32-bit address.
-
- Jul 06, 2007
-
-
cshapiro authored
-
- Jun 27, 2007
-
-
rtoy authored
o Add INHIBIT-WARNINGS for the core double-double routines to get rid of warnings about boxing numbers. I'm pretty sure the routines are all doing what they're supposed to do.
-
- Jun 21, 2007
-
-
rtoy authored
-
- Jun 20, 2007
-
-
rtoy authored
(nonexistent) block.
-
- Jun 11, 2007
-
-
rtoy authored
o Handle signed-zeroes for addition, subtraction, and multiplication of double-double floats. That is, return the correct signed zero for the result. o Try to handle overflow in addition, multiplication, and division by returning infinity, if the overflow or divide-by-zero trap is disabled. This is done by looking to see what the corresponding double-float operation would return. This probably needs more work. code/irrat-dd.lisp: o Remove the careful-mul stuff from dd-complex-atanh since we handle signed zeroes better now during double-double multiplication.
-
- May 29, 2007
- May 26, 2007
-
-
rtoy authored
-
- May 09, 2007
-
-
rtoy authored
o Add vops to do fused multiply-add and fused multiply-subtract. (Only double-float supported.) o Add defknown's for these translations. compiler/float-tran.lisp: o Used fused multiply-subtract for two-prod and two-sqr instead of the split function.
-
rtoy authored
Fix that and fix the printer.
-
- Apr 20, 2007
-
-
rtoy authored
COMPLEX-DOUBLE-FLOAT-VALUE vops. This reduces the number of moves needed.
-
- Apr 19, 2007
-
-
rtoy authored
COMPLEX-DOUBLE-FLOAT-VALUE vops. This reduces the number of moves needed. o Fix typo.
-
- Apr 14, 2007
-
-
rtoy authored
to be ok now. o Allow descriptor arg for COMPLEX-DOUBLE-DOUBLE-FLOAT-VALUE. This can significanlty reduce the number of loads from memory.
-
- Apr 12, 2007
-
-
rtoy authored
instruction instead of the STDF instruction. (How could this have worked?)
-
rtoy authored
rid of quite a few uneeded loads from memory because we'd load the whole complex double-double into registers and select just the real or imaginary part. Now we just load the two double-floats we want.
-
rtoy authored
rid of quite a few uneeded loads from memory because we'd the whole complex double-double into registers and select just the real or imaginary part. Now we just load the 2 double-floats we want.
-
rtoy authored
o Was not use the FP arg for the stack when storing the arg to the stack. o Was storing the wrong element to the stack (real-hi instead of real-lo).
-
- Mar 31, 2007
-
-
rtoy authored
o Turn off :load-if for the real arg because the generator doesn't handle the case if the real arg is on the stack. o Enable :load-if for the result because the code (already) handled it. o The wrong TN was being used for the imaginary part of the real part. o The wrong TNs were being used for the arg registers. Use the right TN values.
-
- Mar 30, 2007
-
-
rtoy authored
-
- Mar 28, 2007
- Mar 27, 2007
- Mar 26, 2007
-
-
rtoy authored
MAKE/DOUBLE-DOUBLE-FLOAT, so turn it off. Turn it off for MAKE-COMPLEX-DOUBLE-DOUBLE-FLOAT and COMPLEX-DOUBLE-DOUBLE-FLOAT-VALUE too, just in case.
-
- Mar 20, 2007
-
-
rtoy authored
exception. This was happening when the faulting FP instruction was in the delay slot of a branch. The PC was incremented to the branch target, and hence had the wrong information. The FPQ structure has the right information. code/sparc-svr4-vm.lisp: o Add FPQ structure so we can access the information about the faulting FP instruction. compiler/sparc/float.lisp: o Extract the correct information about the faulting FP instruction instead of from the PC.
-
- Mar 05, 2007
-
-
rtoy authored
Simple tests with rest args and some dynamic-extent closures indicates that this work. Compiling CMUCL with dynamic-extent enabled appears to work as well. I conclude that the implementation here is probably correct. (Yes, I know dynamic-extent is currently disabled, but let's make ppc complete.) compiler/ppc/alloc.lisp: o Implement the vops %DYNAMIC-EXTENT-START and %DYNAMIC-EXTENT-END. o Update the LIST-OR-LIST*, MAKE-CLOSURE, and FIXED-ALLOC vops to support dynamic-extent, by passing ALLOCATION and WITH-FIXED-ALLOCATION macros the extra :STACK-P arg. compiler/ppc/call.lisp: o Update LISTIFY-REST-ARGS vop to support dynamic-extent, by passing the ALLOCATION macro the extra :STACK-P arg. compiler/ppc/macros.lisp: o Update the ALLOCATION macro to support the :STACK-P arg.
-
- Mar 03, 2007
-
-
rtoy authored
o Implement stack clearing stuff for ppc. compiler/ppc/call.lisp: o Implement stack clearing for xep-allocate-frame and allocate-frame, mostly cargo-culting the sparc version.
-
- Feb 03, 2007
-
-
rtoy authored
(defun f (x y) (declare (fixnum x y)) (expt x y)) caused an error because we weren't handling member types correctly.
-
- Jan 23, 2007
-
-
rtoy authored
type of: (defun foo3 (x y) (declare (type (double-float (0d0) 1d0) x) (type (double-float (0d0)) y)) (expt x y)) to be (double-float 0d0 1d0), i.e, including -0.0, but that's not possible. With this fix, the result type is (or (member 0d0) (double-float (0d0) 1d0)), which is better.
-
- Dec 24, 2006
-
-
rtoy authored
branches. compiler/generic/vm-tran.lisp: o On sparc and ppc, make the abs deftransform give up for 32-bit integers, to give the VOP a chance. compiler/ppc/arith.lisp: o Add vop for abs for (signed-byte 32).
-
- Dec 02, 2006
-
-
rtoy authored
o Need to clear out the individual invalid operation bits when clearing the invalid exception bit. code/exports.lisp: compiler/ppc/parms.lisp: o Export FLOAT-INVALID-OP-1-BYTE. (Needs a better name.)
-
- Nov 30, 2006
- Nov 16, 2006
-
-
rtoy authored
-
rtoy authored
o Pass the modes to GET-FP-OPERANDS compiler/ppc/float.lisp: o If the destination register is the same as one of the source registers, an overflow or underflow exception will have replaced the source register with the result. In that case, replace the source value with NIL to indicate we don't know. (We could recompute the source from the result, but there would be a round-off error.)
-
- Nov 14, 2006
-
-
rtoy authored
during arithmetic errors.
-
rtoy authored
code/float-trap.lisp: o Set FP modes now. o Clear out sticky bits in SIGFPE handler code/ppc-vm.lisp: o Add (setf sigcontext-floating-point-modes) to set the FP mode. compiler/ppc/parms.lisp: o Add fields for various invalid operations bits. o Fix float-fast-bit
-