1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include "jove.h" __attribute__((noreturn)) void usermode(void *ip, void *sp) { __asm__ volatile("mov %0, %%rsp; \ movq %1, %%rcx; \ movq $0x202, %%r11; \ cli; \ swapgs; \ sysretq":: "r"(sp), "r"(ip): "memory"); hcf(); }