Nugget
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_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, $" #reg \
"\n\tnop\n\tnop" \
: "=r"(dest)); \
} while (0)

◆ cop2_getc

#define cop2_getc (   reg,
  dest 
)
Value:
do { \
__asm__ volatile("cfc2 %0, $" #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 _v = (val); \
__asm__ volatile("mtc2 %0, $" #reg \
"\n\tnop\n\tnop" \
: : "r"(_v)); \
} while (0)
void uint32_t(classId, spec)
uint16_t val
Definition timers.c:319

◆ cop2_putc

#define cop2_putc (   reg,
  val 
)
Value:
do { \
uint32_t _v = (val); \
__asm__ volatile("ctc2 %0, $" #reg \
"\n\tnop\n\tnop" \
: : "r"(_v)); \
} 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_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