Changeset 6737


Ignore:
Timestamp:
Jun 15, 2007, 12:20:07 PM (17 years ago)
Author:
Gary Byers
Message:

x862-numcmp: if both args fixnums ...
x862-inline-numcmp: don't reverse cr-bit if both args fixnums (shouldn't
get here if we're catching that upstream, but ...)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/X86/x862.lisp

    r6541 r6737  
    61116111            (x862-explicit-non-fixnum-type-p form2))
    61126112      (x862-binary-builtin seg vreg xfer name form1 form2)
    6113       (x862-inline-numcmp seg vreg xfer cc name form1 form2))))
     6113      (let* ((fix1 (acode-fixnum-form-p form1))
     6114             (fix2 (acode-fixnum-form-p form2)))
     6115        (if (and fix1 fix2)
     6116          (if (funcall name fix1 fix2)
     6117            (x862-t seg vreg xfer)
     6118            (x862-nil seg vreg xfer))
     6119          (x862-inline-numcmp seg vreg xfer cc name form1 form2))))))
    61146120
    61156121(defun x862-inline-numcmp (seg vreg xfer cc name form1 form2)
     
    61416147      (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc)
    61426148        (when otherform
    6143           (unless (or fix2 (eq cr-bit x86::x86-e-bits))
     6149          (unless (or (and fix2 (not fix1)) (eq cr-bit x86::x86-e-bits))
    61446150            (setq cr-bit (x862-reverse-cr-bit cr-bit))))
    61456151        (if (not true-p)
Note: See TracChangeset for help on using the changeset viewer.