Propeller 2 Docs
HyperJump ready!
Home
/ p2_opmatrix.html
P2 Opcode matrix
xxxx000
xxxx001
xxxx010
xxxx011
xxxx100
xxxx101
xxxx110
xxxx111
0000xxx
NOP
/
ROR
ROL
SHR
SHL
RCR
RCL
SAR
SAL
0001xxx
ADD
ADDX
ADDS
ADDSX
SUB
SUBX
SUBS
SUBSX
0010xxx
CMP
CMPX
CMPS
CMPSX
CMPR
CMPM
SUBR
CMPSUB
0011xxx
FGE
FLE
FGES
FLES
SUMC
SUMNC
SUMZ
SUMNZ
0100xxx
TESTB
/
BITL
TESTBN
/
BITH
TESTB
/
BITC
TESTBN
/
BITNC
TESTB
/
BITZ
TESTBN
/
BITNZ
TESTB
/
BITRND
TESTBN
/
BITNOT
0101xxx
AND
ANDN
OR
XOR
MUXC
MUXNC
MUXZ
MUXNZ
0110xxx
MOV
NOT
ABS
NEG
NEGC
NEGNC
NEGZ
NEGNZ
0111xxx
INCMOD
DECMOD
ZEROX
SIGNX
ENCOD
ONES
TEST
TESTN
1000xxx
SETNIB
GETNIB
ROLNIB
SETBYTE
GETBYTE
1001xxx
ROLBYTE
SETWORD
/
GETWORD
ROLWORD
/
ALTSN
/
ALTGN
ALTSB
/
ALTGB
/
ALTSW
/
ALTGW
ALTR
/
ALTD
/
ALTS
/
ALTB
ALTI
/
SETR
/
SETD
/
SETS
DECOD
/
BMASK
/
CRCBIT
/
CRCNIB
MUXNITS
/
MUXNIBS
/
MUXQ
/
MOVBYTS
1010xxx
MUL
/
MULS
SCA
/
SCAS
ADDPIX
/
MULPIX
/
BLNPIX
/
MIXPIX
ADDCT1
/
ADDCT2
/
ADDCT3
/
WMLONG
RQPIN
/
RDPIN
RDLUT
RDBYTE
RDWORD
1011xxx
RDLONG
/
POPA
/
POPB
CALLD
/
RESI3
/
RESI2
/
RESI1
/
RESI0
/
RETI3
/
RETI2
/
RETI1
/
RETI0
CALLPA
/
CALLPB
DJZ
/
DJNZ
/
DJF
/
DJNF
IJZ
/
IJNZ
/
TJZ
/
TJNZ
TJF
/
TJNF
/
TJS
/
TJNS
TJV
/
JINT
/
JCT1
/
JCT2
/
JCT3
/
JSE1
/
JSE2
/
JSE3
/
JSE4
/
JPAT
/
JFBW
/
JXMT
/
JXFI
/
JXRO
/
JXRL
/
JATN
/
JQMT
/
JNINT
/
JNCT1
/
JNCT2
/
JNCT3
/
JNSE1
/
JNSE2
/
JNSE3
/
JNSE4
/
JNPAT
/
JNFBW
/
JNXMT
/
JNXFI
/
JNXRO
/
JNXRL
/
JNATN
/
JNQMT
/
<empty>
<empty>
/
SETPAT
1100xxx
AKPIN
/
WRPIN
/
WXPIN
WYPIN
/
WRLUT
WRBYTE
/
WRWORD
WRLONG
/
PUSHA
/
PUSHB
/
RDFAST
WRFAST
/
FBLOCK
XINIT
/
XSTOP
/
XZERO
XCONT
/
REP
COGINIT
1101xxx
QMUL
/
QDIV
QFRAC
/
QSQRT
QROTATE
/
QVECTOR
1101011 Sub-Opcodes
JMP
CALL
CALLA
CALLB
1110xxx
CALLD
(PA)
CALLD
(PB)
CALLD
(PTRA)
CALLD
(PTRB)
LOC
(PA)
LOC
(PB)
LOC
(PTRA)
LOC
(PTRB)
1111xxx
AUGS
AUGD
1101011 Sub-Opcodes
For opcode 1101011, the
S
field of the instruction (bits 8:0) is the sub-opcode.
xxxxx000
xxxxx001
xxxxx010
xxxxx011
xxxxx100
xxxxx101
xxxxx110
xxxxx111
00000xxx
HUBSET
COGID
COGSTOP
LOCKNEW
LOCKRET
LOCKTRY
LOCKREL
00001xxx
QLOG
QEXP
00010xxx
RFBYTE
RFWORD
RFLONG
RFVAR
RFVARS
WFBYTE
WFWORD
WFLONG
00011xxx
GETQX
GETQY
GETCT
GETRND
SETDACS
SETXFRQ
GETXACC
WAITX
00100xxx
SETSE1
SETSE2
SETSE3
SETSE4
POLLINT
/
POLLCT1
/
POLLCT2
/
POLLCT3
/
POLLSE1
/
POLLSE2
/
POLLSE3
/
POLLSE4
/
POLLPAT
/
POLLFBW
/
POLLXMT
/
POLLXFI
/
POLLXRO
/
POLLXRL
/
POLLATN
/
POLLQMT
/
WAITINT
/
WAITCT1
/
WAITCT2
/
WAITCT3
/
WAITSE1
/
WAITSE2
/
WAITSE3
/
WAITSE4
/
WAITPAT
/
WAITFBW
/
WAITXMT
/
WAITXFI
/
WAITXRO
/
WAITXRL
/
WAITATN
/
ALLOWI
/
STALLI
/
TRGINT1
/
TRGINT2
/
TRGINT3
/
NIXINT1
/
NIXINT2
/
NIXINT3
SETINT1
SETINT2
SETINT3
00101xxx
SETQ
SETQ2
PUSH
POP
JMP
CALL
/
RET
CALLA
/
RETA
CALLB
/
RETB
00110xxx
JMPREL
SKIP
SKIPF
EXECF
GETPTR
GETBRK
/
COGBRK
BRK
SETLUTS
00111xxx
SETCY
SETCI
SETCQ
SETCFRQ
SETCMOD
SETPIV
SETPIX
COGATN
01000xxx
TESTP
/
DIRL
TESTPN
/
DIRH
TESTP
/
DIRC
TESTPN
/
DIRNC
TESTP
/
DIRZ
TESTPN
/
DIRNZ
TESTP
/
DIRRND
TESTPN
/
DIRNOT
01001xxx
OUTL
OUTH
OUTC
OUTNC
OUTZ
OUTNZ
OUTRND
OUTNOT
01010xxx
FLTL
FLTH
FLTC
FLTNC
FLTZ
FLTNZ
FLTRND
FLTNOT
01011xxx
DRVL
DRVH
DRVC
DRVNC
DRVZ
DRVNZ
DRVRND
DRVNOT
01100xxx
SPLITB
MERGEB
SPLITW
MERGEW
SEUSSF
SEUSSR
RGBSQZ
RGBEXP
01101xxx
XORO32
REV
RCZR
RCZL
WRC
WRNC
WRZ
WRNZ
/
MODCZ
/
MODC
/
MODZ
01110xxx
SETSCP
GETSCP
01111xxx
10000xxx
10001xxx
10010xxx
10011xxx
10100xxx
10101xxx
10110xxx
10111xxx
11000xxx
11001xxx
11010xxx
11011xxx
11100xxx
11101xxx
11110xxx
11111xxx