Changeset 615e83d in mainline for uspace/lib/c/arch/ia64/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/ia64/src/fibril.S

    re0a4686 r615e83d  
    3232.text
    3333
    34 FUNCTION_BEGIN(context_save)
     34FUNCTION_BEGIN(setjmp)
    3535        alloc loc0 = ar.pfs, 1, 49, 0, 0
    3636        mov loc1 = ar.unat ;;
     
    178178        mov ar.unat = loc1
    179179
    180         add r8 = r0, r0, 1      /* context_save returns 1 */
     180        mov r8 = 0      /* setjmp returns 0 */
    181181        br.ret.sptk.many b0
    182 FUNCTION_END(context_save)
    183 
    184 FUNCTION_BEGIN(context_restore)
    185         alloc loc0 = ar.pfs, 1, 50, 0, 0        ;;
     182FUNCTION_END(setjmp)
     183
     184FUNCTION_BEGIN(__longjmp)
     185        alloc loc0 = ar.pfs, 2, 51, 0, 0        ;;
    186186
    187187        add loc9 = CONTEXT_OFFSET_AR_PFS, in0
     
    230230        add loc47 = CONTEXT_OFFSET_F29, in0
    231231        add loc48 = CONTEXT_OFFSET_F30, in0
    232         add loc49 = CONTEXT_OFFSET_F31, in0 ;;
     232        add loc49 = CONTEXT_OFFSET_F31, in0
     233        mov loc50 = in1 ;;
    233234
    234235        ld8 loc0 = [loc9]       /* load ar.pfs */
     
    335336        mov ar.unat = loc1
    336337
    337         mov r8 = r0                     /* context_restore returns 0 */
     338        mov r8 = loc50                  /* __longjmp returns second argument */
    338339        br.ret.sptk.many b0
    339 FUNCTION_END(context_restore)
     340FUNCTION_END(__longjmp)
Note: See TracChangeset for help on using the changeset viewer.