Changeset 615e83d in mainline for uspace/lib/c/arch/ppc32/src/fibril.S


Ignore:
Timestamp:
2018-03-08T18:25:31Z (7 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Children:
55f068c
Parents:
e0a4686
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-08 17:43:06)
git-committer:
Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-08 18:25:31)
Message:

Turn context_save/context_restore into standard setjmp/longjmp.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/ppc32/src/fibril.S

    re0a4686 r615e83d  
    3333#include <libarch/fibril_context.h>
    3434
    35 FUNCTION_BEGIN(context_save)
     35FUNCTION_BEGIN(setjmp)
    3636        stw sp, CONTEXT_OFFSET_SP(r3)
    3737        stw r2, CONTEXT_OFFSET_TLS(r3)
     
    6262        stw r4, CONTEXT_OFFSET_CR(r3)
    6363
    64         # context_save returns 1
    65         li r3, 1
     64        # setjmp returns 0
     65        li r3, 0
    6666        blr
    67 FUNCTION_END(context_save)
     67FUNCTION_END(setjmp)
    6868
    69 FUNCTION_BEGIN(context_restore)
     69FUNCTION_BEGIN(__longjmp)
    7070        lwz sp, CONTEXT_OFFSET_SP(r3)
    7171        lwz r2, CONTEXT_OFFSET_TLS(r3)
     
    9090        lwz r31, CONTEXT_OFFSET_R31(r3)
    9191
    92         lwz r4, CONTEXT_OFFSET_CR(r3)
    93         mtcr r4
     92        lwz r5, CONTEXT_OFFSET_CR(r3)
     93        mtcr r5
    9494
    95         lwz r4, CONTEXT_OFFSET_PC(r3)
    96         mtlr r4
     95        lwz r5, CONTEXT_OFFSET_PC(r3)
     96        mtlr r5
    9797
    98         # context_restore returns 0
    99         li r3, 0
     98        # __longjmp returns second argument
     99        li r3, r4
    100100        blr
    101 FUNCTION_END(context_restore)
     101FUNCTION_END(__longjmp)
Note: See TracChangeset for help on using the changeset viewer.