Changeset 13811


Ignore:
Timestamp:
Jun 11, 2010, 7:10:57 AM (9 years ago)
Author:
gb
Message:

In _SPvalues: push1 macro operands backwards.
In _SPgvset: memoize like _SPrplaca/_SPrplacd and other things do.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/lisp-kernel/arm-spentry.s

    r13804 r13811  
    553553        __(add temp1,temp1,#fixnum_one)
    554554        __(ldr arg_z,[imm1,#-node_size]!)
    555         __(push1(imm0,arg_z))
     555        __(push1(arg_z,imm0))
    556556        __(bne 5b)
    5575576:
     
    856856        __(add imm0,arg_y,#misc_data_offset)
    857857        __(str arg_z,[arg_x,imm0])
    858         __(bxls lr)
     858        __(bxhs lr)
    859859        __(add imm0,imm0,arg_x)
    860860        __(ref_global(temp0,ref_base))
    861861        __(sub imm0,imm0,temp0)
    862862        __(mov imm0,imm0,lsr #dnode_shift)
    863         __(ref_global(temp0,oldspace_dnode_count))
    864         __(cmp imm0,temp0)
     863        __(ref_global(imm1,oldspace_dnode_count))
     864        __(cmp imm0,imm1)
    865865        __(bxhs lr)
    866866        __(and imm2,imm0,#31)
     
    868868        __(mov imm1,imm1,lsr imm2)
    869869        __(mov imm0,imm0,lsr #bitmap_shift)
    870         __(ref_global(imm2,refbits))
    871         __(add imm2,imm2,imm0,lsl #word_shift)
    872         __(ldr imm0,[imm2])
    873         __(ands imm0,imm0,imm1)
    874         __(bxne lr)
    875         __(build_lisp_frame(imm0))
    876         __(set_ref_bit(gvset))
     870        __(ref_global(temp0,refbits))
     871        __(add temp0,temp0,imm0,lsl #word_shift)
     8720:      __(ldrex imm2,[temp0])
     873        __(orr imm2,imm2,imm1)
     874        __(strex imm0,imm2,[temp0])
     875        __(cmp imm0,#0)
     876        __(bne 0b)       
    877877        __(bx lr)
    878878
     
    22202220dnl /* multiple values, then things are even simpler.  */
    22212221_spentry(lexpr_entry)
    2222 dnl  __(ref_global(imm1,ret1val_addr))
     2222dnl  __(ref_global(imm1,ret1valn))
    22232223dnl  __(cmpr(imm1,loc_pc))
    22242224dnl  __(build_lisp_frame(fn,loc_pc,imm0))
Note: See TracChangeset for help on using the changeset viewer.