Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Macros
cop2.h File Reference
#include <stdint.h>
Include dependency graph for cop2.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define COP2_SF_SHIFT   19
 
#define COP2_MX_SHIFT   17
 
#define COP2_V_SHIFT   15
 
#define COP2_CV_SHIFT   13
 
#define COP2_LM_SHIFT   10
 
#define COP2_SF0   0
 
#define COP2_SF1   1
 
#define COP2_MX_RT   0
 
#define COP2_MX_LL   1
 
#define COP2_MX_LC   2
 
#define COP2_MX_BAD   3
 
#define COP2_V_V0   0
 
#define COP2_V_V1   1
 
#define COP2_V_V2   2
 
#define COP2_V_IR   3
 
#define COP2_CV_TR   0
 
#define COP2_CV_BK   1
 
#define COP2_CV_FC   2
 
#define COP2_CV_NONE   3
 
#define COP2_LM_SIGNED   0
 
#define COP2_LM_UNSIGNED   1
 
#define COP2_FN_RTPS   0x01
 
#define COP2_FN_NCLIP   0x06
 
#define COP2_FN_OP   0x0c
 
#define COP2_FN_DPCS   0x10
 
#define COP2_FN_INTPL   0x11
 
#define COP2_FN_MVMVA   0x12
 
#define COP2_FN_NCDS   0x13
 
#define COP2_FN_CDP   0x14
 
#define COP2_FN_NCDT   0x16
 
#define COP2_FN_NCCS   0x1b
 
#define COP2_FN_CC   0x1c
 
#define COP2_FN_NCS   0x1e
 
#define COP2_FN_NCT   0x20
 
#define COP2_FN_SQR   0x28
 
#define COP2_FN_DCPL   0x29
 
#define COP2_FN_DPCT   0x2a
 
#define COP2_FN_AVSZ3   0x2d
 
#define COP2_FN_AVSZ4   0x2e
 
#define COP2_FN_RTPT   0x30
 
#define COP2_FN_GPF   0x3d
 
#define COP2_FN_GPL   0x3e
 
#define COP2_FN_NCCT   0x3f
 
#define COP2_OP(fake, sf, mx, v, cv, lm, fn)
 
#define COP2_RTPS(sf, lm)   COP2_OP( 1, sf, 0, 0, 0, lm, COP2_FN_RTPS)
 
#define COP2_RTPT(sf, lm)   COP2_OP( 2, sf, 0, 0, 0, lm, COP2_FN_RTPT)
 
#define COP2_NCLIP   COP2_OP(20, 0, 0, 0, 0, 0, COP2_FN_NCLIP)
 
#define COP2_OP_CP(sf, lm)   COP2_OP(23, sf, 0, 0, 0, lm, COP2_FN_OP)
 
#define COP2_DPCS(sf, lm)   COP2_OP( 7, sf, 0, 0, 0, lm, COP2_FN_DPCS)
 
#define COP2_DPCT(sf, lm)   COP2_OP(15, sf, 0, 0, 0, lm, COP2_FN_DPCT)
 
#define COP2_DCPL(sf, lm)   COP2_OP( 6, sf, 0, 0, 0, lm, COP2_FN_DCPL)
 
#define COP2_INTPL(sf, lm)   COP2_OP( 9, sf, 0, 0, 0, lm, COP2_FN_INTPL)
 
#define COP2_MVMVA(sf, mx, v, cv, lm)    COP2_OP(4, sf, mx, v, cv, lm, COP2_FN_MVMVA)
 
#define COP2_NCS(sf, lm)   COP2_OP(12, sf, 0, 0, 0, lm, COP2_FN_NCS)
 
#define COP2_NCT(sf, lm)   COP2_OP(13, sf, 0, 0, 0, lm, COP2_FN_NCT)
 
#define COP2_NCCS(sf, lm)   COP2_OP(16, sf, 0, 0, 0, lm, COP2_FN_NCCS)
 
#define COP2_NCCT(sf, lm)   COP2_OP(17, sf, 0, 0, 0, lm, COP2_FN_NCCT)
 
#define COP2_NCDS(sf, lm)   COP2_OP(14, sf, 0, 0, 0, lm, COP2_FN_NCDS)
 
