Changeset 5182


Ignore:
Timestamp:
Sep 8, 2006, 9:38:26 PM (18 years ago)
Author:
Gary Byers
Message:

FIXNUM->CHAR: return NIL for surrogate pairs.

Location:
trunk/ccl/compiler/PPC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/compiler/PPC/PPC32/ppc32-vinsns.lisp

    r5115 r5182  
    23302330(define-ppc32-vinsn fixnum->char (((dest :lisp))
    23312331                                  ((src :imm))
    2332                                   ())
     2332                                  ((temp :u32)
     2333                                   (crf0 (:crf 0))))
     2334  (srwi temp src (+ ppc32::fixnumshift 11))
     2335  (cmpwi temp 27)
    23332336  (slwi dest src (- ppc32::charcode-shift ppc32::fixnumshift))
    2334   (addi dest dest ppc32::subtag-character))
     2337  (bne+ :ok)
     2338  (li dest ppc32::nil-value)
     2339  (b :done)
     2340  :ok
     2341  (addi dest dest ppc32::subtag-character)
     2342  :done)
    23352343
    23362344
  • trunk/ccl/compiler/PPC/PPC64/ppc64-vinsns.lisp

    r5115 r5182  
    23192319(define-ppc64-vinsn fixnum->char (((dest :lisp))
    23202320                                  ((src :imm))
    2321                                   ())
     2321                                  ((temp :u64)
     2322                                   (crf0 (:crf 0))))
     2323  (srdi temp src (+ ppc64::fixnumshift 11))
     2324  (cmpdi temp 27)
    23222325  (sldi dest src (- ppc64::charcode-shift ppc64::fixnumshift))
    2323   (addi dest dest ppc64::subtag-character))
     2326  (bne+ :ok)
     2327  (li dest ppc64::nil-value)
     2328  (b :done)
     2329  :ok
     2330  (addi dest dest ppc64::subtag-character)
     2331  :done)
    23242332
    23252333(define-ppc64-vinsn u32->char (((dest :lisp))
Note: See TracChangeset for help on using the changeset viewer.