Sussy stuff

This commit is contained in:
Erin 2023-11-15 19:41:44 +01:00
parent d396da5f3c
commit b8ce78b6dd

View file

@ -21,7 +21,7 @@ type Vm = hbvm::Vm<mem::Memory, TIMER_QUOTIENT>;
pub struct ExecThread<'p> { pub struct ExecThread<'p> {
vm: Vm, vm: Vm,
stack_top: *mut u8, stack_bottom: *mut u8,
_phantom: PhantomData<&'p [u8]>, _phantom: PhantomData<&'p [u8]>,
} }
@ -40,12 +40,12 @@ impl<'p> ExecThread<'p> {
) )
}; };
let stack_top = unsafe { allocate_stack().as_ptr().add(STACK_SIZE - 1) }; let stack_bottom = unsafe { allocate_stack().as_ptr() };
vm.write_reg(254, stack_top as u64); vm.write_reg(254, (stack_bottom as usize + STACK_SIZE - 1) as u64);
ExecThread { ExecThread {
vm, vm,
stack_top, stack_bottom,
_phantom: Default::default(), _phantom: Default::default(),
} }
} }
@ -53,7 +53,7 @@ impl<'p> ExecThread<'p> {
impl<'p> Drop for ExecThread<'p> { impl<'p> Drop for ExecThread<'p> {
fn drop(&mut self) { fn drop(&mut self) {
unsafe { alloc::alloc::dealloc(self.stack_top.sub(STACK_SIZE - 1), stack_layout()) }; unsafe { alloc::alloc::dealloc(self.stack_bottom, stack_layout()) };
} }
} }