Changeset 15541


Ignore:
Timestamp:
Dec 17, 2012, 1:57:02 AM (7 years ago)
Author:
gb
Message:

Don't need pc_luser_xp() support for .SPatomic_incf_node if we use
the lr hack, so use the lr hack.

File:
1 edited

Legend:

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

    r15425 r15541  
    18731873
    18741874
    1875 /* This doesn't need to memoize anything, but needs pc-lusering support
    1876    support because of the locative */
    18771875_spentry(atomic_incf_node)
    1878         __(unbox_fixnum(imm1,arg_z))
    1879 0:      __(add imm2,arg_y,imm1)
    1880         __(ldrex arg_z,[imm2])
     1876        __(build_lisp_frame(imm0))
     1877        __(add lr,arg_y,arg_z,asr #fixnumshift)
     18780:      __(ldrex arg_z,[lr])
    18811879        __(add arg_z,arg_z,arg_x)
    1882         __(strex imm0,arg_z,[imm2])
     1880        __(strex imm0,arg_z,[lr])
    18831881        __(cmp imm0,#0)
    18841882        __(bne 0b)
     1883       /* Return this way, to get something else in the lr */
     1884        __(restore_lisp_frame(imm0))
    18851885        __(bx lr)
    18861886       
Note: See TracChangeset for help on using the changeset viewer.