#define COP2_NCDT(sf, lm)   COP2_OP(15, sf, 0, 0, 0, lm, COP2_FN_NCDT)
 
#define COP2_CC(sf, lm)   COP2_OP(19, sf, 0, 0, 0, lm, COP2_FN_CC)
 
#define COP2_CDP(sf, lm)   COP2_OP(18, sf, 0, 0, 0, lm, COP2_FN_CDP)
 
#define COP2_SQR(sf, lm)   COP2_OP(10, sf, 0, 0, 0, lm, COP2_FN_SQR)
 
#define COP2_AVSZ3   COP2_OP(21, 1, 0, 0, 0, 0, COP2_FN_AVSZ3)
 
#define COP2_AVSZ4   COP2_OP(22, 1, 0, 0, 0, 0, COP2_FN_AVSZ4)
 
#define COP2_GPF(sf, lm)   COP2_OP(25, sf, 0, 0, 0, lm, COP2_FN_GPF)
 
#define COP2_GPL(sf, lm)   COP2_OP(26, sf, 0, 0, 0, lm, COP2_FN_GPL)
 
#define cop2_cmd(op)   __asm__ volatile("cop2 %0" : : "i"(op))
 
#define COP2_STRINGIFY_(x)   #x
 
#define COP2_STRINGIFY(x)   COP2_STRINGIFY_(x)
 
#define cop2_put(reg, val)
 
#define cop2_get(reg, dest)
 
#define cop2_putc(reg, val)
 
#define cop2_getc(reg, dest)
 
#define COP2_VXY0   0
 
#define COP2_VZ0   1
 
#define COP2_VXY1   2
 
#define COP2_VZ1   3
 
#define COP2_VXY2   4
 
#define COP2_VZ2   5
 
#define COP2_RGBC   6
 
#define COP2_OTZ   7
 
#define COP2_IR0   8
 
#define COP2_IR1   9
 
#define COP2_IR2   10
 
#define COP2_IR3   11
 
#define COP2_SXY0   12
 
#define COP2_SXY1   13
 
#define COP2_SXY2   14
 
#define COP2_SXYP   15
 
#define COP2_SZ0   16
 
#define COP2_SZ1   17
 
#define COP2_SZ2   18
 
#define COP2_SZ3   19
 
#define COP2_RGB0   20
 
#define COP2_RGB1   21
 
#define COP2_RGB2   22
 
#define COP2_RES1   23
 
#define COP2_MAC0   24
 
#define COP2_MAC1   25
 
#define COP2_MAC2   26
 
#define COP2_MAC3   27
 
#define COP2_IRGB   28
 
#define COP2_ORGB   29
 
#define COP2_LZCS   30
 
#define COP2_LZCR   31
 
#define COP2_R11R12   0
 
#define COP2_R13R21   1
 
#define COP2_R22R23   2
 
#define COP2_R31R32   3
 
#define COP2_R33   4
 
#define COP2_TRX   5
 
#define COP2_TRY   6
 
#define COP2_TRZ   7
 
#define COP2_L11L12   8
 
#define COP2_L13L21   9
 
#define COP2_L22L23   10
 
#define COP2_L31L32   11
 
#define COP2_L33   12
 
#define COP2_RBK   13
 
#define COP2_GBK   14
 
#define COP2_BBK   15
 
#define COP2_LR1LR2   16
 
#define COP2_LR3LG1   17
 
#define COP2_LG2LG3   18
 
#define COP2_LB1LB2   19
 
#define COP2_LB3   20
 
#define COP2_RFC   21
 
#define COP2_GFC   22
 
#define COP2_BFC   23
 
#define COP2_OFX   24
 
#define COP2_OFY   25
 
#define COP2_H   26
 
#define COP2_DQA   27
 
#define COP2_DQB   28
 
#define COP2_ZSF3   29
 
#define COP2_ZSF4   30
 
#define COP2_FLAG   31
 
#define COP2_FLAG_MAC1_OVER_POS   (1u << 30)
 
#define COP2_FLAG_MAC2_OVER_POS   (1u << 29)
 
#define COP2_FLAG_MAC3_OVER_POS   (1u << 28)
 
#define COP2_FLAG_MAC1_OVER_NEG   (1u << 27)
 
#define COP2_FLAG_MAC2_OVER_NEG   (1u << 26)
 
