SGX544MP/USSE ISA
< SGX544MP
Jump to navigation
Jump to search
What is USSE?
USSE = Universal Scalable Shader Engine (USSE is a TM)
USSE ISA
comments: [SupportsNoSched] : result of analysis of HWInstSupportsNoSched [SupportsSyncEnd] : result of analysis of HWInstSupportsSyncEnd [ForcesDeschedule] : result of analysis of HWInstForcesDeschedule [SupportsWriteMask] : result of analysis of HWInstSupportsWriteMask [CanUseExtSrc0Banks] : result of analysis of HWInstCanUseExtSrc0Banks [IsMOEControlInst] : result of analysis of HWInstIsMOEControlInst branch instructions store 12-bit signed offset into low 12 bits of psHWInst->uWord0 : result of analysis of HWInstSetBranchOffset invalid opcodes: group 2: 1:31-27 0x02 1:10-9 3 group 3: 1:31-27 0x03 1:10-9 <2;3> group 4: 1:31-27 0x04 1:10-9 <2;3> group 6: 1:31-27 0x06 1:10-9 <1;3> group 16: 1:31-27 0x16 1:21-20 1 group 1A: 1:31-27 0x1A group 1B: 1:31-27 0x1B group 1F_1: 1:31-27 0x1F 1:26-24 <6;7> 1:21-20 1 group 1F_3: 1:31-27 0x1F 1:26-24 {2,4,5,6,7} 1:21-20 3 common fields: 1:20 SyncStart opcode "INVALID" [USP_OPCODE 0=0x0] opcode "MAD" [USP_OPCODE 1=0x1] 1:31-27 0x00 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 0 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "ADM" [USP_OPCODE 2=0x2] 1:31-27 0x00 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 1 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "MSA" [USP_OPCODE 3=0x3] 1:31-27 0x00 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 2 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "FRC" [USP_OPCODE 4=0x4] 1:31-27 0x00 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 3 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "RCP" [USP_OPCODE 5=0x5] 1:31-27 0x01 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 0 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "RSQ" [USP_OPCODE 6=0x6] 1:31-27 0x01 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 1 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "LOG" [USP_OPCODE 7=0x7] 1:31-27 0x01 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 2 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "EXP" [USP_OPCODE 8=0x8] 1:31-27 0x01 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 3 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "DP" [USP_OPCODE 9=0x9] 1:31-27 0x02 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 0 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "DDP" [USP_OPCODE 10=0xa] 1:31-27 0x02 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 1 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "DDPC" [USP_OPCODE 11=0xb] 1:31-27 0x02 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 2 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "MIN" [USP_OPCODE 12=0xc] 1:31-27 0x03 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 0 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "MAX" [USP_OPCODE 13=0xd] 1:31-27 0x03 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 1 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "DSX" [USP_OPCODE 14=0xe] 1:31-27 0x04 1:10-9 0 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "DSY" [USP_OPCODE 15=0xf] 1:31-27 0x04 1:10-9 1 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "MOVC" [USP_OPCODE 16=0x10] 1:31-27 0x05 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat #1 1:10-8 TestDataType 0: none 1: int8 2: int16 3: int32 4: float32 5: int10 [SupportsNoSched] [HWInstDecodeMOVInstTestDataType] => #1 [HWInstDecodeRepeat] => #5 opcode "FMAD16" [USP_OPCODE 17=0x11] 1:31-27 0x06 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:10-9 0 [SupportsNoSched] [HWInstDecodeRepeat] => #5 opcode "EFO" [USP_OPCODE 18=0x12] 1:31-27 0x07 #5 1:13-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "PCKUNPCK" [USP_OPCODE 19=0x13] 1:31-27 0x08 #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:2-5 WriteMask [SupportsNoSched] [ForcesDeschedule]=SyncStart [SupportsWriteMask] [HWInstDecodeRepeat] => #5 opcode "TEST" [USP_OPCODE 20=0x14] 1:31-27 0x09 #5 1:15-12 uRepeat [HWInstDecodeRepeat] => #5, mode is "mask" opcode "AND" [USP_OPCODE 21=0x15] 1:31-27 0x0A #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:3 0 ?? code in HWInstGetOpcode tests it and in both cases sets "AND" ?? [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "OR" [USP_OPCODE 22=0x16] 1:31-27 0x0A #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:3 1 ?? code in HWInstGetOpcode tests it and in both cases sets "AND" ?? shouldn't it set "OR" ?? [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "XOR" [USP_OPCODE 23=0x17] 1:31-27 0x0B #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat [SupportsNoSched] [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "SHL" [USP_OPCODE 24=0x18] 1:31-27 0x0C #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:3 0 [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "ROL" [USP_OPCODE 25=0x19] 1:31-27 0x0C #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:3 1 [SupportsNoSched] [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "SHR" [USP_OPCODE 26=0x1a] 1:31-27 0x0D #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:3 0 [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "ASR" [USP_OPCODE 27=0x1b] 1:31-27 0x0D #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat 1:3 1 [SupportsNoSched] [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "RLP" [USP_OPCODE 28=0x1c] 1:31-27 0x0E #5 1:21 uRepeatMode 0: mask 1: repeat #5 1:15-12 uRepeat [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5 opcode "TESTMASK" [USP_OPCODE 29=0x1d] 1:31-27 0x0F #5 1:15-12 uRepeat [SupportsNoSched] [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => #5, mode is "mask" opcode "SOP2" [USP_OPCODE 30=0x1e] 1:31-27 0x10 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "SOP3" [USP_OPCODE 31=0x1f] 1:31-27 0x11 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "SOPWM" [USP_OPCODE 32=0x20] SOP Write Mask? 1:31-27 0x12 1:14 WriteMask[2] 1:13 WriteMask[1] 1:12 WriteMask[0] 1:11 WriteMask[3] [SupportsNoSched] [SupportsWriteMask] [HWInstDecodeRepeat] => does not support repeats opcode "IMA8" [USP_OPCODE 33=0x21] 1:31-27 0x13 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "IMA16" [USP_OPCODE 34=0x22] 1:31-27 0x14 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "IMAE" [USP_OPCODE 35=0x23] 1:31-27 0x15 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "ADIF" [USP_OPCODE 36=0x24] 1:31-27 0x16 1:21-20 0 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "BILIN" [USP_OPCODE 37=0x25] 1:31-27 0x16 1:21-20 2 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "FIRV" [USP_OPCODE 38=0x26] 1:31-27 0x16 1:21-20 3 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "FIRH" [USP_OPCODE 39=0x27] 1:31-27 0x17 #5 1:13-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "DOT3" [USP_OPCODE 40=0x28] 1:31-27 0x18 1:24 0 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "DOT4" [USP_OPCODE 41=0x29] 1:31-27 0x18 1:24 1 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "FPMA" [USP_OPCODE 42=0x2a] 1:31-27 0x19 #5 1:14-12 uRepeat [SupportsNoSched] [HWInstDecodeRepeat] => #5, mode is "repeat" opcode "SMP" [USP_OPCODE 43=0x2b] 1:31-27 0x1C #3 1:11-10 uCoordDim 0: 1D 1: 2D 2: 3D 3: invalid 1:9-8 0 #2 1:7 DestRegType 0: TEMP 1: PA 1:1-0 DRC #4 [ForcesDeschedule]=SyncStart [CanUseExtSrc0Banks] [HWInstDecodeDestBankAndNum] => #2 [HWInstDecodeSMPInstCoordDim] => #3 [HWInstDecodeSMPInstCoordFmt] => all sample coordinates are passed as F32 [HWInstDecodeSMPInstDRCNum] => #4 [HWInstDecodeRepeat] => does not support repeats opcode "SMPBIAS" [USP_OPCODE 44=0x2c] 1:31-27 0x1C #3 1:11-10 uCoordDim 0: 1D 1: 2D 2: 3D 3: invalid 1:9-8 1 #2 1:7 DestRegType 0: TEMP 1: PA #4 1:1-0 DRC [ForcesDeschedule]=SyncStart [CanUseExtSrc0Banks] [HWInstDecodeDestBankAndNum] => #2 [HWInstDecodeSMPInstCoordDim] => #3 [HWInstDecodeSMPInstCoordFmt] => all sample coordinates are passed as F32 [HWInstDecodeSMPInstDRCNum] => #4 [HWInstDecodeRepeat] => does not support repeats opcode "SMPREPLACE" [USP_OPCODE 45=0x2d] 1:31-27 0x1C #3 1:11-10 uCoordDim 0: 1D 1: 2D 2: 3D 3: invalid 1:9-8 2 #2 1:7 DestRegType 0: TEMP 1: PA #4 1:1-0 DRC [ForcesDeschedule]=SyncStart [CanUseExtSrc0Banks] [HWInstDecodeDestBankAndNum] => #2 [HWInstDecodeSMPInstCoordDim] => #3 [HWInstDecodeSMPInstCoordFmt] => all sample coordinates are passed as F32 [HWInstDecodeSMPInstDRCNum] => #4 [HWInstDecodeRepeat] => does not support repeats opcode "SMPGRAD" [USP_OPCODE 46=0x2e] 1:31-27 0x1C #3 1:11-10 uCoordDim 0: 1D 1: 2D 2: 3D 3: invalid 1:9-8 3 #2 1:7 DestRegType 0: TEMP 1: PA #4 1:1-0 DRC [ForcesDeschedule]=SyncStart [CanUseExtSrc0Banks] [HWInstDecodeDestBankAndNum] => #2 [HWInstDecodeSMPInstCoordDim] => #3 [HWInstDecodeSMPInstCoordFmt] => all sample coordinates are passed as F32 [HWInstDecodeSMPInstDRCNum] => #4 [HWInstDecodeRepeat] => does not support repeats opcode "LD" [USP_OPCODE 47=0x2f] 1:31-27 0x1D #5 1:21 uRepeatMode 0: fetch 1: repeat #3,5 1:15-12 uFetchCount/uRepeat #2 1:7 DestRegType 0: TEMP 1: PA [ForcesDeschedule]=SyncStart [CanUseExtSrc0Banks] #2 analysis of HWInstDecodeDestBankAndNum #3 analysis of HWInstEncodeLDInstFetchCount [HWInstDecodeRepeat] => #5 opcode "ST" [USP_OPCODE 48=0x30] 1:31-27 0x1E #5 1:21 uRepeatMode 0: fetch 1: repeat #5 1:15-12 uRepeat [ForcesDeschedule]=SyncStart [CanUseExtSrc0Banks] [HWInstDecodeRepeat] => #5 opcode "BA" [USP_OPCODE 49=0x31] 0:11-0 signed jump offset <FFFFF800;000007FF> 1:31-27 0x1F 1:23 SyncEnd 1:21-20 0 1:8-6 0 [SupportsSyncEnd] [ForcesDeschedule]=true [HWInstDecodeRepeat] => does not support repeats opcode "BR" [USP_OPCODE 50=0x32] 0:11-0 signed jump offset <FFFFF800;000007FF> 1:31-27 0x1F 1:23 SyncEnd 1:21-20 0 1:8-6 1 [SupportsSyncEnd] [ForcesDeschedule]=true [HWInstDecodeRepeat] => does not support repeats opcode "LAPC" [USP_OPCODE 51=0x33] 1:31-27 0x1F 1:23 SyncEnd 1:21-20 0 1:8-6 2 [SupportsSyncEnd] [ForcesDeschedule]=true [HWInstDecodeRepeat] => does not support repeats opcode "SETL" [USP_OPCODE 52=0x34] 1:31-27 0x1F 1:23 SyncEnd 1:21-20 0 1:8-6 3 [SupportsSyncEnd] [HWInstDecodeRepeat] => does not support repeats opcode "SAVL" [USP_OPCODE 53=0x35] 1:31-27 0x1F 1:23 SyncEnd 1:21-20 0 1:8-6 4 [SupportsSyncEnd] [HWInstDecodeRepeat] => does not support repeats opcode "NOP" [USP_OPCODE 54=0x36] 1:31-27 0x1F 1:23 SyncStart 1:21-20 0 1:8-6 5 [SupportsNoSched] [SupportsSyncEnd] [ForcesDeschedule]=SyncStart [HWInstDecodeRepeat] => does not support repeats opcode "SMOA" [USP_OPCODE 55=0x37] 1:31-27 0x1F 1:26-24 0 1:21-20 1 [IsMOEControlInst] [HWInstDecodeRepeat] => does not support repeats opcode "SMR" [USP_OPCODE 56=0x38] 1:31-27 0x1F 1:26-24 1 1:21-20 1 [IsMOEControlInst] [HWInstDecodeRepeat] => does not support repeats opcode "SMLSI" [USP_OPCODE 57=0x39] Set MOE /???/ Swizle Increment ? 1:31-27 0x1F 1:26-24 2 1:21-20 1 #1 1:3 bUseSwizChan0 #1 1:2 bUseSwizChan1 #1 1:1 bUseSwizChan2 #1 1:0 bUseSwizChan3 #1 0:31-24 if bUseSwizChan0==1 uSwiz if bUseSwizChan0==0 signed 8-bit MOE increment #1 0:23-16 if bUseSwizChan1==1 uSwiz if bUseSwizChan1==0 signed 8-bit MOE increment #1 0:15-8 if bUseSwizChan2==1 uSwiz if bUseSwizChan2==0 signed 8-bit MOE increment #1 0: 7-0 if bUseSwizChan3==1 uSwiz if bUseSwizChan3==0 signed 8-bit MOE increment [IsMOEControlInst] #1 =analysis of HWInstUpdateMOEState [HWInstDecodeRepeat] => does not support repeats opcode "SMBO" [USP_OPCODE 58=0x3a] Set MOE Base Offset ? 1:31-27 0x1F 1:26-24 3 1:21-20 1 #1 1:15-4 uBaseOffset[0] (bits 0..11) #1 1:0-3 uBaseOffset[1] (bits 16..19) - seems to be an error in HWInstUpdateMOEState, this might be really (bits 8..11) #1 0:31-24 uBaseOffset[1] (bits 0..7) #1 0:23-12 uBaseOffset[2] (bits 0..11) #1 0:11-0 uBaseOffset[3] (bits 0..11) [IsMOEControlInst] #1 =analysis of HWInstUpdateMOEState [HWInstDecodeRepeat] => does not support repeats opcode "IMO" [USP_OPCODE 59=0x3b] 1:31-27 0x1F 1:26-24 4 1:21-20 1 [IsMOEControlInst] [HWInstDecodeRepeat] => does not support repeats opcode "SETFC" [USP_OPCODE 60=0x3c] SET Format Control ? 1:31-27 0x1F 1:26-24 5 1:21-20 1 #6 0:8 bColFmtCtl #6 0:0 EFOFmtCtl [IsMOEControlInst] [HWInstDecodeRepeat] => does not support repeats [HWInstUpdateMOEState] => #6 opcode "IDF" [USP_OPCODE 61=0x3d] 1:31-27 0x1F 1:26-24 0 1:21-20 2 [HWInstDecodeRepeat] => does not support repeats opcode "WDF" [USP_OPCODE 62=0x3e] 1:31-27 0x1F 1:26-24 1 1:21-20 2 [ForcesDeschedule]=true [HWInstDecodeRepeat] => does not support repeats opcode "SETM" [USP_OPCODE 63=0x3f] 1:31-27 0x1F 1:26-24 2 1:21-20 2 [SupportsNoSched] [HWInstDecodeRepeat] => function returns error for this opcode opcode "EMIT" [USP_OPCODE 64=0x40] 1:31-27 0x1F 1:26-24 3 1:21-20 2 [SupportsNoSched] [CanUseExtSrc0Banks] [HWInstDecodeRepeat] => does not support repeats opcode "LIMM" [USP_OPCODE 65=0x41] 1:31-27 0x1F 1:26-24 4 1:21-20 2 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "LOCK" [USP_OPCODE 66=0x42] 0:1 0 1:31-27 0x1F 1:26-24 5 1:21-20 2 [SupportsNoSched] [ForcesDeschedule]=true [HWInstDecodeRepeat] => does not support repeats opcode "RELEASE" [USP_OPCODE 67=0x43] 0:1 1 1:31-27 0x1F 1:26-24 5 1:21-20 2 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "LDR" [USP_OPCODE 68=0x44] 1:31-27 0x1F 1:26-24 6 1:21-20 2 1:19 0 #2 1:7 DestRegType 0: TEMP 1: PA [SupportsNoSched] #2 analysis of HWInstDecodeDestBankAndNum [HWInstDecodeRepeat] => does not support repeats opcode "STR" [USP_OPCODE 69=0x45] 1:31-27 0x1F 1:26-24 6 1:21-20 2 1:19 1 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "WOP" [USP_OPCODE 70=0x46] 1:31-27 0x1F 1:26-24 7 1:21-20 2 [SupportsNoSched] [ForcesDeschedule]=true [HWInstDecodeRepeat] => does not support repeats opcode "PCOEFF" [USP_OPCODE 71=0x47] 1:31-27 0x1F 1:26-24 0 1:21-20 3 1:15 0 [SupportsNoSched] [CanUseExtSrc0Banks] [HWInstDecodeRepeat] => does not support repeats opcode "PTOFF" [USP_OPCODE 72=0x48] 1:31-27 0x1F 1:26-24 0 1:21-20 3 1:15 1 [SupportsNoSched] [HWInstDecodeRepeat] => does not support repeats opcode "ATST8" [USP_OPCODE 73=0x49] 1:31-27 0x1F 1:26-24 1 1:21-20 3 [SupportsNoSched] [CanUseExtSrc0Banks] [HWInstDecodeRepeat] => does not support repeats opcode "DEPTHF" [USP_OPCODE 74=0x4a ] 1:31-27 0x1F 1:26-24 3 1:21-20 3 [SupportsNoSched] [CanUseExtSrc0Banks]