6# error "Only include common_imp.h or common_header.h!"
9static inline int pspGetK0(
void)
12 asm(
"move %0, $k0" :
"=r" (ret));
16static inline int pspGetK1(
void)
19 asm __volatile__(
"move %0, $k1" :
"=r" (ret));
23static inline void pspSetK1(
int k1)
25 asm __volatile__(
"move $k1, %0" : :
"r" (k1));
28static inline int pspShiftK1(
void)
30 int oldK1 = pspGetK1();
31 pspSetK1(oldK1 << 11);
35static inline int pspK1PtrOk(
const void *ptr)
37 return (((
int)ptr & pspGetK1()) >= 0);
41static inline int pspK1DynBufOk(
const void *ptr,
int size)
43 return (((((
int)ptr + size) | (
int)ptr | size) & pspGetK1()) >= 0);
47static inline int pspK1StaBufOk(
const void *ptr,
int size)
49 return (((((
int)ptr + size) | (
int)ptr) & pspGetK1()) >= 0);
52static inline int pspK1IsUserMode(
void)
54 return ((pspGetK1() >> 31) != 0);
57static inline int pspGetGp(
void)
60 asm(
"move %0, $gp" :
"=r" (gp));
64static inline int pspSetGp(
int gp)
67 asm(
"move %0, $gp" :
"=r" (oldGp));
68 asm(
"move $gp, %0" : :
"r" (gp));
72static inline int pspGetSp(
void)
75 asm(
"move %0, $sp" :
"=r" (sp));
79static inline void pspSetSp(
int sp)
81 asm(
"move $sp, %0" : :
"r" (sp));
84static inline int pspGetRa(
void)
87 asm(
"move %0, $ra" :
"=r" (ra));