Changeset 296


Ignore:
Timestamp:
Jan 15, 2004, 12:16:45 AM (21 years ago)
Author:
Gary Byers
Message:

A million monkeys and a million typewriters: sooner or later, one of
them will get ASH right ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/spentry.s

    r268 r296  
    34113411        __(unbox_fixnum(imm1,arg_y))
    34123412        __(unbox_fixnum(imm0,arg_z))
    3413         __(bgt cr1,1f)
     3413        __(bgt cr1,2f)
    34143414        /* (ash n -count) => fixnum */
    3415         __(li arg_z,-1<<fixnumshift)
    3416         __(blelr cr2)
    3417         __(neg imm0,imm0)
    3418         __(sraw imm1,imm1,imm0)
    3419         __(box_fixnum(arg_z,imm1))
     3415        __(neg imm2,imm0)
     3416        __(bgt cr2,1f)
     3417        __(li imm2,31)
     34181:     
     3419        __(sraw imm0,imm1,imm2)
     3420        __(box_fixnum(arg_z,imm0))
    34203421        __(blr)
    34213422        /* Integer-length of arg_y/imm1 to imm2 */
    3422 1:             
     34232:             
    34233424        __(cntlzw. imm2,imm1)
    3424         __(bne 2f)              /* cr0[eq] set if negative */
     3425        __(bne 3f)              /* cr0[eq] set if negative */
    34253426        __(not imm2,imm1)
    34263427        __(cntlzw imm2,imm2)
    3427 2:
     34283:
    34283429        __(subfic imm2,imm2,32)
    34293430        __(add imm2,imm2,imm0)   /* imm2 <- integer-length(imm1) + count */
     
    34333434        __(bgt cr1,6f)
    34343435        __(box_fixnum(arg_z,imm2))
    3435         __(blr)
     3436        __(blr) 
    343634376:
    34373438        __(bgt cr2,9f)
Note: See TracChangeset for help on using the changeset viewer.