Changeset 14272


Ignore:
Timestamp:
Sep 17, 2010, 10:45:12 PM (9 years ago)
Author:
gb
Message:

In write-barrier code, return without store-conditional if the
refbit's already set.

File:
1 edited

Legend:

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

    r14188 r14272  
    717717        __(ref_global(temp0,refbits))
    718718        __(add temp0,temp0,imm0,lsl #word_shift)
     719        __(ldr imm2,[temp0])
     720        __(tst imm2,imm1)
     721        __(bxne lr)
    7197220:      __(ldrex imm2,[temp0])
    720723        __(orr imm2,imm2,imm1)
     
    743746        __(ref_global(temp0,refbits))
    744747        __(add temp0,temp0,imm0,lsl #word_shift)
     748        __(ldr imm2,[temp0])
     749        __(tst imm2,imm1)
     750        __(bxne lr)
    7457510:      __(ldrex imm2,[temp0])
    746752        __(orr imm2,imm2,imm1)
     
    773779        __(ref_global(temp0,refbits))
    774780        __(add temp0,temp0,imm0,lsl #word_shift)
     781        __(ldr imm2,[temp0])
     782        __(tst imm2,imm1)
     783        __(bxne lr)     
    7757840:      __(ldrex imm2,[temp0])
    776785        __(orr imm2,imm2,imm1)
     
    804813        __(ref_global(temp0,refbits))
    805814        __(add temp0,temp0,imm0,lsl #word_shift)
     815        __(ldr imm2,[temp0])
     816        __(tst imm2,imm1)
     817        __(bxne lr)
    8068180:      __(ldrex imm2,[temp0])
    807819        __(orr imm2,imm2,imm1)
     
    820832        __(ref_global(temp0,refbits))
    821833        __(add temp0,temp0,imm0,lsl #word_shift)
     834        __(ldr imm2,[temp0])
     835        __(tst imm2,imm1)
     836        __(bxne lr)
    8228371:      __(ldrex imm2,[temp0])
    823838        __(orr imm2,imm2,imm1)
     
    877892        __(mov imm0,imm0,lsr #bitmap_shift)
    878893        __(add temp0,temp0,imm0,lsl #word_shift)
     894        __(ldr imm2,[temp0])
     895        __(tst imm2,imm1)
     896        __(bxne lr)
    8798972:      __(ldrex imm2,[temp0])
    880898        __(orr imm2,imm2,imm1)
     
    916934        __(ref_global(temp0,refbits))
    917935        __(add temp0,temp0,imm0,lsl #word_shift)
     936        __(ldr imm2,[temp0])
     937        __(tst imm2,imm1)
     938        __(bxne lr)
    9189391:      __(ldrex imm2,[temp0])
    919940        __(orr imm2,imm2,imm1)
     
    932953        __(ref_global(temp0,refbits))
    933954        __(add temp0,temp0,imm0,lsl #word_shift)
     955        __(ldr imm2,[temp0])
     956        __(tst imm2,imm1)
     957        __(bxne lr)
    9349581:      __(ldrex imm2,[temp0])
    935959        __(orr imm2,imm2,imm1)
Note: See TracChangeset for help on using the changeset viewer.