Ignore:
Timestamp:
Jan 7, 2021, 3:27:00 PM (5 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
2b4daf2, 64aeca0
Parents:
3c64c668 (diff), eef8dfb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into park_unpark

File:
1 moved

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/CtxSwitch-arm32.S

    r3c64c668 r58fe85a  
    1         @ 32 bit ARM context switch
    2         @ This function assumes that r9 has no special meaning on the platform it's
    3         @ being built on.
    4         @ If r9 is special, uncomment the following line and it will be left alone
     1        # 32 bit ARM context switch
     2        # This function assumes that r9 has no special meaning on the platform it's
     3        # being built on.
     4        # If r9 is special, uncomment the following line and it will be left alone
    55
    6         @ #define R9_SPECIAL
     6        # #define R9_SPECIAL
    77
    88        #define PTR_BYTE        4
     
    1717
    1818__cfactx_switch:
    19         @ save callee-saved registers: r4-r8, r10, r11, r13(sp) (plus r9 depending on platform specification)
    20         @ I've seen reference to 31 registers on 64-bit, if this is the case, more need to be saved
    21         @ save thread state registers: r14(lr)
    22         @ r12(ip) is intra-procedure-call scratch register, does not need saving between function calls
     19        # save callee-saved registers: r4-r8, r10, r11, r13(sp) (plus r9 depending on platform specification)
     20        # I've seen reference to 31 registers on 64-bit, if this is the case, more need to be saved
     21        # save thread state registers: r14(lr)
     22        # r12(ip) is intra-procedure-call scratch register, does not need saving between function calls
    2323
    2424        #ifdef R9_SPECIAL
     
    2828        #endif // R9_SPECIAL
    2929
    30         @ save floating point registers: s16-s31
     30        # save floating point registers: s16-s31
    3131        vstmdb r13!, {s16-s31}
    3232
    33         @ save frame pointer and stack pointer to outgoing datastructure
     33        # save frame pointer and stack pointer to outgoing datastructure
    3434        str sp, [r0, #SP_OFFSET]
    3535        str fp, [r0, #FP_OFFSET]
    3636
    37         @ restore frame pointer and stack pointer from incoming datastructure
     37        # restore frame pointer and stack pointer from incoming datastructure
    3838        ldr fp, [r1, #FP_OFFSET]
    3939        ldr sp, [r1, #SP_OFFSET]
    4040
    41         @ restore floating point registers: s16-s31
     41        # restore floating point registers: s16-s31
    4242        vldm r13!, {s16-s31}
    43         @ restore r14(lr)
    44         @ restore 64-bit extra registers?
    45         @ restore callee-saved registers: r4-r8, r10, r11, r13
     43        # restore r14(lr)
     44        # restore 64-bit extra registers?
     45        # restore callee-saved registers: r4-r8, r10, r11, r13
    4646
    4747        #ifdef R9_SPECIAL
    4848        ldmfd r13!, {r4-r8,r10,r11,r15}
    4949        #else
    50         ldmfd r13!, {r4-r11,r14}    @ loading r14 back into r15 returns
     50        ldmfd r13!, {r4-r11,r14}    # loading r14 back into r15 returns
    5151
    5252        mov r15, r14
Note: See TracChangeset for help on using the changeset viewer.