Changeset 0aee9b4 in mainline for kernel/arch/amd64/src/context.S


Ignore:
Timestamp:
2014-09-02T20:31:13Z (10 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b3222a3
Parents:
4dc7a84
Message:

Autogenerate amd64 kernel context_t and its offsets.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/context.S

    r4dc7a84 r0aee9b4  
    3232.global context_restore_arch
    3333
    34 #include <arch/context_offset.h>
     34#include <arch/context_struct.h>
    3535
    3636## Save current CPU context
     
    4343       
    4444        # 1st argument passed in %edi
    45         CONTEXT_SAVE_ARCH_CORE %rdi %rdx
     45        movq %rdx, CONTEXT_OFFSET_PC(%rdi)
     46        movq %rsp, CONTEXT_OFFSET_SP(%rdi)
     47       
     48        movq %rbx, CONTEXT_OFFSET_RBX(%rdi)
     49        movq %rbp, CONTEXT_OFFSET_RBP(%rdi)
     50        movq %r12, CONTEXT_OFFSET_R12(%rdi)
     51        movq %r13, CONTEXT_OFFSET_R13(%rdi)
     52        movq %r14, CONTEXT_OFFSET_R14(%rdi)
     53        movq %r15, CONTEXT_OFFSET_R15(%rdi)
    4654       
    4755        xorl %eax, %eax       # context_save returns 1
     
    5664#
    5765context_restore_arch:
    58         CONTEXT_RESTORE_ARCH_CORE %rdi %rdx
     66        movq CONTEXT_OFFSET_R15(%rdi), %r15
     67        movq CONTEXT_OFFSET_R14(%rdi), %r14
     68        movq CONTEXT_OFFSET_R13(%rdi), %r13
     69        movq CONTEXT_OFFSET_R12(%rdi), %r12
     70        movq CONTEXT_OFFSET_RBP(%rdi), %rbp
     71        movq CONTEXT_OFFSET_RBX(%rdi), %rbx
     72       
     73        movq CONTEXT_OFFSET_SP(%rdi), %rsp   # ctx->sp -> %rsp
     74       
     75        movq CONTEXT_OFFSET_PC(%rdi), %rdx
    5976       
    6077        movq %rdx, (%rsp)
     
    6279        xorl %eax, %eax       # context_restore returns 0
    6380        ret
     81
Note: See TracChangeset for help on using the changeset viewer.