This should become the USSE instruction encoding description as found at http://lkcl.net/powervr/sgx/

Please see OpCodes for an overview.

Instruction encoding format:

Quite complex. So we should develop a tight and easily readable graphical notation.

Here is a Proposal to make it more readable: Taken the proposal and applied, not sure about how to do SMBO

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x00     !      ?       !RM!              !  uRepeat  ! ?!   0 !                     ?    !   MAD
!     0x00     !      ?       !RM!              !  uRepeat  ! ?!   1 !                     ?    !   ADM
!     0x00     !      ?       !RM!              !  uRepeat  ! ?!   2 !                     ?    !   MSA
!     0x00     !      ?       !RM!              !  uRepeat  ! ?!   3 !                     ?    !   FRC
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x01     !      ?       !RM!              !  uRepeat  ! ?!   0 !             ?            !   RCP
!     0x01     !      ?       !RM!              !  uRepeat  ! ?!   1 !             ?            !   RSQ
!     0x01     !      ?       !RM!              !  uRepeat  ! ?!   2 !             ?            !   LOG
!     0x01     !      ?       !RM!              !  uRepeat  ! ?!   3 !             ?            !   EXP
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x02     !      ?       !RM!              !  uRepeat  ! ?!   0 !             ?            !   DP
!     0x02     !      ?       !RM!              !  uRepeat  ! ?!   1 !             ?            !   DDP
!     0x02     !      ?       !RM!              !  uRepeat  ! ?!   2 !             ?            !   DDPC
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x03     !      ?       !RM!              !  uRepeat  ! ?!   0 !             ?            !   MIN
!     0x03     !      ?       !RM!              !  uRepeat  ! ?!   1 !             ?            !   MAX
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x04     !      ?                                        !   0 !             ?            !   DSX
!     0x04     !      ?                                        !   1 !             ?            !   DSY
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x05     !      ?       !RM!              !  uRepeat  ! ?!   Type !          ?            !   MOVC
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x06     !      ?       !RM!              !  uRepeat  ! ?!  0  !          ?               !   FMAD16
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x07     !      ?                               !uRep !                   ?               !   EFO
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x08     !      ?       !RM!              !  uRepeat  !           ?     ! WriteMask !  ?  !   PCKUNPCK
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x09     !      ?                         !  uRepeat  !                   ?               !   TEST
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x0A     !      ?       !RM!              !  uRepeat  !              ?        !0 !    ?   !   AND
!     0x0A     !      ?       !RM!              !  uRepeat  !              ?        !1 !    ?   !   OR
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x0B     !      ?       !RM!              !  uRepeat  !              ?                    !   XOR
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x0C     !      ?       !RM!              !  uRepeat  !              ?        ! 0!    ?   !   SHL
!     0x0C     !      ?       !RM!              !  uRepeat  !              ?        ! 1!    ?   !   ROL
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x0D     !      ?       !RM!              !  uRepeat  !     ?                 ! 0!   ?    !   SHR
!     0x0D     !      ?       !RM!              !  uRepeat  !     ?                 ! 1!   ?    !   ASR
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x0E     !      ?       !RM!              !  uRepeat  !              ?                    !   RLP
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x0F     !      ?                         !  uRepeat  !              ?                    !   TESTMASK
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x10     !      ?                            !uRepeat !              ?                    !   SOP2
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x11     !      ?                                                    ?                    !   SOP3
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x12     !      ?                            !WM[2,1,0,3]!           ?                    !   SOPWM	WM: WriteMask
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x13     !      ?                            !uRepeat !              ?                    !   IMA8
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x14     !      ?                            !uRepeat !              ?                    !   IMA16
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x15     !      ?                            !uRepeat !              ?                    !   IMAE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x16     !      ?       ! 0   !              !uRepeat !              ?                    !   ADIF
!     0x16     !      ?       ! 2   !              !uRepeat !              ?                    !   BILIN
!     0x16     !      ?       ! 3   !              !uRepeat !              ?                    !   FIRV
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x17     !      ?                               !uRep !              ?                    !   FIRH
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x18     !   ? !0 !                          !uRepeat !              ?                    !   DOT3
!     0x18     !   ? !1 !                          !uRepeat !              ?                    !   DOT4
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x19     !      ?                            !uRepeat !              ?                    !   FPMA
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x1C     !      ?                                     !uCorD!  0  !DR!    ?         ! DRC !   SMP		DR: DestRegType
!     0x1C     !      ?                                     !uCorD!  1  !DR!    ?         ! DRC !   SMPBIAS
!     0x1C     !      ?                                     !uCorD!  2  !DR!    ?         ! DRC !   SMPREPLACE
!     0x1C     !      ?                                     !uCorD!  3  !DR!    ?         ! DRC !   SMPGRAD
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x1D     !      ?       !RM!              !uFetch/URep!      ?    !DR!        ?           !   LD
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x1E     !      ?       !RM!              !  uRepeat  !              ?                    !   ST
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
!     0x1F     !      ? !SE!  !  0  !                                !  0     !                 !   BA   SE: SyncEnd
!     0x1F     !      ? !SE!  !  0  !                                !  1     !                 !   BR   SE: SyncEnd
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!                                                           !     signed offset                 !
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!     0x1F     !      ? !SE!  !  0  !                                !  2     !                 !   LAPC
!     0x1F     !      ? !SE!  !  0  !                                !  3     !                 !   SETL
!     0x1F     !      ? !SE!  !  0  !                                !  4     !                 !   SAVL
!     0x1F     !      ? !SE!  !  0  !                                !  5     !                 !   NOP
!     0x1F     !      0 !     !  1  !                         ?                                 !   SMOA
!     0x1F     !      1 !     !  1  !                         ?                                 !   SMR
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!     0x1F     !      2 !  ?  !  1  !                           ?                   !bU[0,1,2,3]!   SMLSI	bU: bUseSwizChan[0,1,2,3]
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
! if bU[0]=0, 8bit MOE  ! if bU[1]=0, 8bit MOE  ! if bU[2]=0, 8bit MOE  ! if bU[3]=0, 8bit MOE  !
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!     0x1F     !      4 !  ?  !  0  !                              ?                            !   IMO
!     0x1F     !      5 !  ?  !  1  !                              ?                            !   SETFC
!     0x1F     !      0 !  ?  !  2  !                              ?                            !   IDF
!     0x1F     !      1 !  ?  !  2  !                              ?                            !   WDF
!     0x1F     !      2 !  ?  !  2  !                              ?                            !   SETM
!     0x1F     !      3 !  ?  !  2  !                              ?                            !   EMIT
!     0x1F     !      4 !  ?  !  2  !                              ?                            !   LIMM
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!     0x1F     !      5 !  ?  !  2  !                              ?                            !   LOCK
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!                                                                                         ! 0!  !
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!     0x1F     !      5 !  ?  !  2  !                              ?                            !   RELEASE
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!                                                                                         ! 1!  !
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

+31+30+29+28+27+26+25+24+23+22+21+20+19+18+17+16+15+14+13+12+11+10+09+08+07+06+05+04+03+02+01+00+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
!     0x1F     !      6 !  ?  !  2  ! 0!                           ?    !DR!                    !   LDR
!     0x1F     !      6 !  ?  !  2  ! 1!                           ?    !DR!                    !   STR
!     0x1F     !      7 !  ?  !  2  ! 0!                           ?                            !   WOP
!     0x1F     !      0 !  ?  !  3  !           ! 0!               ?    	                !   PCOEFF
!     0x1F     !      0 !  ?  !  3  !           ! 1!               ?    	                !   PTOFF
!     0x1F     !      1 !  ?  !  3  !                              ?    	                !   ATST8
!     0x1F     !      3 !  ?  !  3  !                              ?    	                !   DEPTHF
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

1) so what are these different codes good for?
instructionencoding.txt · Last modified: 2012-11-15 11:37 by hns
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki