68 lines
1.1 KiB
C++
68 lines
1.1 KiB
C++
|
/*
|
||
|
** cpumac.h
|
||
|
mike acton
|
||
|
*/
|
||
|
|
||
|
// cpu_ldr(cpu register,data pointer)
|
||
|
// copy 32bit data from dp to r
|
||
|
#define cpu_ldr(r,dp)\
|
||
|
asm(\
|
||
|
"lw %0, 0(%1);"\
|
||
|
: "=r" (r)\
|
||
|
: "r" (dp)\
|
||
|
)
|
||
|
|
||
|
// cpu_gted0(cpu register)
|
||
|
// copy 32bit data from r to gte register 0
|
||
|
#define cpu_gted0(r)\
|
||
|
asm(\
|
||
|
"mtc2 %0, $0;"\
|
||
|
:\
|
||
|
: "r" (r)\
|
||
|
)
|
||
|
|
||
|
// cpu_gted1(cpu register)
|
||
|
// copy 32bit data from r to gte register 1
|
||
|
#define cpu_gted1(r)\
|
||
|
asm(\
|
||
|
"mtc2 %0, $1;"\
|
||
|
:\
|
||
|
: "r" (r)\
|
||
|
)
|
||
|
|
||
|
// cpu_gted2(cpu register)
|
||
|
// copy 32bit data from r to gte register 2
|
||
|
#define cpu_gted2(r)\
|
||
|
asm(\
|
||
|
"mtc2 %0, $2;"\
|
||
|
:\
|
||
|
: "r" (r)\
|
||
|
)
|
||
|
|
||
|
// cpu_gted3(cpu register)
|
||
|
// copy 32bit data from r to gte register 3
|
||
|
#define cpu_gted3(r)\
|
||
|
asm(\
|
||
|
"mtc2 %0, $3;"\
|
||
|
:\
|
||
|
: "r" (r)\
|
||
|
)
|
||
|
|
||
|
// cpu_gted4(cpu register)
|
||
|
// copy 32bit data from r to gte register 4
|
||
|
#define cpu_gted4(r)\
|
||
|
asm(\
|
||
|
"mtc2 %0, $4;"\
|
||
|
:\
|
||
|
: "r" (r)\
|
||
|
)
|
||
|
|
||
|
// cpu_gted5(cpu register)
|
||
|
// copy 32bit data from r to gte register 5
|
||
|
#define cpu_gted5(r)\
|
||
|
asm(\
|
||
|
"mtc2 %0, $5;"\
|
||
|
:\
|
||
|
: "r" (r)\
|
||
|
)
|