Changeset 14067 for branches


Ignore:
Timestamp:
Jul 27, 2010, 11:10:40 PM (9 years ago)
Author:
gb
Message:

Fixes to _SPdebind (lots of 'em) and _SPstack_misc_alloc_init.
(Some uses of _SPstack_misc_alloc_init scribbled over the
control stack and led to process termination; now we know that
that wasn't due to undetected stack overflow ...)

File:
1 edited

Legend:

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

    r14041 r14067  
    155155        __(cmp arg_y,arg_z)
    156156        __(mov arg_z,#nil_value)
    157         __(addgt arg_z,arg_z,#t_offset)
     157        __(addlt arg_z,arg_z,#t_offset)
    158158        __(bx lr)
    1591591:
     
    203320331:      __(mov imm0,arg_x,lsl #num_subtag_bits-fixnumshift)
    20342034        __(orr imm0,imm0,arg_y,lsr #fixnumshift)
    2035         __(cmp arg_z,#max_32_bit_ivector_subtag<<fixnumshift)
     2035        __(cmp arg_y,#max_32_bit_ivector_subtag<<fixnumshift)
    20362036        __(movle imm1,arg_x)
    20372037        __(ble 8f)
    2038         __(cmp arg_z,#max_8_bit_ivector_subtag<<fixnumshift)
     2038        __(cmp arg_y,#max_8_bit_ivector_subtag<<fixnumshift)
    20392039        __(movle imm1,arg_x,lsr #fixnumshift)
    20402040        __(ble 8f)
    2041         __(cmp arg_z,#max_16_bit_ivector_subtag<<fixnumshift)
     2041        __(cmp arg_y,#max_16_bit_ivector_subtag<<fixnumshift)
    20422042        __(movle imm1,arg_x,lsr #1)
    20432043        __(ble 8f)
    2044         __(cmp arg_z,#subtag_double_float)
     2044        __(cmp arg_y,#subtag_double_float)
    20452045        __(moveq imm1,arg_x,lsl #1)
    20462046        __(addeq imm1,imm1,#node_size)
     
    29102910        __(bne local_label(badlist))
    29112911        __(_cdr(arg_y,arg_y))
     2912        __(cmp arg_y,#nil_value)
    29122913        __(extract_lisptag(imm1,arg_y))
     2914        __(beq local_label(badkeys))
    29132915        __(cmp imm1,#tag_list)
    29142916        __(bne local_label(badlist))
     
    29372939        __(cmp arg_x,imm0)
    29382940        __(bne local_label(not_aok))
     2941        __(orr nargs,nargs,#mask_aok_this)
    29392942        __(tst nargs,#mask_aok_seen)
    2940         __(beq local_label(not_aok))
     2943        __(bne local_label(not_aok))
    29412944        __(_cdr(arg_x,arg_reg))
    29422945        __(_car(arg_x,arg_x))
     
    29562959        __(sub imm0,imm0,#misc_data_offset)
    29572960        __(sub imm0,imm1,imm0,lsl #1)
    2958         __(ldr arg_y,[imm0,#-node_size])
     2961        __(ldr arg_y,[imm0,#-2*node_size])
    29592962        __(cmp arg_y,#nil_value)
    2960         __(beq local_label(provided_key_done))
     2963        __(bne local_label(provided_key_done))
    29612964        __(_cdr(arg_x,arg_reg))
    29622965        __(_car(arg_x,arg_x))
    2963         __(str arg_x,[imm0,#0])
     2966        __(str arg_x,[imm0,#-node_size])
    29642967        __(mov arg_x,#nil_value)
    29652968        __(add arg_x,arg_x,#t_offset)
    2966         __(str arg_x,[imm0,#-node_size])
     2969        __(str arg_x,[imm0,#-2*node_size])
    29672970        __(b local_label(provided_key_done))
    29682971local_label(match_key_test):   
     
    29702973        __(cmp imm0,#misc_data_offset)
    29712974        __(bge local_label(match_key_loop))
    2972         __(orr nargs,nargs,#mask_unknown_keyword_seen)
     2975        __(tst nargs,#mask_aok_this)
     2976        __(bic nargs,nargs,#mask_aok_this)
     2977        __(orreq nargs,nargs,#mask_unknown_keyword_seen)
    29732978local_label(provided_key_done):
    29742979        __(_cdr(arg_reg,arg_reg))
Note: See TracChangeset for help on using the changeset viewer.