Guest User

Untitled

a guest
Dec 12th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.37 KB | None | 0 0
  1. #![feature(asm)]
  2. pub struct Task {
  3. sp: *mut (),
  4. }
  5.  
  6. pub unsafe fn switch(next: &Task, prev: &mut Task) { /* &mut is probably invalid in real code and would need to be *mut or something? */
  7. asm!("mov $0, rsp; mov rsp, $1": "=*m"(&mut prev.sp) : "*m"(&next.sp) :
  8. "rcx", "rbx", "rdx", "r8", "r9", "r10", "r11",
  9. "r12", "r13", "r14", "r15" : "intel", "volatile")
  10. }
Add Comment
Please, Sign In to add comment