Changeset 522


Ignore:
Timestamp:
Feb 11, 2004, 11:00:19 AM (21 years ago)
Author:
Gary Byers
Message:

Partly convert to 64-bit-maybeness.

File:
1 edited

Legend:

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

    r407 r522  
    31493149       
    31503150_spentry(builtin_plus)
    3151         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3151        __(extract_lisptag(imm0,arg_y))
     3152        __(extract_lisptag(imm1,arg_z))
     3153        __(cmpri(cr0,imm0,tag_fixnum))
     3154        __(cmpri(cr1,imm1,tag_fixnum))
    31523155        __(bne- cr0,1f)
     3156        __(bne- cr1,1f)
    31533157        __(addo. arg_z,arg_y,arg_z)
    31543158        __(bnslr+)
     
    31633167        __(jump_builtin(_builtin_plus,2))
    31643168_spentry(builtin_minus)
    3165         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3169        __(extract_lisptag(imm0,arg_y))
     3170        __(extract_lisptag(imm1,arg_z))
     3171        __(cmpri(cr0,imm0,tag_fixnum))
     3172        __(cmpri(cr1,imm1,tag_fixnum))
    31663173        __(bne- cr0,1f)
     3174        __(bne- cr0,1f)
    31673175        __(subo. arg_z,arg_y,arg_z)
    31683176        __(bnslr+)
     
    31773185        __(jump_builtin(_builtin_minus,2))
    31783186_spentry(builtin_times)
    3179         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3187        __(extract_lisptag(imm0,arg_y))
     3188        __(extract_lisptag(imm1,arg_z))
     3189        __(cmpri(cr0,imm0,tag_fixnum))
     3190        __(cmpri(cr1,imm1,tag_fixnum))
    31803191        __(unbox_fixnum(imm2,arg_y))
    3181         __(bne 1f)
     3192        __(bne cr0,1f)
     3193        __(bne cr1,1f)
    31823194        __(mullwo. imm3,arg_z,imm2)
    31833195        __(bso 2f)              /*  SO set if result would overflow a fixnum */
     
    31973209
    31983210_spentry(builtin_eq)
    3199         __(extract_2_lisptags_(imm0,arg_y,arg_z))
    3200         __(cmpr(cr1,arg_y,arg_z))
     3211        __(extract_lisptag(imm0,arg_y))
     3212        __(extract_lisptag(imm1,arg_z))
     3213        __(cmpri(cr0,imm0,tag_fixnum))
     3214        __(cmpri(cr1,imm1,tag_fixnum))
     3215        __(cmpr(cr2,arg_y,arg_z))
    32013216        __(bne- cr0,1f)
     3217        __(bne- cr1,1f)
    32023218        __(li arg_z,nil_value)
    3203         __(bnelr cr1)
     3219        __(bnelr cr2)
    32043220        __(li arg_z,t_value)
    32053221        __(blr)
     
    32083224
    32093225_spentry(builtin_ne)
    3210         __(extract_2_lisptags_(imm0,arg_y,arg_z))
    3211         __(cmpr(cr1,arg_y,arg_z))
     3226        __(extract_lisptag(imm0,arg_y))
     3227        __(extract_lisptag(imm1,arg_z))
     3228        __(cmpri(cr0,imm0,tag_fixnum))
     3229        __(cmpri(cr1,imm0,tag_fixnum))
     3230        __(cmpr(cr2,arg_y,arg_z))
    32123231        __(bne- cr0,1f)
     3232        __(bne- cr1,1f)
    32133233        __(li arg_z,nil_value)
    3214         __(beqlr cr1)
     3234        __(beqlr cr2)
    32153235        __(li arg_z,t_value)
    32163236        __(blr)
     
    32193239
    32203240_spentry(builtin_gt)
    3221         __(extract_2_lisptags_(imm0,arg_y,arg_z))
    3222         __(cmpr(cr1,arg_y,arg_z))
     3241        __(extract_lisptag(imm0,arg_y))
     3242        __(extract_lisptag(imm1,arg_z))
     3243        __(cmpri(cr0,imm0,tag_fixnum))
     3244        __(cmpri(cr1,imm0,tag_fixnum))
     3245        __(cmpr(cr2,arg_y,arg_z))
    32233246        __(bne- cr0,1f)
     3247        __(bne- cr1,1f)
    32243248        __(li arg_z,nil_value)
    3225         __(bnglr cr1)
     3249        __(bnglr cr2)
    32263250        __(li arg_z,t_value)
    32273251        __(blr)
     
    32303254
    32313255_spentry(builtin_ge)
    3232         __(extract_2_lisptags_(imm0,arg_y,arg_z))
    3233         __(cmpr(cr1,arg_y,arg_z))
     3256        __(extract_lisptag(imm0,arg_y))
     3257        __(extract_lisptag(imm1,arg_z))
     3258        __(cmpri(cr0,imm0,tag_fixnum))
     3259        __(cmpri(cr1,imm0,tag_fixnum))
     3260        __(cmpr(cr2,arg_y,arg_z))
    32343261        __(bne- cr0,1f)
     3262        __(bne- cr1,1f)
    32353263        __(li arg_z,nil_value)
    3236         __(bltlr cr1)
     3264        __(bltlr cr2)
    32373265        __(li arg_z,t_value)
    32383266        __(blr)
     
    32413269
    32423270_spentry(builtin_lt)
    3243         __(extract_2_lisptags_(imm0,arg_y,arg_z))
    3244         __(cmpr(cr1,arg_y,arg_z))
     3271        __(extract_lisptag(imm0,arg_y))
     3272        __(extract_lisptag(imm1,arg_z))
     3273        __(cmpri(cr0,imm0,tag_fixnum))
     3274        __(cmpri(cr1,imm0,tag_fixnum))
     3275        __(cmpr(cr2,arg_y,arg_z))
    32453276        __(bne- cr0,1f)
     3277        __(bne- cr1,1f)
    32463278        __(li arg_z,nil_value)
    3247         __(bnllr cr1)
     3279        __(bnllr cr2)
    32483280        __(li arg_z,t_value)
    32493281        __(blr)
     
    32523284
    32533285_spentry(builtin_le)
    3254         __(extract_2_lisptags_(imm0,arg_y,arg_z))
    3255         __(cmpr(cr1,arg_y,arg_z))
     3286        __(extract_lisptag(imm0,arg_y))
     3287        __(extract_lisptag(imm1,arg_z))
     3288        __(cmpri(cr0,imm0,tag_fixnum))
     3289        __(cmpri(cr1,imm0,tag_fixnum))
     3290        __(cmpr(cr2,arg_y,arg_z))
    32563291        __(bne- cr0,1f)
     3292        __(bne- cr0,1f)
    32573293        __(li arg_z,nil_value)
    3258         __(bgtlr cr1)
     3294        __(bgtlr cr2)
    32593295        __(li arg_z,t_value)
    32603296        __(blr)
     
    33403376        __(_car(temp0,arg_x))
    33413377        __(cmpr(temp0,arg_y))
    3342         __(bne 2f)
     3378        __(bne cr0,2f)
    33433379        __(mr arg_z,arg_x)
    33443380        __(blr)
     
    33643400_spentry(builtin_logbitp)
    33653401        /* Call out unless both fixnums,0 <=  arg_y < 30 */
    3366         __(cmplri(cr1,arg_y,30<<fixnum_shift))
    3367         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3402        __(cmplri(cr2,arg_y,30<<fixnum_shift))
     3403        __(extract_lisptag(imm0,arg_y))
     3404        __(extract_lisptag(imm1,arg_z))
     3405        __(cmpri(cr0,imm0,tag_fixnum))
     3406        __(cmpri(cr1,imm1,tag_fixnum))
    33683407        __(unbox_fixnum(imm0,arg_y))
    33693408        __(subfic imm0,imm0,30)
    33703409        __(rlwnm imm0,arg_z,imm0,31,31)
    33713410        __(rlwimi imm0,imm0,4,27,27)
    3372         __(bnl cr1,1f)
     3411        __(bnl cr2,1f)
    33733412        __(bne cr0,1f)
     3413        __(bne cr1,1f)
    33743414        __(addi arg_z,imm0,nil_value)
    33753415        __(blr)
     
    33783418
    33793419_spentry(builtin_logior)
    3380         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3420        __(extract_lisptag(imm0,arg_y))
     3421        __(extract_lisptag(imm1,arg_z))
     3422        __(cmpri(cr0,imm0,tag_fixnum))
     3423        __(cmpri(cr1,imm1,tag_fixnum))
    33813424        __(bne- cr0,1f)
     3425        __(bne- cr1,1f)
    33823426        __(or arg_z,arg_y,arg_z)
    33833427        __(blr)
     
    33863430
    33873431_spentry(builtin_logand)
    3388         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3432        __(extract_lisptag(imm0,arg_y))
     3433        __(extract_lisptag(imm1,arg_z))
     3434        __(cmpri(cr0,imm0,tag_fixnum))
     3435        __(cmpri(cr1,imm0,tag_fixnum))
    33893436        __(bne- cr0,1f)
     3437        __(bne- cr1,1f)
    33903438        __(and arg_z,arg_y,arg_z)
    33913439        __(blr)
     
    33953443_spentry(builtin_ash)
    33963444        __(cmpri(cr1,arg_z,0))
    3397         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3445        __(extract_lisptag(imm0,arg_y))
     3446        __(extract_lisptag(imm1,arg_z))
     3447        __(cmpri(cr0,imm0,tag_fixnum))
     3448        __(cmpri(cr3,imm1,tag_fixnum))
    33983449        __(cmpri(cr2,arg_z,-(29<<2)))   /* !! 2 =  fixnumshift */
    33993450        __(bne- 9f)
     3451        __(bne- cr3,9f)
    34003452        __(bne cr1,0f)
    34013453        __(mr arg_z,arg_y)      /* (ash n 0) => n */
     
    34663518
    34673519_spentry(builtin_logxor)
    3468         __(extract_2_lisptags_(imm0,arg_y,arg_z))
     3520        __(extract_lisptag(imm0,arg_y))
     3521        __(extract_lisptag(imm1,arg_z))
     3522        __(cmpri(cr0,imm0,tag_fixnum))
     3523        __(cmpri(cr0,imm1,tag_fixnum))
    34693524        __(bne- cr0,1f)
     3525        __(bne- cr1,1f)
    34703526        __(xor arg_z,arg_y,arg_z)
    34713527        __(blr)
Note: See TracChangeset for help on using the changeset viewer.