diff --git a/Kernel/Arch/aarch64/RegisterState.h b/Kernel/Arch/aarch64/RegisterState.h index 40edbf2d99..279e237c68 100644 --- a/Kernel/Arch/aarch64/RegisterState.h +++ b/Kernel/Arch/aarch64/RegisterState.h @@ -24,14 +24,12 @@ struct RegisterState { FlatPtr userspace_sp() const { return sp_el0; } void set_userspace_sp(FlatPtr value) { - (void)value; - TODO_AARCH64(); + sp_el0 = value; } FlatPtr ip() const { return elr_el1; } void set_ip(FlatPtr value) { - (void)value; - TODO_AARCH64(); + elr_el1 = value; } FlatPtr bp() const { return x[29]; } diff --git a/Kernel/Arch/aarch64/ThreadRegisters.h b/Kernel/Arch/aarch64/ThreadRegisters.h index 217f446c99..94130cfeff 100644 --- a/Kernel/Arch/aarch64/ThreadRegisters.h +++ b/Kernel/Arch/aarch64/ThreadRegisters.h @@ -22,6 +22,7 @@ struct ThreadRegisters { FlatPtr ip() const { return elr_el1; } void set_ip(FlatPtr value) { elr_el1 = value; } + FlatPtr sp() const { return sp_el0; } void set_sp(FlatPtr value) { sp_el0 = value; } void set_initial_state(bool is_kernel_process, Memory::AddressSpace& space, FlatPtr kernel_stack_top)