X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6b995c8cb722d10aaacba52999f5c43e43daeb85..c7a60d29f54d6de10a8388d26af441c8bc48a803:/lunaix-os/arch/aarch64/includes/asm/hart.h diff --git a/lunaix-os/arch/aarch64/includes/asm/hart.h b/lunaix-os/arch/aarch64/includes/asm/hart.h index ae84ddd..fa1f4bf 100644 --- a/lunaix-os/arch/aarch64/includes/asm/hart.h +++ b/lunaix-os/arch/aarch64/includes/asm/hart.h @@ -15,7 +15,7 @@ struct regcontext union { reg_t x[31]; struct { - reg_t x[29]; + reg_t x_[29]; reg_t fp; reg_t lr; }; @@ -29,7 +29,7 @@ struct exec_param reg_t link; struct { reg_t sp_el0; - reg_t sp_el1; + reg_t rsvd; }; reg_t syndrome; @@ -73,10 +73,7 @@ hart_pc(struct hart_state* hstate) static inline ptr_t hart_sp(struct hart_state* hstate) { - if (spsr_from_el0(hstate->execp.spsr)) { - return hstate->execp.sp_el0; - } - return hstate->execp.sp_el1; + return __ptr(&hstate[-1]); } static inline bool