58static inline void rtps() {
asm volatile(
"cop2 0x0180001"); }
65static inline void rtpt() {
asm volatile(
"cop2 0x0280030"); }
72static inline void dpcl() {
asm volatile(
"cop2 0x0680029"); }
77static inline void dpcs() {
asm volatile(
"cop2 0x0780010"); }
84static inline void dpct() {
asm volatile(
"cop2 0x0f8002a"); }
89static inline void intpl() {
asm volatile(
"cop2 0x0980011"); }
94template <SF sf = Shifted>
95static inline void sqr() {
97 asm volatile(
"cop2 0x0a80428");
99 asm volatile(
"cop2 0x0a00428");
109static inline void ncs() {
asm volatile(
"cop2 0x0c8041e"); }
119static inline void nct() {
asm volatile(
"cop2 0x0d80420"); }
126static inline void ncds() {
asm volatile(
"cop2 0x0e80413"); }
139static inline void ncdt() {
asm volatile(
"cop2 0x0f80416"); }
146static inline void nccs() {
asm volatile(
"cop2 0x0108041b"); }
159static inline void ncct() {
asm volatile(
"cop2 0x0118043f"); }
165static inline void cdp() {
asm volatile(
"cop2 0x01280414"); }
171static inline void cc() {
asm volatile(
"cop2 0x0138041c"); }
179static inline void nclip() {
asm volatile(
"cop2 0x01400006"); }
186static inline void avsz3() {
asm volatile(
"cop2 0x0158002d"); }
191static inline void avsz4() {
asm volatile(
"cop2 0x0168002e"); }
198template <SF sf = Shifted>
199static inline void cp() {
201 asm volatile(
"cop2 0x0178000c");
203 asm volatile(
"cop2 0x0170000c");
212template <SF sf = Shifted>
213static inline void gpf() {
215 asm volatile(
"cop2 0x0198003d");
217 asm volatile(
"cop2 0x0190003d");
224template <SF sf = Shifted>
225static inline void gpl() {
227 asm volatile(
"cop2 0x01a8003e");
229 asm volatile(
"cop2 0x01a0003e");
248template <MX mx, MV v, TV cv = TV::Zero, SF sf = Shifted, LM lm = Unlimited>
252 asm volatile(
"cop2 %0" : :
"i"(op));
257static inline void rt() { mvmva<MX::RT, MV::V0, TV::TR>(); }
259static inline void ll() { mvmva<MX::LL, MV::V0, TV::Zero, SF::Shifted, LM::Limited>(); }
261static inline void lc() { mvmva<MX::LC, MV::IR, TV::BK, SF::Shifted, LM::Limited>(); }
263static inline void rtir_sf0() { mvmva<MX::RT, MV::IR, TV::Zero, SF::Unshifted>(); }
267static inline void rtv0() { mvmva<MX::RT, MV::V0, TV::Zero>(); }
269static inline void rtv1() { mvmva<MX::RT, MV::V1, TV::Zero>(); }
271static inline void rtv2() { mvmva<MX::RT, MV::V2, TV::Zero>(); }
273static inline void rtir() { mvmva<MX::RT, MV::IR, TV::Zero>(); }
275static inline void rtv0tr() { mvmva<MX::RT, MV::V0, TV::TR>(); }
277static inline void rtv1tr() { mvmva<MX::RT, MV::V1, TV::TR>(); }
279static inline void rtv2tr() { mvmva<MX::RT, MV::V2, TV::TR>(); }
281static inline void rtirtr() { mvmva<MX::RT, MV::IR, TV::TR>(); }
283static inline void rtv0bk() { mvmva<MX::RT, MV::V0, TV::BK>(); }
285static inline void rtv1bk() { mvmva<MX::RT, MV::V1, TV::BK>(); }
287static inline void rtv2bk() { mvmva<MX::RT, MV::V2, TV::BK>(); }
289static inline void rtirbk() { mvmva<MX::RT, MV::IR, TV::BK>(); }
291static inline void rtv0fc() { mvmva<MX::RT, MV::V0, TV::FC>(); }
293static inline void rtv1fc() { mvmva<MX::RT, MV::V1, TV::FC>(); }
295static inline void rtv2fc() { mvmva<MX::RT, MV::V2, TV::FC>(); }
297static inline void rtirfc() { mvmva<MX::RT, MV::IR, TV::FC>(); }
299static inline void llv0() { mvmva<MX::LL, MV::V0, TV::Zero>(); }
301static inline void llv1() { mvmva<MX::LL, MV::V1, TV::Zero>(); }
303static inline void llv2() { mvmva<MX::LL, MV::V2, TV::Zero>(); }
305static inline void llir() { mvmva<MX::LL, MV::IR, TV::Zero>(); }
307static inline void llv0tr() { mvmva<MX::LL, MV::V0, TV::TR>(); }
309static inline void llv1tr() { mvmva<MX::LL, MV::V1, TV::TR>(); }
311static inline void llv2tr() { mvmva<MX::LL, MV::V2, TV::TR>(); }
313static inline void llirtr() { mvmva<MX::LL, MV::IR, TV::TR>(); }
315static inline void llv0bk() { mvmva<MX::LL, MV::V0, TV::BK>(); }
317static inline void llv1bk() { mvmva<MX::LL, MV::V1, TV::BK>(); }
319static inline void llv2bk() { mvmva<MX::LL, MV::V2, TV::BK>(); }
321static inline void llirbk() { mvmva<MX::LL, MV::IR, TV::BK>(); }
323static inline void llv0fc() { mvmva<MX::LL, MV::V0, TV::FC>(); }
325static inline void llv1fc() { mvmva<MX::LL, MV::V1, TV::FC>(); }
327static inline void llv2fc() { mvmva<MX::LL, MV::V2, TV::FC>(); }
329static inline void llirfc() { mvmva<MX::LL, MV::IR, TV::FC>(); }
331static inline void lcv0() { mvmva<MX::LC, MV::V0, TV::Zero>(); }
333static inline void lcv1() { mvmva<MX::LC, MV::V1, TV::Zero>(); }
335static inline void lcv2() { mvmva<MX::LC, MV::V2, TV::Zero>(); }
337static inline void lcir() { mvmva<MX::LC, MV::IR, TV::Zero>(); }
339static inline void lcv0tr() { mvmva<MX::LC, MV::V0, TV::TR>(); }
341static inline void lcv1tr() { mvmva<MX::LC, MV::V1, TV::TR>(); }
343static inline void lcv2tr() { mvmva<MX::LC, MV::V2, TV::TR>(); }
345static inline void lcirtr() { mvmva<MX::LC, MV::IR, TV::TR>(); }
347static inline void lcv0bk() { mvmva<MX::LC, MV::V0, TV::BK>(); }
349static inline void lcv1bk() { mvmva<MX::LC, MV::V1, TV::BK>(); }
351static inline void lcv2bk() { mvmva<MX::LC, MV::V2, TV::BK>(); }
353static inline void lcirbk() { mvmva<MX::LC, MV::IR, TV::BK>(); }
355static inline void lcv0fc() { mvmva<MX::LC, MV::V0, TV::FC>(); }
357static inline void lcv1fc() { mvmva<MX::LC, MV::V1, TV::FC>(); }
359static inline void lcv2fc() { mvmva<MX::LC, MV::V2, TV::FC>(); }
361static inline void lcirfc() { mvmva<MX::LC, MV::IR, TV::FC>(); }