LibXenon
Bare-metal Xbox 360 homebrew library
Loading...
Searching...
No Matches
register.h
Go to the documentation of this file.
1#ifndef __ppc_register_h
2#define __ppc_register_h
3
4#include "xenonsprs.h"
5
6#define __stringify(rn) #rn
7
8#define mfmsr() ({unsigned long long rval; \
9 asm volatile("mfmsr %0" : "=r" (rval)); rval;})
10#define mtmsr(v) asm volatile("mtmsr %0" : : "r" (v))
11
12#define mfdec() ({unsigned int rval; \
13 asm volatile("mfdec %0" : "=r" (rval)); rval;})
14#define mtdec(v) asm volatile("mtdec %0" : : "r" (v))
15
16#define mfspr(rn) ({unsigned int rval; \
17 asm volatile("mfspr %0," __stringify(rn) \
18 : "=r" (rval)); rval;})
19
20#define mfspr64(rn) ({unsigned long long rval; \
21 asm volatile("mfspr %0," __stringify(rn) \
22 : "=r" (rval)); rval;})
23
24#define mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : : "r" (v))
25
26#endif