Changeset 13723


Ignore:
Timestamp:
May 23, 2010, 1:48:25 AM (9 years ago)
Author:
gb
Message:

Make catch frames with stm.

File:
1 edited

Legend:

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

    r13687 r13723  
    331331        __(build_lisp_frame(imm0))
    332332        __(movc16(imm0,make_header(catch_frame.element_count,subtag_u32_vector)))
    333         __(str imm0,[sp,#-((catch_frame.element_count+1)*node_size)]!)
    334         __(mov imm0,#0)
    335         __(str imm0,[sp,#catch_frame.catch_tag+fulltag_misc])
    336         __(ldr imm0,[rcontext,#tcr.catch_top])
    337         __(str imm0,[sp,#catch_frame.link+fulltag_misc])
    338         __(ldr imm0,[rcontext,#tcr.db_link])
    339         __(str imm0,[sp,#catch_frame.db_link+fulltag_misc])
    340         __(ldr imm0,[rcontext,#tcr.xframe])
    341         __(str imm0,[sp,#catch_frame.xframe+fulltag_misc])
     333        __(ldr imm1,[rcontext,#tcr.catch_top])
     334        /* imm2 is mvflag */
     335        /* arg_z is tag */
     336        __(ldr arg_x,[rcontext,#tcr.db_link])
     337        __(ldr temp0,[rcontext,#tcr.xframe])
     338        __(stmdb sp!,{imm0,imm1,imm2,arg_z,arg_x,temp0})
    342339        __(add imm0,sp,#fulltag_misc)
    343         __(str imm2,[imm0,#catch_frame.mvflag])
    344         __(mov imm2,#subtag_catch_frame)
    345         __(strb imm2,[imm0,#misc_subtag_offset])
    346         __(str arg_z,[imm0,#catch_frame.catch_tag])
    347340        __(str imm0,[rcontext,#tcr.catch_top])
    348341        __(add lr,lr,#4)
Note: See TracChangeset for help on using the changeset viewer.