Changeset 8660


Ignore:
Timestamp:
Mar 4, 2008, 10:27:59 PM (12 years ago)
Author:
rme
Message:

Try again with SPstore_node_conditional.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ia32/lisp-kernel/x86-spentry32.s

    r8647 r8660  
    13231323        .globl C(egc_store_node_conditional)
    13241324C(egc_store_node_conditional):
    1325         __(unbox_fixnum(%temp0,%imm0))
    1326 0:      __(movl (%temp1,%imm0),%temp0)
    1327         __(cmpl %arg_y,%temp1)
    1328         __(movl %temp0,%imm0)
     1325        __(subl $misc_data_offset*fixnumone,%temp0) /* undo pre-added offset */
     1326        __(sarl $fixnumshift,%temp0)    /* will be fixnum-tagged */
     13270:      __(cmpl %arg_y,misc_data_offset(%temp1,%temp0))
     1328        __(movl misc_data_offset(%temp1,%temp0),%imm0)
    13291329        __(jne 3f)
    13301330        __(lock)
    1331         __(cmpxchgl %arg_z,(%temp1,%imm0))
     1331        __(cmpxchgl %arg_z,misc_data_offset(%temp1,%temp0))
    13321332        .globl C(egc_store_node_conditional_success_test)
    13331333C(egc_store_node_conditional_success_test):
    13341334        __(jne 0b)
    1335         __(leal (%temp1,%imm0),%imm0)
     1335        __(leal misc_data_offset(%temp1,%temp0),%imm0)
    13361336        __(subl lisp_global(heap_start),%imm0)
    13371337        __(shrl $dnode_shift,%imm0)
Note: See TracChangeset for help on using the changeset viewer.