#define COP2_FLAG_MAC3_OVER_NEG   (1u << 25)
 
#define COP2_FLAG_IR1_SAT   (1u << 24)
 
#define COP2_FLAG_IR2_SAT   (1u << 23)
 
#define COP2_FLAG_IR3_SAT   (1u << 22)
 
#define COP2_FLAG_COLOR_R_SAT   (1u << 21)
 
#define COP2_FLAG_COLOR_G_SAT   (1u << 20)
 
#define COP2_FLAG_COLOR_B_SAT   (1u << 19)
 
#define COP2_FLAG_SZ3_OTZ_SAT   (1u << 18)
 
#define COP2_FLAG_DIV_OVERFLOW   (1u << 17)
 
#define COP2_FLAG_MAC0_OVER_POS   (1u << 16)
 
#define COP2_FLAG_MAC0_OVER_NEG   (1u << 15)
 
#define COP2_FLAG_SX2_SAT   (1u << 14)
 
#define COP2_FLAG_SY2_SAT   (1u << 13)
 
#define COP2_FLAG_IR0_SAT   (1u << 12)
 
#define COP2_FLAG_ERROR   (1u << 31)
 

Macro Definition Documentation

◆ COP2_AVSZ3

#define COP2_AVSZ3   COP2_OP(21, 1, 0, 0, 0, 0, COP2_FN_AVSZ3)

◆ COP2_AVSZ4

#define COP2_AVSZ4   COP2_OP(22, 1, 0, 0, 0, 0, COP2_FN_AVSZ4)

◆ COP2_BBK

#define COP2_BBK   15

◆ COP2_BFC

#define COP2_BFC   23

◆ COP2_CC

#define COP2_CC (   sf,
  lm 
)    COP2_OP(19, sf, 0, 0, 0, lm, COP2_FN_CC)

◆ COP2_CDP

#define COP2_CDP (   sf,
  lm 
)    COP2_OP(18, sf, 0, 0, 0, lm, COP2_FN_CDP)

◆ cop2_cmd

#define cop2_cmd (   op)    __asm__ volatile("cop2 %0" : : "i"(op))

◆ COP2_CV_BK

#define COP2_CV_BK   1

◆ COP2_CV_FC

#define COP2_CV_FC   2

◆ COP2_CV_NONE

#define COP2_CV_NONE   3

◆ COP2_CV_SHIFT

#define COP2_CV_SHIFT   13

◆ COP2_CV_TR

#define COP2_CV_TR   0

◆ COP2_DCPL

#define COP2_DCPL (   sf,
  lm 
)    COP2_OP( 6, sf, 0, 0, 0, lm, COP2_FN_DCPL)

◆ COP2_DPCS

#define COP2_DPCS (   sf,
  lm 
)    COP2_OP( 7, sf, 0, 0, 0, lm, COP2_FN_DPCS)

◆ COP2_DPCT

#define COP2_DPCT (   sf,
  lm 
)    COP2_OP(15, sf, 0, 0, 0, lm, COP2_FN_DPCT)

◆ COP2_DQA

#define COP2_DQA   27

◆ COP2_DQB

#define COP2_DQB   28

◆ COP2_FLAG

#define COP2_FLAG   31

◆ COP2_FLAG_COLOR_B_SAT

#define COP2_FLAG_COLOR_B_SAT   (1u << 19)

◆ COP2_FLAG_COLOR_G_SAT

#define COP2_FLAG_COLOR_G_SAT   (1u << 20)

◆ COP2_FLAG_COLOR_R_SAT

#define COP2_FLAG_COLOR_R_SAT   (1u << 21)

◆ COP2_FLAG_DIV_OVERFLOW

#define COP2_FLAG_DIV_OVERFLOW   (1u << 17)

◆ COP2_FLAG_ERROR

#define COP2_FLAG_ERROR   (1u << 31)

◆ COP2_FLAG_IR0_SAT

#define COP2_FLAG_IR0_SAT   (1u << 12)

◆ COP2_FLAG_IR1_SAT

#define COP2_FLAG_IR1_SAT   (1u << 24)

◆ COP2_FLAG_IR2_SAT

#define COP2_FLAG_IR2_SAT   (1u << 23)

◆ COP2_FLAG_IR3_SAT

