Skip to content
Snippets Groups Projects
  1. Jun 20, 2007
  2. Jun 11, 2007
    • rtoy's avatar
      compiler/float-tran.lisp: · 599a4a72
      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.
      599a4a72
  3. May 29, 2007
  4. May 25, 2007
    • rtoy's avatar
      Revert the previous change to DD-COMPLEX-ATANH. If z < -1, just call · 3fc131f9
      rtoy authored
      DD-COMPLEX-ATANH with -0w0 to get the correct value.
      3fc131f9
    • rtoy's avatar
      We were not correctly reconstructing double-double-float signed zeroes · fafc90b4
      rtoy authored
      from fasl files.  Use %make-double-double-float instead of
      make-double-double-float because the latter does a renormalization,
      which trashes the sign.  The former constructs the double-double
      exactly as given, which is really what we want since the fasl has the
      correct components.
      fafc90b4
    • rtoy's avatar
      o Remove some unused constants · 5a450590
      rtoy authored
      o Fix a typo in a docstring.
      o Fix DD-COMPLEX-ASIN again:
        - The previous fix for asin(-2) being wrong actually broke the case
          for asin(2).  Revert that.
        - The issue was that in our explicitly handling of the atan(y/0)
          case we didn't take into account the sign y and 0.  Fix that.
      5a450590
  5. May 24, 2007
  6. May 23, 2007
  7. May 22, 2007
  8. May 19, 2007
    • rtoy's avatar
      Trac ticket #10 · 51a50f19
      rtoy authored
      For large numbers we did not check for odd-valued results that needed
      to be rounded to even.
      51a50f19
  9. May 02, 2007
  10. Apr 07, 2007
  11. Mar 28, 2007
    • rtoy's avatar
      o Fix typo handling complex-double-double-reg-sc-number case. · 81eabad0
      rtoy authored
      o Fix extra paren for double-double-stack-sc-number case, and don't
        use with-nfp which doesn't exist on x86.
      o Add support for complex-double-double-stack-sc-number, which was
        missing for x86.
      81eabad0
    • rtoy's avatar
      o Remove some extraneous (typo) parens for · 139cb256
      rtoy authored
        double-double-stack-sc-number and
        complex-double-double-stack-sc-number.
      o The complex-double-double-stack-sc-number case was not computed the
        complex double-double correctly.  Fix it.
      139cb256
  12. Mar 27, 2007
  13. Mar 23, 2007
    • rtoy's avatar
      Better conversion of bignums to double-double-floats. Also fixes the · d61a8a8b
      rtoy authored
      silly bug that (float <neg bignum> 1w0) was returning a positive
      result instead of negative.
      
      o Rename DOUBLE-DOUBLE-FLOAT to DOUBLE-DOUBLE-FLOAT-FROM-BITS to match
        other functions and to make it separate from the same function in
        the KERNEL package.
      o Modify DOUBLE-DOUBLE-FLOAT-FROM-BITS to look at the bignum and
        extract out the pieces better.  Look for a pattern <53 bits> <zeroes>
        <53 bits> where <zeroes> is a set of consecutive zero bits.  We use
        the 2 53-bit sections to create the double-double-float.
      o Make DOUBLE-DOUBLE-FLOAT-FROM-BITS honor the sign.
      o Add BIGNUM-FLOAT-DIGITS to figure out how many bits of the bignum
        should be used to create the float.
      o Call BIGNUM-FLOAT-DIGITS from BIGNUM-TO-FLOAT instead of using
        FLOAT-FORMAT-DIGITS.
      d61a8a8b
  14. Mar 22, 2007
  15. Mar 21, 2007
  16. Mar 20, 2007
    • rtoy's avatar
      Was not getting the right instruction for the faulting floating-point · 9fde59c0
      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.
      9fde59c0
    • rtoy's avatar
      Document tracing for FLET/LABELS in the docstring. · 07d8f3eb
      rtoy authored
      07d8f3eb
  17. Jan 23, 2007
  18. Jan 20, 2007
  19. Jan 18, 2007
  20. Jan 16, 2007
  21. Jan 13, 2007
  22. Jan 11, 2007
  23. Dec 22, 2006
    • rtoy's avatar
      Fix issue reported by Albert Reiner, cmucl-help, 2006/10/20, and fix · 7b9a9f98
      rtoy authored
      another issue with uninitialized &aux variables.
      
        (defstruct (foobar
                     (:constructor make-foobar
                                   (xxx
                                    &key (aaa nil) (bbb nil)
                                    &aux
                                    (foobar-data xxx)
                                    (aaa (or aaa
                                             (getf foobar-data :aaa)
                                             1))
                                    (bbb (or bbb
                                             (getf foobar-data :bbb)
                                             (1+ aaa))))))
          (aaa (required-argument) :type fixnum)
          (bbb (required-argument) :type fixnum))
      
        (make-foobar nil) -> #<foobar :aaa 1 :bbb 2>
      
      But CMUCL gives type errors.
      
      To fix Albert's issue, modify CREATE-BOA-CONSTRUCTOR to keep track of
      the &aux vars separately from the other arglist vars.  Adjust
      CREATE-VECTOR-CONSTRUCTOR, CREATE-LIST-CONSTRUCTOR,
      CREATE-STRUCTURE-CONSTRUCTOR, and CREATE-FIN-CONSTRUCTOR to take an
      extra arg for the &aux vars.  For CREATE-STRUCTURE-CONSTRUCTOR, we
      only put declarations for the other arglist vars.  To make sure we
      store the right kinds of objects into the slots, we also wrap (the
      <type> init) for each initial value.
      
      Also CLHS 3.4.6 has an example of a boa constructor using an aux
      variable without an initializer.  CMUCL was not handling that right.
      Modify CREATE-BOA-CONSTRUCTOR to change the initializer to use (or
      <aux> slot-default-value) to get the correct default value into the
      slot if the aux variable doesn't.
      7b9a9f98
  24. Dec 19, 2006
    • cshapiro's avatar
      When attempting to macro expand a symbol that denotes a local · d2dcf0fa
      cshapiro authored
      definition, if the symbol is symbol macro, return the expansion.
      Otherwise, if the symbol is a local definition but not a symbol macro,
      return the symbol and report no expansion.  Previously, the otherwise
      case was not handled and macroexpand-1 fell through in error to test
      forms for global cases.  Among other things, this caused the expansion
      of global symbol macros shadowed by lexical variable bindings.
      d2dcf0fa
  25. Dec 02, 2006
    • rtoy's avatar
      code/float-trap.lisp: · 896812b8
      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.)
      896812b8
  26. Nov 16, 2006
    • rtoy's avatar
      code/float-trap.lisp: · 6f968a58
      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.)
      6f968a58
  27. Nov 14, 2006
Loading