+static inline ptr_t must_inline
+abi_get_callframe()
+{
+ ptr_t val;
+ asm volatile("mov %0, fp" : "=r"(val));
+ return val;
+}
+
+static inline void must_inline
+j_usr(ptr_t sp, ptr_t pc)
+{
+ set_sysreg(SPSR_EL1, SPSR_EL0_preset);
+ set_sysreg(SP_EL0, sp);
+ set_sysreg(ELR_E1, pc);
+ asm ("eret");
+
+ unreachable;
+}
+