58static inline void rtps() {
60 asm volatile(
"cop2 0x0180001");
69static inline void rtpt() {
71 asm volatile(
"cop2 0x0280030");
80static inline void dpcl() {
82 asm volatile(
"cop2 0x0680029");
89static inline void dpcs() {
91 asm volatile(
"cop2 0x0780010");
100static inline void dpct() {
102 asm volatile(
"cop2 0x0f8002a");
109static inline void intpl() {
111 asm volatile(
"cop2 0x0980011");
118template <SF sf = Shifted>
119static inline void sqr() {
122 asm volatile(
"cop2 0x0a80428");
124 asm volatile(
"cop2 0x0a00428");
135static inline void ncs() {
137 asm volatile(
"cop2 0x0c8041e");
149static inline void nct() {
151 asm volatile(
"cop2 0x0d80420");
160static inline void ncds() {
162 asm volatile(
"cop2 0x0e80413");
177static inline void ncdt() {
179 asm volatile(
"cop2 0x0f80416");
188static inline void nccs() {
190 asm volatile(
"cop2 0x0108041b");
205static inline void ncct() {
207 asm volatile(
"cop2 0x0118043f");
215static inline void cdp() {
217 asm volatile(
"cop2 0x01280414");
225static inline void cc() {
227 asm volatile(
"cop2 0x0138041c");
237static inline void nclip() {
239 asm volatile(
"cop2 0x01400006");
248static inline void avsz3() {
250 asm volatile(
"cop2 0x0158002d");
257static inline void avsz4() {
259 asm volatile(
"cop2 0x0168002e");
268template <SF sf = Shifted>
269static inline void cp() {
272 asm volatile(
"cop2 0x0178000c");
274 asm volatile(
"cop2 0x0170000c");
284template <SF sf = Shifted>
285static inline void gpf() {
288 asm volatile(
"cop2 0x0198003d");
290 asm volatile(
"cop2 0x0190003d");
298template <SF sf = Shifted>
299static inline void gpl() {
302 asm volatile(
"cop2 0x01a8003e");
304 asm volatile(
"cop2 0x01a0003e");
324template <MX mx, MV v, TV cv = TV::Zero, SF sf = Shifted, LM lm = Unlimited>
329 asm volatile(
"cop2 %0" : :
"i"(op));
335static inline void rt() { mvmva<MX::RT, MV::V0, TV::TR>(); }
337static inline void ll() { mvmva<MX::LL, MV::V0, TV::Zero, SF::Shifted, LM::Limited>(); }
339static inline void lc() { mvmva<MX::LC, MV::IR, TV::BK, SF::Shifted, LM::Limited>(); }
341static inline void rtir_sf0() { mvmva<MX::RT, MV::IR, TV::Zero, SF::Unshifted>(); }
345static inline void rtv0() { mvmva<MX::RT, MV::V0, TV::Zero>(); }
347static inline void rtv1() { mvmva<MX::RT, MV::V1, TV::Zero>(); }
349static inline void rtv2() { mvmva<MX::RT, MV::V2, TV::Zero>(); }
351static inline void rtir() { mvmva<MX::RT, MV::IR, TV::Zero>(); }
353static inline void rtv0tr() { mvmva<MX::RT, MV::V0, TV::TR>(); }
355static inline void rtv1tr() { mvmva<MX::RT, MV::V1, TV::TR>(); }
357static inline void rtv2tr() { mvmva<MX::RT, MV::V2, TV::TR>(); }
359static inline void rtirtr() { mvmva<MX::RT, MV::IR, TV::TR>(); }
361static inline void rtv0bk() { mvmva<MX::RT, MV::V0, TV::BK>(); }
363static inline void rtv1bk() { mvmva<MX::RT, MV::V1, TV::BK>(); }
365static inline void rtv2bk() { mvmva<MX::RT, MV::V2, TV::BK>(); }
367static inline void rtirbk() { mvmva<MX::RT, MV::IR, TV::BK>(); }
369static inline void rtv0fc() { mvmva<MX::RT, MV::V0, TV::FC>(); }
371static inline void rtv1fc() { mvmva<MX::RT, MV::V1, TV::FC>(); }
373static inline void rtv2fc() { mvmva<MX::RT, MV::V2, TV::FC>(); }
375static inline void rtirfc() { mvmva<MX::RT, MV::IR, TV::FC>(); }
377static inline void llv0() { mvmva<MX::LL, MV::V0, TV::Zero>(); }
379static inline void llv1() { mvmva<MX::LL, MV::V1, TV::Zero>(); }
381static inline void llv2() { mvmva<MX::LL, MV::V2, TV::Zero>(); }
383static inline void llir() { mvmva<MX::LL, MV::IR, TV::Zero>(); }
385static inline void llv0tr() { mvmva<MX::LL, MV::V0, TV::TR>(); }
387static inline void llv1tr() { mvmva<MX::LL, MV::V1, TV::TR>(); }
389static inline void llv2tr() { mvmva<MX::LL, MV::V2, TV::TR>(); }
391static inline void llirtr() { mvmva<MX::LL, MV::IR, TV::TR>(); }
393static inline void llv0bk() { mvmva<MX::LL, MV::V0, TV::BK>(); }
395static inline void llv1bk() { mvmva<MX::LL, MV::V1, TV::BK>(); }
397static inline void llv2bk() { mvmva<MX::LL, MV::V2, TV::BK>(); }
399static inline void llirbk() { mvmva<MX::LL, MV::IR, TV::BK>(); }
401static inline void llv0fc() { mvmva<MX::LL, MV::V0, TV::FC>(); }
403static inline void llv1fc() { mvmva<MX::LL, MV::V1, TV::FC>(); }
405static inline void llv2fc() { mvmva<MX::LL, MV::V2, TV::FC>(); }
407static inline void llirfc() { mvmva<MX::LL, MV::IR, TV::FC>(); }
409static inline void lcv0() { mvmva<MX::LC, MV::V0, TV::Zero>(); }
411static inline void lcv1() { mvmva<MX::LC, MV::V1, TV::Zero>(); }
413static inline void lcv2() { mvmva<MX::LC, MV::V2, TV::Zero>(); }
415static inline void lcir() { mvmva<MX::LC, MV::IR, TV::Zero>(); }
417static inline void lcv0tr() { mvmva<MX::LC, MV::V0, TV::TR>(); }
419static inline void lcv1tr() { mvmva<MX::LC, MV::V1, TV::TR>(); }
421static inline void lcv2tr() { mvmva<MX::LC, MV::V2, TV::TR>(); }
423static inline void lcirtr() { mvmva<MX::LC, MV::IR, TV::TR>(); }
425static inline void lcv0bk() { mvmva<MX::LC, MV::V0, TV::BK>(); }
427static inline void lcv1bk() { mvmva<MX::LC, MV::V1, TV::BK>(); }
429static inline void lcv2bk() { mvmva<MX::LC, MV::V2, TV::BK>(); }
431static inline void lcirbk() { mvmva<MX::LC, MV::IR, TV::BK>(); }
433static inline void lcv0fc() { mvmva<MX::LC, MV::V0, TV::FC>(); }
435static inline void lcv1fc() { mvmva<MX::LC, MV::V1, TV::FC>(); }
437static inline void lcv2fc() { mvmva<MX::LC, MV::V2, TV::FC>(); }
439static inline void lcirfc() { mvmva<MX::LC, MV::IR, TV::FC>(); }