#define COP2_FLAG_IR3_SAT   (1u << 22)

◆ COP2_FLAG_MAC0_OVER_NEG

#define COP2_FLAG_MAC0_OVER_NEG   (1u << 15)

◆ COP2_FLAG_MAC0_OVER_POS

#define COP2_FLAG_MAC0_OVER_POS   (1u << 16)

◆ COP2_FLAG_MAC1_OVER_NEG

#define COP2_FLAG_MAC1_OVER_NEG   (1u << 27)

◆ COP2_FLAG_MAC1_OVER_POS

#define COP2_FLAG_MAC1_OVER_POS   (1u << 30)

◆ COP2_FLAG_MAC2_OVER_NEG

#define COP2_FLAG_MAC2_OVER_NEG   (1u << 26)

◆ COP2_FLAG_MAC2_OVER_POS

#define COP2_FLAG_MAC2_OVER_POS   (1u << 29)

◆ COP2_FLAG_MAC3_OVER_NEG

#define COP2_FLAG_MAC3_OVER_NEG   (1u << 25)

◆ COP2_FLAG_MAC3_OVER_POS

#define COP2_FLAG_MAC3_OVER_POS   (1u << 28)

◆ COP2_FLAG_SX2_SAT

#define COP2_FLAG_SX2_SAT   (1u << 14)

◆ COP2_FLAG_SY2_SAT

#define COP2_FLAG_SY2_SAT   (1u << 13)

◆ COP2_FLAG_SZ3_OTZ_SAT

#define COP2_FLAG_SZ3_OTZ_SAT   (1u << 18)

◆ COP2_FN_AVSZ3

#define COP2_FN_AVSZ3   0x2d

◆ COP2_FN_AVSZ4

#define COP2_FN_AVSZ4   0x2e

◆ COP2_FN_CC

#define COP2_FN_CC   0x1c

◆ COP2_FN_CDP

#define COP2_FN_CDP   0x14

◆ COP2_FN_DCPL

#define COP2_FN_DCPL   0x29

◆ COP2_FN_DPCS

#define COP2_FN_DPCS   0x10

◆ COP2_FN_DPCT

#define COP2_FN_DPCT   0x2a

◆ COP2_FN_GPF

#define COP2_FN_GPF   0x3d

◆ COP2_FN_GPL

#define COP2_FN_GPL   0x3e

◆ COP2_FN_INTPL

#define COP2_FN_INTPL   0x11

◆ COP2_FN_MVMVA

#define COP2_FN_MVMVA   0x12

◆ COP2_FN_NCCS

#define COP2_FN_NCCS   0x1b

◆ COP2_FN_NCCT

#define COP2_FN_NCCT   0x3f

◆ COP2_FN_NCDS

#define COP2_FN_NCDS   0x13

◆ COP2_FN_NCDT

#define COP2_FN_NCDT   0x16

◆ COP2_FN_NCLIP

#define COP2_FN_NCLIP   0x06

◆ COP2_FN_NCS

#define COP2_FN_NCS   0x1e

◆ COP2_FN_NCT

#define COP2_FN_NCT   0x20

◆ COP2_FN_OP

#define COP2_FN_OP   0x0c

◆ COP2_FN_RTPS

#define COP2_FN_RTPS   0x01

◆ COP2_FN_RTPT

#define COP2_FN_RTPT   0x30

◆ COP2_FN_SQR

#define COP2_FN_SQR   0x28

◆ COP2_GBK

#define COP2_GBK   14

◆ cop2_get

