Skip to content

Instantly share code, notes, and snippets.

@exjam
Created July 28, 2015 14:02
Show Gist options
  • Save exjam/047bd6d3a3dfc758e62a to your computer and use it in GitHub Desktop.
Save exjam/047bd6d3a3dfc758e62a to your computer and use it in GitHub Desktop.
#ifndef CF_INST
#define CF_INST(name, value)
#endif
#ifndef EXP_INST
#define EXP_INST(name, value)
#endif
#ifndef ALU_INST
#define ALU_INST(name, value)
#endif
#ifndef ALU_OP2
#define ALU_OP2(name, value)
#endif
#ifndef ALU_OP3
#define ALU_OP3(name, value)
#endif
#ifndef TEX_INST
#define TEX_INST(name, value)
#endif
#ifndef VTX_INST
#define VTX_INST(name, value)
#endif
#ifndef MEM_INST
#define MEM_INST(name, value)
#endif
CF_INST(NOP, 0x00000000)
CF_INST(TEX, 0x00000001)
CF_INST(VTX, 0x00000002)
CF_INST(VTX_TC, 0x00000003)
CF_INST(LOOP_START, 0x00000004)
CF_INST(LOOP_END, 0x00000005)
CF_INST(LOOP_START_DX10, 0x00000006)
CF_INST(LOOP_START_NO_AL, 0x00000007)
CF_INST(LOOP_CONTINUE, 0x00000008)
CF_INST(LOOP_BREAK, 0x00000009)
CF_INST(JUMP, 0x0000000A)
CF_INST(PUSH, 0x0000000B)
CF_INST(PUSH_ELSE, 0x0000000C)
CF_INST(ELSE, 0x0000000D)
CF_INST(POP, 0x0000000E)
CF_INST(POP_JUMP, 0x0000000F)
CF_INST(POP_PUSH, 0x00000010)
CF_INST(POP_PUSH_ELSE, 0x00000011)
CF_INST(CALL, 0x00000012)
CF_INST(CALL_FS, 0x00000013)
CF_INST(RETURN, 0x00000014)
CF_INST(EMIT_VERTEX, 0x00000015)
CF_INST(EMIT_CUT_VERTEX, 0x00000016)
CF_INST(CUT_VERTEX, 0x00000017)
CF_INST(KILL, 0x00000018)
CF_INST(END_PROGRAM, 0x00000019)
CF_INST(WAIT_ACK, 0x0000001A)
CF_INST(TEX_ACK, 0x0000001B)
CF_INST(VTX_ACK, 0x0000001C)
CF_INST(VTX_TC_ACK, 0x0000001D)
EXP_INST(MEM_STREAM0, 0x00000020)
EXP_INST(MEM_STREAM1, 0x00000021)
EXP_INST(MEM_STREAM2, 0x00000022)
EXP_INST(MEM_STREAM3, 0x00000023)
EXP_INST(MEM_SCRATCH, 0x00000024)
EXP_INST(MEM_REDUCTION, 0x00000025)
EXP_INST(MEM_RING, 0x00000026)
EXP_INST(EXP, 0x00000027)
EXP_INST(EXP_DONE, 0x00000028)
EXP_INST(MEM_EXPORT, 0x0000003A)
ALU_INST(ALU, 0x00000008)
ALU_INST(ALU_PUSH_BEFORE, 0x00000009)
ALU_INST(ALU_POP_AFTER, 0x0000000A)
ALU_INST(ALU_POP2_AFTER, 0x0000000B)
ALU_INST(ALU_EXT, 0x0000000C)
ALU_INST(ALU_CONTINUE, 0x0000000D)
ALU_INST(ALU_BREAK, 0x0000000E)
ALU_INST(ALU_ELSE_AFTER, 0x0000000F)
ALU_OP2(ADD, 0x00000000)
ALU_OP2(MUL, 0x00000001)
ALU_OP2(MUL_IEEE, 0x00000002)
ALU_OP2(MAX, 0x00000003)
ALU_OP2(MIN, 0x00000004)
ALU_OP2(MAX_DX10, 0x00000005)
ALU_OP2(MIN_DX10, 0x00000006)
ALU_OP2(FREXP_64, 0x00000007)
ALU_OP2(SETE, 0x00000008)
ALU_OP2(SETGT, 0x00000009)
ALU_OP2(SETGE, 0x0000000A)
ALU_OP2(SETNE, 0x0000000B)
ALU_OP2(SETE_DX10, 0x0000000C)
ALU_OP2(SETGT_DX10, 0x0000000D)
ALU_OP2(SETGE_DX10, 0x0000000E)
ALU_OP2(SETNE_DX10, 0x0000000F)
ALU_OP2(FRACT, 0x00000010)
ALU_OP2(TRUNC, 0x00000011)
ALU_OP2(CEIL, 0x00000012)
ALU_OP2(RNDNE, 0x00000013)
ALU_OP2(FLOOR, 0x00000014)
ALU_OP2(MOVA, 0x00000015)
ALU_OP2(MOVA_FLOOR, 0x00000016)
ALU_OP2(ADD_64, 0x00000017)
ALU_OP2(MOVA_INT, 0x00000018)
ALU_OP2(MOV, 0x00000019)
ALU_OP2(NOP, 0x0000001A)
ALU_OP2(MUL_64, 0x0000001B)
ALU_OP2(FLT64_TO_FLT32, 0x0000001C)
ALU_OP2(FLT32_TO_FLT64, 0x0000001D)
ALU_OP2(PRED_SETGT_UINT, 0x0000001E)
ALU_OP2(PRED_SETGE_UINT, 0x0000001F)
ALU_OP2(PRED_SETE, 0x00000020)
ALU_OP2(PRED_SETGT, 0x00000021)
ALU_OP2(PRED_SETGE, 0x00000022)
ALU_OP2(PRED_SETNE, 0x00000023)
ALU_OP2(PRED_SET_INV, 0x00000024)
ALU_OP2(PRED_SET_POP, 0x00000025)
ALU_OP2(PRED_SET_CLR, 0x00000026)
ALU_OP2(PRED_SET_RESTORE, 0x00000027)
ALU_OP2(PRED_SETE_PUSH, 0x00000028)
ALU_OP2(PRED_SETGT_PUSH, 0x00000029)
ALU_OP2(PRED_SETGE_PUSH, 0x0000002A)
ALU_OP2(PRED_SETNE_PUSH, 0x0000002B)
ALU_OP2(KILLE, 0x0000002C)
ALU_OP2(KILLGT, 0x0000002D)
ALU_OP2(KILLGE, 0x0000002E)
ALU_OP2(KILLNE, 0x0000002F)
ALU_OP2(AND_INT, 0x00000030)
ALU_OP2(OR_INT, 0x00000031)
ALU_OP2(XOR_INT, 0x00000032)
ALU_OP2(NOT_INT, 0x00000033)
ALU_OP2(ADD_INT, 0x00000034)
ALU_OP2(SUB_INT, 0x00000035)
ALU_OP2(MAX_INT, 0x00000036)
ALU_OP2(MIN_INT, 0x00000037)
ALU_OP2(MAX_UINT, 0x00000038)
ALU_OP2(MIN_UINT, 0x00000039)
ALU_OP2(SETE_INT, 0x0000003A)
ALU_OP2(SETGT_INT, 0x0000003B)
ALU_OP2(SETGE_INT, 0x0000003C)
ALU_OP2(SETNE_INT, 0x0000003D)
ALU_OP2(SETGT_UINT, 0x0000003E)
ALU_OP2(SETGE_UINT, 0x0000003F)
ALU_OP2(KILLGT_UINT, 0x00000040)
ALU_OP2(KILLGE_UINT, 0x00000041)
ALU_OP2(PRED_SETE_INT, 0x00000042)
ALU_OP2(PRED_SETGT_INT, 0x00000043)
ALU_OP2(PRED_SETGE_INT, 0x00000044)
ALU_OP2(PRED_SETNE_INT, 0x00000045)
ALU_OP2(KILLE_INT, 0x00000046)
ALU_OP2(KILLGT_INT, 0x00000047)
ALU_OP2(KILLGE_INT, 0x00000048)
ALU_OP2(KILLNE_INT, 0x00000049)
ALU_OP2(PRED_SETE_PUSH_INT, 0x0000004A)
ALU_OP2(PRED_SETGT_PUSH_INT, 0x0000004B)
ALU_OP2(PRED_SETGE_PUSH_INT, 0x0000004C)
ALU_OP2(PRED_SETNE_PUSH_INT, 0x0000004D)
ALU_OP2(PRED_SETLT_PUSH_INT, 0x0000004E)
ALU_OP2(PRED_SETLE_PUSH_INT, 0x0000004F)
ALU_OP2(DOT4, 0x00000050)
ALU_OP2(DOT4_IEEE, 0x00000051)
ALU_OP2(CUBE, 0x00000052)
ALU_OP2(MAX4, 0x00000053)
ALU_OP2(GROUP_BARRIER, 0x00000054)
ALU_OP2(GROUP_SEQ_BEGIN, 0x00000055)
ALU_OP2(GROUP_SEQ_END, 0x00000056)
ALU_OP2(SET_MODE, 0x00000057)
ALU_OP2(SET_CF_IDX0, 0x00000058)
ALU_OP2(SET_CF_IDX1, 0x00000059)
ALU_OP2(SET_LDS_SIZE, 0x0000005A)
ALU_OP2(MUL_INT24, 0x0000005B)
ALU_OP2(MULHI_INT24, 0x0000005C)
ALU_OP2(MOVA_GPR_INT, 0x00000060)
ALU_OP2(EXP_IEEE, 0x00000061)
ALU_OP2(LOG_CLAMPED, 0x00000062)
ALU_OP2(LOG_IEEE, 0x00000063)
ALU_OP2(RECIP_CLAMPED, 0x00000064)
ALU_OP2(RECIP_FF, 0x00000065)
ALU_OP2(RECIP_IEEE, 0x00000066)
ALU_OP2(RECIPSQRT_CLAMPED, 0x00000067)
ALU_OP2(RECIPSQRT_FF, 0x00000068)
ALU_OP2(RECIPSQRT_IEEE, 0x00000069)
ALU_OP2(SQRT_IEEE, 0x0000006A)
ALU_OP2(FLT_TO_INT, 0x0000006B)
ALU_OP2(INT_TO_FLT, 0x0000006C)
ALU_OP2(UINT_TO_FLT, 0x0000006D)
ALU_OP2(SIN, 0x0000006E)
ALU_OP2(COS, 0x0000006F)
ALU_OP2(ASHR_INT, 0x00000070)
ALU_OP2(LSHR_INT, 0x00000071)
ALU_OP2(LSHL_INT, 0x00000072)
ALU_OP2(MULLO_INT, 0x00000073)
ALU_OP2(MULHI_INT, 0x00000074)
ALU_OP2(MULLO_UINT, 0x00000075)
ALU_OP2(MULHI_UINT, 0x00000076)
ALU_OP2(RECIP_INT, 0x00000077)
ALU_OP2(RECIP_UINT, 0x00000078)
ALU_OP2(FLT_TO_UINT, 0x00000079)
ALU_OP2(LDEXP_64, 0x0000007A)
ALU_OP2(FRACT_64, 0x0000007B)
ALU_OP2(PRED_SETGT_64, 0x0000007C)
ALU_OP2(PRED_SETE_64, 0x0000007D)
ALU_OP2(PRED_SETGE_64, 0x0000007E)
ALU_OP3(BFE_UINT, 0x00000004)
ALU_OP3(BFE_INT, 0x00000005)
ALU_OP3(BFI_INT, 0x00000006)
ALU_OP3(FMA, 0x00000007)
ALU_OP3(MULADD_64, 0x00000008)
ALU_OP3(MULADD_64_M2, 0x00000009)
ALU_OP3(MULADD_64_M4, 0x0000000A)
ALU_OP3(MULADD_64_D2, 0x0000000B)
ALU_OP3(MUL_LIT, 0x0000000C)
ALU_OP3(MUL_LIT_M2, 0x0000000D)
ALU_OP3(MUL_LIT_M4, 0x0000000E)
ALU_OP3(MUL_LIT_D2, 0x0000000F)
ALU_OP3(MULADD, 0x00000010)
ALU_OP3(MULADD_M2, 0x00000011)
ALU_OP3(MULADD_M4, 0x00000012)
ALU_OP3(MULADD_D2, 0x00000013)
ALU_OP3(MULADD_IEEE, 0x00000014)
ALU_OP3(MULADD_IEEE_M2, 0x00000015)
ALU_OP3(MULADD_IEEE_M4, 0x00000016)
ALU_OP3(MULADD_IEEE_D2, 0x00000017)
ALU_OP3(CNDE, 0x00000018)
ALU_OP3(CNDGT, 0x00000019)
ALU_OP3(CNDGE, 0x0000001A)
ALU_OP3(CNDE_INT, 0x0000001C)
ALU_OP3(CNDGT_INT, 0x0000001D)
ALU_OP3(CNDGE_INT, 0x0000001E)
TEX_INST(VTX_FETCH, 0x00000000)
TEX_INST(VTX_SEMANTIC, 0x00000001)
TEX_INST(MEM, 0x00000002)
TEX_INST(LD, 0x00000003)
TEX_INST(RESINFO_TEX, 0x00000004)
TEX_INST(GET_SAMPLE_INFO, 0x00000005)
TEX_INST(GET_COMP_TEX_LOD, 0x00000006)
TEX_INST(GET_GRADIENTS_H, 0x00000007)
TEX_INST(GET_GRADIENTS_V, 0x00000008)
TEX_INST(GET_LERP, 0x00000009)
TEX_INST(KEEP_GRADIENTS, 0x0000000A)
TEX_INST(SET_GRADIENTS_H, 0x0000000B)
TEX_INST(SET_GRADIENTS_V, 0x0000000C)
TEX_INST(PASS, 0x0000000D)
TEX_INST(SET_CUBEMAP_INDEX, 0x0000000E)
TEX_INST(FETCH4, 0x0000000F)
TEX_INST(SAMPLE, 0x00000010)
TEX_INST(SAMPLE_L, 0x00000011)
TEX_INST(SAMPLE_LB, 0x00000012)
TEX_INST(SAMPLE_LZ, 0x00000013)
TEX_INST(SAMPLE_G, 0x00000014)
TEX_INST(SAMPLE_G_L, 0x00000015)
TEX_INST(SAMPLE_G_LB, 0x00000016)
TEX_INST(SAMPLE_G_LZ, 0x00000017)
TEX_INST(SAMPLE_C, 0x00000018)
TEX_INST(SAMPLE_C_L, 0x00000019)
TEX_INST(SAMPLE_C_LB, 0x0000001A)
TEX_INST(SAMPLE_C_LZ, 0x0000001B)
TEX_INST(SAMPLE_C_G, 0x0000001C)
TEX_INST(SAMPLE_C_G_L, 0x0000001D)
TEX_INST(SAMPLE_C_G_LB, 0x0000001E)
TEX_INST(SAMPLE_C_G_LZ, 0x0000001F)
TEX_INST(SET_TEXTURE_OFFSETS, 0x00000020)
TEX_INST(GATHER4, 0x00000021)
TEX_INST(GATHER4_O, 0x00000022)
TEX_INST(GATHER4_C, 0x00000023)
TEX_INST(GATHER4_C_O, 0x00000024)
TEX_INST(GET_BUFFER_RESINFO, 0x00000025)
VTX_INST(VFETCH, 0x00000000)
VTX_INST(VSEMANTIC, 0x00000001)
VTX_INST(BUFINFO, 0x0000000E)
MEM_INST(RD_SCRATCH, 0x00000000)
MEM_INST(RD_REDUC, 0x00000001)
MEM_INST(RD_SCATTER, 0x00000002)
MEM_INST(LOCAL_DS_WRITE, 0x00000004)
MEM_INST(LOCAL_DS_READ, 0x00000005)
MEM_INST(GLOBAL_DS_WRITE, 0x00000006)
MEM_INST(GLOBAL_DS_READ, 0x00000007)
MEM_INST(GDS, 0x00000008)
MEM_INST(TF_WRITE, 0x00000009)
#undef CF_INST
#undef EXP_INST
#undef ALU_INST
#undef ALU_OP2
#undef ALU_OP3
#undef TEX_INST
#undef VTX_INST
#undef MEM_INST
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment