Changeset 9567 for branches/ia32/level-0


Ignore:
Timestamp:
May 22, 2008, 12:48:30 AM (11 years ago)
Author:
rme
Message:

%normalize-bignum-2: At @maybe-return-fixnum, don't assume that a
bignum header is in imm0. In the case where a one digit bignum is
passed in, we will jump straight to @maybe-return-fixnum, and imm0
will contain only junk. (In the fall-through case, imm0 will contain
a valid header).

This bug was allowing un-normalized bignums to escape from the lab, which
is Not Good At All.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/level-0/X86/X8632/x8632-bignum.lisp

    r9552 r9567  
    330330    (cmpl ($ x8632::nil-value) (@ 0 (% esp))) ;return-fixnum-p
    331331    (je @done)
    332     (cmpl ($ x8632::one-digit-bignum-header) (% imm0))
     332    (cmpl ($ x8632::one-digit-bignum-header)
     333          (@ x8632::misc-header-offset (% bignum)))
    333334    (jne @done)
    334335    ;; Bignum has one digit.  If it fits in a fixnum, return a fixnum.
Note: See TracChangeset for help on using the changeset viewer.