#define cop2_get (   reg,
  dest 
)
Value:
do { \
__asm__ volatile("mfc2 %0, $" COP2_STRINGIFY(reg) \
"\n\tnop\n\tnop" \
: "=r"(dest)); \
} while (0)
#define COP2_STRINGIFY(x)
Definition cop2.h:186
__asm__(" .section .text.monitorSlotEntry, \"ax\", @progbits\n" " .align 2\n" " .global monitorSlotEntry\n" " .type monitorSlotEntry, @function\n" " .set push\n" " .set noreorder\n" " .set noat\n" "monitorSlotEntry:\n" " mfc0 $v0, $13\n" " nop\n" " andi $v0, $v0, 0x7c\n" " beqz $v0, 1f\n" " srl $v0, $v0, 2\n" " li $v1, " MON_STR(MON_SLOT_EXCMASK) "\n" " srlv $v1, $v1, $v0\n" " andi $v1, $v1, 1\n" " bnez $v1, 2f\n" " nop\n" " jr $ra\n" " nop\n" "1:\n" MON_SLOT_RX_TEST " jr $ra\n" " nop\n" "2:\n" " sw $a0, 0x10($k0)\n" " sw $a1, 0x14($k0)\n" " sw $a2, 0x18($k0)\n" " sw $a3, 0x1c($k0)\n" " mfc0 $a0, $12\n" " nop\n" " sw $a0, 0x8c($k0)\n" " mfc0 $a1, $13\n" " nop\n" " sw $a1, 0x90($k0)\n" " sw $k1, 0x6c($k0)\n" " sw $s0, 0x40($k0)\n" " sw $s1, 0x44($k0)\n" " sw $s2, 0x48($k0)\n" " sw $s3, 0x4c($k0)\n" " sw $s4, 0x50($k0)\n" " sw $s5, 0x54($k0)\n" " sw $s6, 0x58($k0)\n" " sw $s7, 0x5c($k0)\n" " sw $t0, 0x20($k0)\n" " sw $t1, 0x24($k0)\n" " sw $t2, 0x28($k0)\n" " sw $t3, 0x2c($k0)\n" " sw $t4, 0x30($k0)\n" " sw $t5, 0x34($k0)\n" " sw $t6, 0x38($k0)\n" " sw $t7, 0x3c($k0)\n" " sw $t8, 0x60($k0)\n" " sw $t9, 0x64($k0)\n" " sw $gp, 0x70($k0)\n" " sw $sp, 0x74($k0)\n" " sw $fp, 0x78($k0)\n" " mfhi $a0\n" " nop\n" " sw $a0, 0x84($k0)\n" " mflo $a0\n" " nop\n" " sw $a0, 0x88($k0)\n" " move $s0, $ra\n" " la $sp, monitorSlotStack + " MON_STR(MONITOR_SLOT_STACK_WORDS) " * 4 - 16\n" " jal monitorSlotDispatch\n" " nop\n" " lw $k0, 0x108($zero)\n" " move $ra, $s0\n" " lw $k0, 0($k0)\n" " nop\n" " addiu $k0, $k0, 8\n" " lw $a0, 0x84($k0)\n" " lw $a1, 0x88($k0)\n" " mthi $a0\n" " mtlo $a1\n" " lw $a0, 0x10($k0)\n" " lw $a1, 0x14($k0)\n" " lw $a2, 0x18($k0)\n" " lw $a3, 0x1c($k0)\n" " lw $t0, 0x20($k0)\n" " lw $t1, 0x24($k0)\n" " lw $t2, 0x28($k0)\n" " lw $t3, 0x2c($k0)\n" " lw $t4, 0x30($k0)\n" " lw $t5, 0x34($k0)\n" " lw $t6, 0x38($k0)\n" " lw $t7, 0x3c($k0)\n" " lw $t8, 0x60($k0)\n" " lw $t9, 0x64($k0)\n" " lw $s0, 0x40($k0)\n" " lw $sp, 0x74($k0)\n" " jr $ra\n" " nop\n" " .set pop\n" " .size monitorSlotEntry, . - monitorSlotEntry\n" " .previous\n")

◆ cop2_getc

#define cop2_getc (   reg,
  dest 
)
Value:
do { \
__asm__ volatile("cfc2 %0, $" COP2_STRINGIFY(reg) \
"\n\tnop\n\tnop" \
: "=r"(dest)); \
} while (0)

◆ COP2_GFC

#define COP2_GFC   22

◆ COP2_GPF

#define COP2_GPF (   sf,
  lm 
)    COP2_OP(25, sf, 0, 0, 0, lm, COP2_FN_GPF)

◆ COP2_GPL

#define COP2_GPL (   sf,
  lm 
)    COP2_OP(26, sf, 0, 0, 0, lm, COP2_FN_GPL)

◆ COP2_H

#define COP2_H   26

◆ COP2_INTPL

#define COP2_INTPL (   sf,
  lm 
)    COP2_OP( 9, sf, 0, 0, 0, lm, COP2_FN_INTPL)

