Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(asm)]
- pub struct Task {
- sp: *mut (),
- }
- pub unsafe fn switch(next: &Task, prev: &mut Task) { /* &mut is probably invalid in real code and would need to be *mut or something? */
- asm!("mov $0, rsp; mov rsp, $1": "=*m"(&mut prev.sp) : "*m"(&next.sp) :
- "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11",
- "r12", "r13", "r14", "r15" : "intel", "volatile")
- }
Add Comment
Please, Sign In to add comment