Changeset ab936440 in mainline for uspace/lib/c/arch/sparc64/src/fibril.S
- Timestamp:
- 2019-02-12T20:42:42Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f31ca47
- Parents:
- 7f7817a9 (diff), 4805495 (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. - git-author:
- Matthieu Riolo <matthieu.riolo@…> (2019-02-12 20:26:18)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-02-12 20:42:42)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/sparc64/src/fibril.S
r7f7817a9 rab936440 32 32 .text 33 33 34 FUNCTION_BEGIN(__ setjmp)34 FUNCTION_BEGIN(__context_save) 35 35 # 36 36 # We rely on the kernel to flush our active register windows to memory 37 37 # should a thread switch occur. 38 38 # 39 stx %sp, [%o0 + CONTEXT_OFFSET_SP]40 stx %o7, [%o0 + CONTEXT_OFFSET_PC]41 stx %i0, [%o0 + CONTEXT_OFFSET_I0]42 stx %i1, [%o0 + CONTEXT_OFFSET_I1]43 stx %i2, [%o0 + CONTEXT_OFFSET_I2]44 stx %i3, [%o0 + CONTEXT_OFFSET_I3]45 stx %i4, [%o0 + CONTEXT_OFFSET_I4]46 stx %i5, [%o0 + CONTEXT_OFFSET_I5]47 stx %fp, [%o0 + CONTEXT_OFFSET_FP]48 stx %i7, [%o0 + CONTEXT_OFFSET_I7]49 stx %l0, [%o0 + CONTEXT_OFFSET_L0]50 stx %l1, [%o0 + CONTEXT_OFFSET_L1]51 stx %l2, [%o0 + CONTEXT_OFFSET_L2]52 stx %l3, [%o0 + CONTEXT_OFFSET_L3]53 stx %l4, [%o0 + CONTEXT_OFFSET_L4]54 stx %l5, [%o0 + CONTEXT_OFFSET_L5]55 stx %l6, [%o0 + CONTEXT_OFFSET_L6]56 stx %l7, [%o0 + CONTEXT_OFFSET_L7]57 stx %g7, [%o0 + CONTEXT_OFFSET_TP]39 stx %sp, [%o0 + __CONTEXT_OFFSET_SP] 40 stx %o7, [%o0 + __CONTEXT_OFFSET_PC] 41 stx %i0, [%o0 + __CONTEXT_OFFSET_I0] 42 stx %i1, [%o0 + __CONTEXT_OFFSET_I1] 43 stx %i2, [%o0 + __CONTEXT_OFFSET_I2] 44 stx %i3, [%o0 + __CONTEXT_OFFSET_I3] 45 stx %i4, [%o0 + __CONTEXT_OFFSET_I4] 46 stx %i5, [%o0 + __CONTEXT_OFFSET_I5] 47 stx %fp, [%o0 + __CONTEXT_OFFSET_FP] 48 stx %i7, [%o0 + __CONTEXT_OFFSET_I7] 49 stx %l0, [%o0 + __CONTEXT_OFFSET_L0] 50 stx %l1, [%o0 + __CONTEXT_OFFSET_L1] 51 stx %l2, [%o0 + __CONTEXT_OFFSET_L2] 52 stx %l3, [%o0 + __CONTEXT_OFFSET_L3] 53 stx %l4, [%o0 + __CONTEXT_OFFSET_L4] 54 stx %l5, [%o0 + __CONTEXT_OFFSET_L5] 55 stx %l6, [%o0 + __CONTEXT_OFFSET_L6] 56 stx %l7, [%o0 + __CONTEXT_OFFSET_L7] 57 stx %g7, [%o0 + __CONTEXT_OFFSET_TP] 58 58 retl 59 mov 0, %o0 ! __ setjmpreturns 060 FUNCTION_END(__ setjmp)59 mov 0, %o0 ! __context_save returns 0 60 FUNCTION_END(__context_save) 61 61 62 FUNCTION_BEGIN(__ longjmp)62 FUNCTION_BEGIN(__context_restore) 63 63 # 64 64 # Flush all active windows. … … 69 69 flushw 70 70 71 ldx [%o0 + CONTEXT_OFFSET_SP], %sp72 ldx [%o0 + CONTEXT_OFFSET_PC], %o773 ldx [%o0 + CONTEXT_OFFSET_I0], %i074 ldx [%o0 + CONTEXT_OFFSET_I1], %i175 ldx [%o0 + CONTEXT_OFFSET_I2], %i276 ldx [%o0 + CONTEXT_OFFSET_I3], %i377 ldx [%o0 + CONTEXT_OFFSET_I4], %i478 ldx [%o0 + CONTEXT_OFFSET_I5], %i579 ldx [%o0 + CONTEXT_OFFSET_FP], %fp80 ldx [%o0 + CONTEXT_OFFSET_I7], %i781 ldx [%o0 + CONTEXT_OFFSET_L0], %l082 ldx [%o0 + CONTEXT_OFFSET_L1], %l183 ldx [%o0 + CONTEXT_OFFSET_L2], %l284 ldx [%o0 + CONTEXT_OFFSET_L3], %l385 ldx [%o0 + CONTEXT_OFFSET_L4], %l486 ldx [%o0 + CONTEXT_OFFSET_L5], %l587 ldx [%o0 + CONTEXT_OFFSET_L6], %l688 ldx [%o0 + CONTEXT_OFFSET_L7], %l789 ldx [%o0 + CONTEXT_OFFSET_TP], %g771 ldx [%o0 + __CONTEXT_OFFSET_SP], %sp 72 ldx [%o0 + __CONTEXT_OFFSET_PC], %o7 73 ldx [%o0 + __CONTEXT_OFFSET_I0], %i0 74 ldx [%o0 + __CONTEXT_OFFSET_I1], %i1 75 ldx [%o0 + __CONTEXT_OFFSET_I2], %i2 76 ldx [%o0 + __CONTEXT_OFFSET_I3], %i3 77 ldx [%o0 + __CONTEXT_OFFSET_I4], %i4 78 ldx [%o0 + __CONTEXT_OFFSET_I5], %i5 79 ldx [%o0 + __CONTEXT_OFFSET_FP], %fp 80 ldx [%o0 + __CONTEXT_OFFSET_I7], %i7 81 ldx [%o0 + __CONTEXT_OFFSET_L0], %l0 82 ldx [%o0 + __CONTEXT_OFFSET_L1], %l1 83 ldx [%o0 + __CONTEXT_OFFSET_L2], %l2 84 ldx [%o0 + __CONTEXT_OFFSET_L3], %l3 85 ldx [%o0 + __CONTEXT_OFFSET_L4], %l4 86 ldx [%o0 + __CONTEXT_OFFSET_L5], %l5 87 ldx [%o0 + __CONTEXT_OFFSET_L6], %l6 88 ldx [%o0 + __CONTEXT_OFFSET_L7], %l7 89 ldx [%o0 + __CONTEXT_OFFSET_TP], %g7 90 90 retl 91 mov %o1, %o0 ! __ longjmpreturns second argument92 FUNCTION_END(__ longjmp)91 mov %o1, %o0 ! __context_restore returns second argument 92 FUNCTION_END(__context_restore)
Note:
See TracChangeset
for help on using the changeset viewer.