Changeset 12294


Ignore:
Timestamp:
Jun 25, 2009, 12:38:09 AM (10 years ago)
Author:
gb
Message:

misc_set of u64 vector: actually set cr6 before testing it (was failing
if value was a bignum.)

.SPdestructuring_bind: word-size issues in keyword loop. (4-year-old
word-size issues ...)

File:
1 edited

Legend:

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

    r11478 r12294  
    33563356push_pair_test:
    33573357        __(bne cr0,push_pair_loop)
    3358         __(slwi imm2,imm2,3)            /* pairs -> bytes  */
     3358        __(slwi imm2,imm2,dnode_shift)  /* pairs -> bytes  */
    33593359        __(add imm2,vsp,imm2)           /* imm2 points below pairs  */
    33603360        __(li imm0,0)                   /* count unknown keywords so far  */
     
    33933393        __(addi imm0,imm0,1)
    33943394        __(cmpr(cr4,imm0,nargs))
    3395         __(addi imm3,imm3,4)
     3395        __(addi imm3,imm3,node_size)
    33963396        __(bne cr0,match_test)
    33973397        /* Got a hit.  Unless this keyword's been seen already, set it.  */
    3398         __(slwi imm0,imm0,3)
     3398        __(slwi imm0,imm0,dnode_shift)
    33993399        __(subf imm0,imm0,imm2)
    34003400        __(ldr(temp0,0(imm0)))
     
    34093409        __(bne cr4,match_loop)
    34103410        __(beq cr3,match_keys_check_aok)
    3411         __(addi imm1,imm1,4)
     3411        __(addi imm1,imm1,node_size)
    34123412        __(b match_keys_loop)
    34133413match_keys_check_aok:
     
    39333933local_label(misc_set_u64):
    39343934         __(extract_lisptag(imm0,arg_z))
     3935         __(extract_fulltag(imm2,arg_z))
    39353936         __(cmpdi cr0,arg_z,0)
    39363937         __(cmpdi cr7,imm0,0)
     3938         __(cmpdi cr6,imm2,fulltag_misc)
    39373939         __(la imm4,misc_data_offset(arg_y))
    39383940         __(bne cr7,local_label(setu64_maybe_bignum))
Note: See TracChangeset for help on using the changeset viewer.