◆ COP2_IR0

#define COP2_IR0   8

◆ COP2_IR1

#define COP2_IR1   9

◆ COP2_IR2

#define COP2_IR2   10

◆ COP2_IR3

#define COP2_IR3   11

◆ COP2_IRGB

#define COP2_IRGB   28

◆ COP2_L11L12

#define COP2_L11L12   8

◆ COP2_L13L21

#define COP2_L13L21   9

◆ COP2_L22L23

#define COP2_L22L23   10

◆ COP2_L31L32

#define COP2_L31L32   11

◆ COP2_L33

#define COP2_L33   12

◆ COP2_LB1LB2

#define COP2_LB1LB2   19

◆ COP2_LB3

#define COP2_LB3   20

◆ COP2_LG2LG3

#define COP2_LG2LG3   18

◆ COP2_LM_SHIFT

#define COP2_LM_SHIFT   10

◆ COP2_LM_SIGNED

#define COP2_LM_SIGNED   0

◆ COP2_LM_UNSIGNED

#define COP2_LM_UNSIGNED   1

◆ COP2_LR1LR2

#define COP2_LR1LR2   16

◆ COP2_LR3LG1

#define COP2_LR3LG1   17

◆ COP2_LZCR

#define COP2_LZCR   31

◆ COP2_LZCS

#define COP2_LZCS   30

◆ COP2_MAC0

#define COP2_MAC0   24

◆ COP2_MAC1

#define COP2_MAC1   25

◆ COP2_MAC2

#define COP2_MAC2   26

◆ COP2_MAC3

#define COP2_MAC3   27

◆ COP2_MVMVA

#define COP2_MVMVA (   sf,
  mx,
  v,
  cv,
  lm 
)     COP2_OP(4, sf, mx, v, cv, lm, COP2_FN_MVMVA)

◆ COP2_MX_BAD

#define COP2_MX_BAD   3

◆ COP2_MX_LC

#define COP2_MX_LC   2

◆ COP2_MX_LL

#define COP2_MX_LL   1

◆ COP2_MX_RT

#define COP2_MX_RT   0

◆ COP2_MX_SHIFT

#define COP2_MX_SHIFT   17

◆ COP2_NCCS

#define COP2_NCCS (   sf,
  lm 
)    COP2_OP(16, sf, 0, 0, 0, lm, COP2_FN_NCCS)

◆ COP2_NCCT

#define COP2_NCCT (   sf,
  lm 
)    COP2_OP(17, sf, 0, 0, 0, lm, COP2_FN_NCCT)

◆ COP2_NCDS

#define COP2_NCDS (   sf,
  lm 
)    COP2_OP(14, sf, 0, 0, 0, lm, COP2_FN_NCDS)

◆ COP2_NCDT

#define COP2_NCDT (   sf,
  lm 
)    COP2_OP(15, sf, 0, 0, 0, lm, COP2_FN_NCDT)

◆ COP2_NCLIP

#define COP2_NCLIP   COP2_OP(20, 0, 0, 0, 0, 0, COP2_FN_NCLIP)

◆ COP2_NCS

#define COP2_NCS (   sf,
  lm 
)    COP2_OP(12, sf, 0, 0, 0, lm, COP2_FN_NCS)

◆ COP2_NCT

#define COP2_NCT (   sf,
  lm 
)    COP2_OP(13, sf, 0, 0, 0, lm, COP2_FN_NCT)

◆ COP2_OFX

#define COP2_OFX   24

◆ COP2_OFY

#define COP2_OFY   25

◆ COP2_OP

#define COP2_OP (   fake,
  sf,
  mx,
  v,
  cv,
  lm,
  fn 
)
Value:
(((fake) << 20) | ((sf) << COP2_SF_SHIFT) | ((mx) << COP2_MX_SHIFT) | \
((v) << COP2_V_SHIFT) | ((cv) << COP2_CV_SHIFT) | \
((lm) << COP2_LM_SHIFT) | (fn))
#define COP2_V_SHIFT
Definition cop2.h:55
#define COP2_MX_SHIFT
Definition cop2.h:54
#define COP2_CV_SHIFT
Definition cop2.h:56
#define COP2_LM_SHIFT
Definition cop2.h:57
#define COP2_SF_SHIFT
Definition cop2.h:53

