Changeset a5c78a18 in mainline for uspace/lib/c/arch/ia32/src/fibril.S
- Timestamp:
- 2019-02-03T14:35:44Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- b4f1171
- Parents:
- 67ca359
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia32/src/fibril.S
r67ca359 ra5c78a18 42 42 43 43 # save registers to the context structure 44 movl %esp, CONTEXT_OFFSET_SP(%edx) # %esp -> ctx->sp45 movl %eax, CONTEXT_OFFSET_PC(%edx) # %eip -> ctx->pc46 movl %ebx, CONTEXT_OFFSET_EBX(%edx) # %ebx -> ctx->ebx47 movl %esi, CONTEXT_OFFSET_ESI(%edx) # %esi -> ctx->esi48 movl %edi, CONTEXT_OFFSET_EDI(%edx) # %edi -> ctx->edi49 movl %ebp, CONTEXT_OFFSET_EBP(%edx) # %ebp -> ctx->ebp44 movl %esp, __CONTEXT_OFFSET_SP(%edx) # %esp -> ctx->sp 45 movl %eax, __CONTEXT_OFFSET_PC(%edx) # %eip -> ctx->pc 46 movl %ebx, __CONTEXT_OFFSET_EBX(%edx) # %ebx -> ctx->ebx 47 movl %esi, __CONTEXT_OFFSET_ESI(%edx) # %esi -> ctx->esi 48 movl %edi, __CONTEXT_OFFSET_EDI(%edx) # %edi -> ctx->edi 49 movl %ebp, __CONTEXT_OFFSET_EBP(%edx) # %ebp -> ctx->ebp 50 50 51 51 # save TLS 52 52 movl %gs:0, %eax 53 movl %eax, CONTEXT_OFFSET_TLS(%edx) # tls -> ctx->tls53 movl %eax, __CONTEXT_OFFSET_TLS(%edx) # tls -> ctx->tls 54 54 55 55 xorl %eax, %eax # __setjmp returns 0 … … 67 67 68 68 # restore registers from the context structure 69 movl CONTEXT_OFFSET_SP(%eax),%esp # ctx->sp -> %esp70 movl CONTEXT_OFFSET_PC(%eax),%edx # ctx->pc -> \pc71 movl CONTEXT_OFFSET_EBX(%eax),%ebx # ctx->ebx -> %ebx72 movl CONTEXT_OFFSET_ESI(%eax),%esi # ctx->esi -> %esi73 movl CONTEXT_OFFSET_EDI(%eax),%edi # ctx->edi -> %edi74 movl CONTEXT_OFFSET_EBP(%eax),%ebp # ctx->ebp -> %ebp69 movl __CONTEXT_OFFSET_SP(%eax),%esp # ctx->sp -> %esp 70 movl __CONTEXT_OFFSET_PC(%eax),%edx # ctx->pc -> \pc 71 movl __CONTEXT_OFFSET_EBX(%eax),%ebx # ctx->ebx -> %ebx 72 movl __CONTEXT_OFFSET_ESI(%eax),%esi # ctx->esi -> %esi 73 movl __CONTEXT_OFFSET_EDI(%eax),%edi # ctx->edi -> %edi 74 movl __CONTEXT_OFFSET_EBP(%eax),%ebp # ctx->ebp -> %ebp 75 75 76 76 movl %edx, 0(%esp) # ctx->pc -> saver's return %eip 77 77 78 78 # set thread local storage 79 movl CONTEXT_OFFSET_TLS(%eax), %edx # Set arg1 to TLS addr79 movl __CONTEXT_OFFSET_TLS(%eax), %edx # Set arg1 to TLS addr 80 80 movl %edx, %gs:0 81 81
Note:
See TracChangeset
for help on using the changeset viewer.