◆ COP2_OP_CP

#define COP2_OP_CP (   sf,
  lm 
)    COP2_OP(23, sf, 0, 0, 0, lm, COP2_FN_OP)

◆ COP2_ORGB

#define COP2_ORGB   29

◆ COP2_OTZ

#define COP2_OTZ   7

◆ cop2_put

#define cop2_put (   reg,
  val 
)
Value:
do { \
uint32_t _cop2_val = (val); \
__asm__ volatile("mtc2 %0, $" COP2_STRINGIFY(reg) \
"\n\tnop\n\tnop" \
: : "r"(_cop2_val)); \
} while (0)
uint16_t val
Definition timers.c:319

◆ cop2_putc

#define cop2_putc (   reg,
  val 
)
Value:
do { \
uint32_t _cop2_val = (val); \
__asm__ volatile("ctc2 %0, $" COP2_STRINGIFY(reg) \
"\n\tnop\n\tnop" \
: : "r"(_cop2_val)); \
} while (0)

◆ COP2_R11R12

#define COP2_R11R12   0

◆ COP2_R13R21

#define COP2_R13R21   1

◆ COP2_R22R23

#define COP2_R22R23   2

◆ COP2_R31R32

#define COP2_R31R32   3

◆ COP2_R33

#define COP2_R33   4

◆ COP2_RBK

#define COP2_RBK   13

◆ COP2_RES1

#define COP2_RES1   23

◆ COP2_RFC

#define COP2_RFC   21

◆ COP2_RGB0

#define COP2_RGB0   20

◆ COP2_RGB1

#define COP2_RGB1   21

◆ COP2_RGB2

#define COP2_RGB2   22

◆ COP2_RGBC

#define COP2_RGBC   6

◆ COP2_RTPS

#define COP2_RTPS (   sf,
  lm 
)    COP2_OP( 1, sf, 0, 0, 0, lm, COP2_FN_RTPS)

◆ COP2_RTPT

#define COP2_RTPT (   sf,
  lm 
)    COP2_OP( 2, sf, 0, 0, 0, lm, COP2_FN_RTPT)

◆ COP2_SF0

#define COP2_SF0   0

◆ COP2_SF1

#define COP2_SF1   1

◆ COP2_SF_SHIFT

#define COP2_SF_SHIFT   19

◆ COP2_SQR

#define COP2_SQR (   sf,
  lm 
)    COP2_OP(10, sf, 0, 0, 0, lm, COP2_FN_SQR)

◆ COP2_STRINGIFY

#define COP2_STRINGIFY (   x)    COP2_STRINGIFY_(x)

◆ COP2_STRINGIFY_

#define COP2_STRINGIFY_ (   x)    #x

◆ COP2_SXY0

#define COP2_SXY0   12

◆ COP2_SXY1

#define COP2_SXY1   13

◆ COP2_SXY2

#define COP2_SXY2   14

◆ COP2_SXYP

#define COP2_SXYP   15

◆ COP2_SZ0

#define COP2_SZ0   16

◆ COP2_SZ1

#define COP2_SZ1   17

◆ COP2_SZ2

#define COP2_SZ2   18

◆ COP2_SZ3

#define COP2_SZ3   19

◆ COP2_TRX

#define COP2_TRX   5

◆ COP2_TRY

#define COP2_TRY   6

◆ COP2_TRZ

#define COP2_TRZ   7

◆ COP2_V_IR

#define COP2_V_IR   3

◆ COP2_V_SHIFT

#define COP2_V_SHIFT   15

◆ COP2_V_V0

#define COP2_V_V0   0

◆ COP2_V_V1

#define COP2_V_V1   1

◆ COP2_V_V2

#define COP2_V_V2   2

◆ COP2_VXY0

#define COP2_VXY0   0

◆ COP2_VXY1

#define COP2_VXY1   2

◆ COP2_VXY2

#define COP2_VXY2   4

◆ COP2_VZ0

#define COP2_VZ0   1

◆ COP2_VZ1

#define COP2_VZ1   3

◆ COP2_VZ2

#define COP2_VZ2   5

◆ COP2_ZSF3

#define COP2_ZSF3   29

◆ COP2_ZSF4

#define COP2_ZSF4   30