package core:rexcode/isa/mips

⌘K
Ctrl+K
or
/

    Overview

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    rexcode · Brendan Punsky (dotbmp@github), original author

    Types

    CP0_Reg ¶

    CP0_Reg :: enum u8 {
    	INDEX    = 0, 
    	RANDOM   = 1, 
    	ENTRYLO0 = 2, 
    	ENTRYLO1 = 3, 
    	CONTEXT  = 4, 
    	PAGEMASK = 5, 
    	WIRED    = 6, 
    	HWRENA   = 7, 
    	BADVADDR = 8, 
    	COUNT    = 9, 
    	ENTRYHI  = 10, 
    	COMPARE  = 11, 
    	STATUS   = 12, 
    	CAUSE    = 13, 
    	EPC      = 14, 
    	PRID     = 15, 
    	CONFIG   = 16, 
    	LLADDR   = 17, 
    	WATCHLO  = 18, 
    	WATCHHI  = 19, 
    	XCONTEXT = 20, 
    	DEBUG    = 23, 
    	DEPC     = 24, 
    	PERFCNT  = 25, 
    	ERRCTL   = 26, 
    	CACHEERR = 27, 
    	TAGLO    = 28, 
    	TAGHI    = 29, 
    	ERROREPC = 30, 
    	DESAVE   = 31, 
    }

    Related Procedures With Parameters

    Decode_Entry ¶

    Decode_Entry :: struct #packed {
    	mnemonic: Mnemonic,
    	// 2
    	ops:      [4]Operand_Type,
    	// 4
    	enc:      [4]Operand_Encoding,
    	// 4
    	bits:     u32,
    	// 4
    	mask:     u32,
    	// 4
    	feature:  Feature,
    	// 1
    	flags:    Encoding_Flags,
    }

    Decode_Index ¶

    Decode_Index :: struct #packed {
    	start: u16,
    	count: u16,
    }

    Encode_Run ¶

    Encode_Run :: struct {
    	start: u32,
    	count: u32,
    }
     

    Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS.

    Encoding ¶

    Encoding :: struct #packed {
    	mnemonic: Mnemonic,
    	// 2
    	ops:      [4]Operand_Type,
    	// 4
    	enc:      [4]Operand_Encoding,
    	// 4
    	bits:     u32,
    	// 4
    	mask:     u32,
    	// 4
    	feature:  Feature,
    	// 1
    	flags:    Encoding_Flags,
    }
     

    A single instruction encoding. bits holds the static pattern; mask marks which bits are static (so operand-derived bits OR in over zeros). Together they form a complete bit-level description.

    Encoding_Flags ¶

    Encoding_Flags :: distinct bit_field u8 {
    	delay_slot:  bool | 1,
    	likely:      bool | 1,
    	only_64:     bool | 1,
    	writes_hilo: bool | 1,
    	compact:     bool | 1,
    	_:           u8 | 3,
    }

    Endianness ¶

    Endianness :: enum u8 {
    	LITTLE = 0, 
    	BIG    = 1, 
    }
     

    Endianness flag (controls how the encoder serialises 32-bit words to bytes). Console targets: PS1, PS2, PSP = LITTLE; N64 = BIG; "MIPS canonical" = BIG.

    Related Procedures With Parameters

    Error ¶

    Error :: rexcode_isa.Error
     

    Re-exports from isa.

    FPR ¶

    FPR :: enum u8 {
    	F0  = 0, 
    	F1  = 1, 
    	F2  = 2, 
    	F3  = 3, 
    	F4  = 4, 
    	F5  = 5, 
    	F6  = 6, 
    	F7  = 7, 
    	F8  = 8, 
    	F9  = 9, 
    	F10 = 10, 
    	F11 = 11, 
    	F12 = 12, 
    	F13 = 13, 
    	F14 = 14, 
    	F15 = 15, 
    	F16 = 16, 
    	F17 = 17, 
    	F18 = 18, 
    	F19 = 19, 
    	F20 = 20, 
    	F21 = 21, 
    	F22 = 22, 
    	F23 = 23, 
    	F24 = 24, 
    	F25 = 25, 
    	F26 = 26, 
    	F27 = 27, 
    	F28 = 28, 
    	F29 = 29, 
    	F30 = 30, 
    	F31 = 31, 
    }

    Feature ¶

    Feature :: enum u8 {
    	MIPS_I, 
    	MIPS_II, 
    	MIPS_III, 
    	MIPS_IV, 
    	MIPS_V, 
    	MIPS32_R1, 
    	MIPS32_R2, 
    	MIPS32_R5, 
    	MIPS32_R6, 
    	MIPS64_R1, 
    	MIPS64_R2, 
    	MIPS64_R5, 
    	MIPS64_R6, 
    	COP0,      // system control coprocessor
    	FPU,       // COP1 (any MIPS with FPU)
    	DSP_R1, 
    	DSP_R2, 
    	MSA,       // MIPS SIMD
    	GTE_PS1,   // PS1 R3000A Geometry Transformation Engine (COP2)
    	MMI_PS2,   // PS2 R5900 Multimedia Instructions
    	VU_PS2,    // PS2 VU0 macro-mode COP2 ops
    	VFPU_PSP,  // PSP Allegrex Vector FPU
    }
     

    ISA version + extension classification. Metadata: the matcher can optionally restrict picks to a chosen ISA level, and the printer can label disassembly with the introducing extension.

    Feature_Set ¶

    Feature_Set :: distinct bit_set[Feature; u32]
     

    A set of enabled ISA features, used to disambiguate the several MIPS variants that share the same encoding tables. Different targets reuse the same primary opcodes for different instructions — most notably opcode 0x37 is LD on 64-bit MIPS but the PSP Allegrex vfim.s (VFPU) — so a decoder that wants only one variant passes the matching set and the others are skipped. decode defaults to FEATURES_ALL, preserving the universal-table behavior for callers that don't care.

    Related Procedures With Parameters

    Related Constants

    GPR ¶

    GPR :: enum u8 {
    	ZERO = 0, 
    	AT   = 1, 
    	V0   = 2, 
    	V1   = 3, 
    	A0   = 4, 
    	A1   = 5, 
    	A2   = 6, 
    	A3   = 7, 
    	T0   = 8, 
    	T1   = 9, 
    	T2   = 10, 
    	T3   = 11, 
    	T4   = 12, 
    	T5   = 13, 
    	T6   = 14, 
    	T7   = 15, 
    	S0   = 16, 
    	S1   = 17, 
    	S2   = 18, 
    	S3   = 19, 
    	S4   = 20, 
    	S5   = 21, 
    	S6   = 22, 
    	S7   = 23, 
    	T8   = 24, 
    	T9   = 25, 
    	K0   = 26, 
    	K1   = 27, 
    	GP   = 28, 
    	SP   = 29, 
    	FP   = 30, 
    	RA   = 31, 
    }

    GTE_CtrlReg ¶

    GTE_CtrlReg :: enum u8 {
    	R11R12 = 0, 
    	R13R21 = 1, 
    	R22R23 = 2, 
    	R31R32 = 3, 
    	R33    = 4, 
    	TRX    = 5, 
    	TRY    = 6, 
    	TRZ    = 7, 
    	L11L12 = 8, 
    	L13L21 = 9, 
    	L22L23 = 10, 
    	L31L32 = 11, 
    	L33    = 12, 
    	RBK    = 13, 
    	GBK    = 14, 
    	BBK    = 15, 
    	LR1LR2 = 16, 
    	LR3LG1 = 17, 
    	LG2LG3 = 18, 
    	LB1LB2 = 19, 
    	LB3    = 20, 
    	RFC    = 21, 
    	GFC    = 22, 
    	BFC    = 23, 
    	OFX    = 24, 
    	OFY    = 25, 
    	H      = 26, 
    	DQA    = 27, 
    	DQB    = 28, 
    	ZSF3   = 29, 
    	ZSF4   = 30, 
    	FLAG   = 31, 
    }
     

    PS1 GTE control registers (CFC2/CTC2).

    Related Procedures With Parameters

    GTE_DataReg ¶

    GTE_DataReg :: enum u8 {
    	VXY0 = 0, 
    	VZ0  = 1, 
    	VXY1 = 2, 
    	VZ1  = 3, 
    	VXY2 = 4, 
    	VZ2  = 5, 
    	RGBC = 6, 
    	OTZ  = 7, 
    	IR0  = 8, 
    	IR1  = 9, 
    	IR2  = 10, 
    	IR3  = 11, 
    	SXY0 = 12, 
    	SXY1 = 13, 
    	SXY2 = 14, 
    	SXYP = 15, 
    	SZ0  = 16, 
    	SZ1  = 17, 
    	SZ2  = 18, 
    	SZ3  = 19, 
    	RGB0 = 20, 
    	RGB1 = 21, 
    	RGB2 = 22, 
    	RES1 = 23, 
    	MAC0 = 24, 
    	MAC1 = 25, 
    	MAC2 = 26, 
    	MAC3 = 27, 
    	IRGB = 28, 
    	ORGB = 29, 
    	LZCS = 30, 
    	LZCR = 31, 
    }

    Related Procedures With Parameters

    Instruction ¶

    Instruction :: struct #packed {
    	ops:           [4]Operand `fmt:"v,operand_count"`,
    	// 64 bytes
    	mnemonic:      Mnemonic,
    	//  2 bytes
    	operand_count: u8,
    	//  1 byte
    	flags:         Instruction_Flags,
    	//  1 byte
    	length:        u8,
    	//  1 byte — always 4 for now; will be 2 for future μMIPS / MIPS16e
    	_:             [3]u8,
    }

    Instruction_Flags ¶

    Instruction_Flags :: distinct bit_field u8 {
    	_: u8 | 8,
    }

    Instruction_Info ¶

    Instruction_Info :: struct {
    	offset:       u32,
    	decode_entry: u16,
    	_:            u16,
    }
     

    Per-decoded-instruction metadata (parallel to []Instruction).  ¶

    offset -- byte offset within data where this instruction starts. decode_entry -- index into DECODE_ENTRIES of the matched form; lets a printer query the Feature tag / flags without re-scanning.

    Memory ¶

    Memory :: struct #packed {
    	base: Register,
    	// 2 bytes
    	_:    u16,
    	// 2 bytes pad (keeps the struct power-of-two)
    	disp: i32,
    }
     

    Memory operand: GPR base + signed 16-bit displacement. Stored with a 32-bit disp slot to make the type comfortable to construct, even though only -32768..32767 actually encode.

    Related Procedures With Returns

    Mnemonic ¶

    Mnemonic :: enum u16 {
    	INVALID         = 0, 
    	// R-type arithmetic
    	ADD, 
    	ADDU, 
    	SUB, 
    	SUBU, 
    	MULT, 
    	MULTU, 
    	DIV, 
    	DIVU, 
    	MFHI, 
    	MFLO, 
    	MTHI, 
    	MTLO, 
    	AND, 
    	OR, 
    	XOR, 
    	NOR, 
    	SLT, 
    	SLTU, 
    	// R-type shifts
    	SLL, 
    	SRL, 
    	SRA, 
    	SLLV, 
    	SRLV, 
    	SRAV, 
    	// I-type arithmetic
    	ADDI, 
    	ADDIU, 
    	SLTI, 
    	SLTIU, 
    	ANDI, 
    	ORI, 
    	XORI, 
    	LUI, 
    	// I-type branches
    	BEQ, 
    	BNE, 
    	BLEZ, 
    	BGTZ, 
    	// REGIMM branches
    	BLTZ, 
    	BGEZ, 
    	BLTZAL, 
    	BGEZAL, 
    	// J-type
    	J, 
    	JAL, 
    	// R-type jumps
    	JR, 
    	JALR, 
    	// Loads
    	LB, 
    	LH, 
    	LW, 
    	LBU, 
    	LHU, 
    	LWL, 
    	LWR, 
    	// Stores
    	SB, 
    	SH, 
    	SW, 
    	SWL, 
    	SWR, 
    	// System
    	SYSCALL, 
    	BREAK, 
    	NOP, 
    	// Atomic
    	LL, 
    	SC, 
    	// Synchronization
    	SYNC, 
    	// Traps (immediate and register variants)
    	TGEI, 
    	TGEIU, 
    	TLTI, 
    	TLTIU, 
    	TEQI, 
    	TNEI, 
    	TGE, 
    	TGEU, 
    	TLT, 
    	TLTU, 
    	TEQ, 
    	TNE, 
    	// Branch-likely (skip delay slot if not taken)
    	BEQL, 
    	BNEL, 
    	BLEZL, 
    	BGTZL, 
    	BLTZL, 
    	BGEZL, 
    	BLTZALL, 
    	BGEZALL, 
    	DADD, 
    	DADDU, 
    	DSUB, 
    	DSUBU, 
    	DADDI, 
    	DADDIU, 
    	DMULT, 
    	DMULTU, 
    	DDIV, 
    	DDIVU, 
    	DSLL, 
    	DSRL, 
    	DSRA, 
    	DSLLV, 
    	DSRLV, 
    	DSRAV, 
    	DSLL32, 
    	DSRL32, 
    	DSRA32, 
    	LD, 
    	LDL, 
    	LDR, 
    	LWU, 
    	SD, 
    	SDL, 
    	SDR, 
    	LLD, 
    	SCD, 
    	MOVN, 
    	MOVZ, 
    	MOVF, 
    	MOVT,                // FP-condition-based GPR move
    	PREF, 
    	PREFX, 
    	LWXC1, 
    	SWXC1, 
    	LDXC1, 
    	SDXC1,               // indexed FP load/store
    	CLZ, 
    	CLO, 
    	DCLZ, 
    	DCLO, 
    	MUL,                 // SPECIAL2 multiply-to-rd (doesn't touch HI/LO)
    	MADD, 
    	MADDU, 
    	MSUB, 
    	MSUBU, 
    	SDBBP, 
    	SSNOP, 
    	EHB, 
    	PAUSE, 
    	// R2 bitfield + shuffle
    	EXT, 
    	INS, 
    	DEXT, 
    	DEXTM, 
    	DEXTU, 
    	DINS, 
    	DINSM, 
    	DINSU, 
    	ROTR, 
    	ROTRV, 
    	DROTR, 
    	DROTRV, 
    	DROTR32, 
    	WSBH, 
    	DSBH, 
    	DSHD, 
    	SEB, 
    	SEH, 
    	// R2 misc
    	RDHWR, 
    	RDPGPR, 
    	WRPGPR, 
    	DI, 
    	EI, 
    	ERET, 
    	DERET, 
    	WAIT, 
    	// Compact (no delay slot)
    	BC, 
    	BALC,                // 26-bit
    	BEQC, 
    	BNEC, 
    	BLTC, 
    	BGEC, 
    	BLTUC, 
    	BGEUC, 
    	BLEZC, 
    	BGEZC, 
    	BGTZC, 
    	BLTZC, 
    	BEQZC, 
    	BNEZC, 
    	BC1EQZ, 
    	BC1NEZ, 
    	BC2EQZ, 
    	BC2NEZ, 
    	JIC, 
    	JIALC, 
    	// R6 mul/div (replaces MULT/MULTU/DIV/DIVU; results in single GPR)
    	MUH, 
    	MULU, 
    	MUHU, 
    	MOD, 
    	MODU, 
    	DMUL, 
    	DMUH, 
    	DMULU, 
    	DMUHU, 
    	DMOD, 
    	DMODU, 
    	// R6 PC-relative immediates
    	AUI, 
    	AUIPC, 
    	ALUIPC, 
    	DAUI, 
    	DAHI, 
    	DATI, 
    	// R6 misc
    	ALIGN, 
    	DALIGN, 
    	BITSWAP, 
    	DBITSWAP, 
    	LSA, 
    	DLSA, 
    	LWPC, 
    	LWUPC, 
    	LDPC, 
    	SELEQZ, 
    	SELNEZ, 
    	// R6 CRC32 (optional in MIPS32 R6)
    	CRC32B, 
    	CRC32H, 
    	CRC32W, 
    	CRC32D, 
    	CRC32CB, 
    	CRC32CH, 
    	CRC32CW, 
    	CRC32CD, 
    	SIGRIE,              // signal reserved instruction exception
    	MFC1, 
    	MTC1, 
    	DMFC1, 
    	DMTC1, 
    	CFC1, 
    	CTC1, 
    	MFHC1, 
    	MTHC1,               // R2: high word of paired single
    	LWC1, 
    	SWC1, 
    	LDC1, 
    	SDC1, 
    	ADD_S, 
    	ADD_D, 
    	ADD_PS, 
    	SUB_S, 
    	SUB_D, 
    	SUB_PS, 
    	MUL_S, 
    	MUL_D, 
    	MUL_PS, 
    	DIV_S, 
    	DIV_D, 
    	SQRT_S, 
    	SQRT_D, 
    	ABS_S, 
    	ABS_D, 
    	ABS_PS, 
    	NEG_S, 
    	NEG_D, 
    	NEG_PS, 
    	MOV_S, 
    	MOV_D, 
    	MOV_PS, 
    	RECIP_S, 
    	RECIP_D, 
    	RSQRT_S, 
    	RSQRT_D, 
    	// FMA family (MIPS IV+)
    	MADD_S, 
    	MADD_D, 
    	MADD_PS, 
    	MSUB_S, 
    	MSUB_D, 
    	MSUB_PS, 
    	NMADD_S, 
    	NMADD_D, 
    	NMADD_PS, 
    	NMSUB_S, 
    	NMSUB_D, 
    	NMSUB_PS, 
    	// Conditional move (FPR by GPR / FCC)
    	MOVN_S, 
    	MOVN_D, 
    	MOVN_PS, 
    	MOVZ_S, 
    	MOVZ_D, 
    	MOVZ_PS, 
    	MOVF_S, 
    	MOVF_D, 
    	MOVF_PS, 
    	MOVT_S, 
    	MOVT_D, 
    	MOVT_PS, 
    	CVT_S_D, 
    	CVT_S_W, 
    	CVT_S_L, 
    	CVT_D_S, 
    	CVT_D_W, 
    	CVT_D_L, 
    	CVT_W_S, 
    	CVT_W_D, 
    	CVT_L_S, 
    	CVT_L_D, 
    	CVT_PS_S, 
    	CVT_S_PU, 
    	CVT_S_PL, 
    	PLL_PS, 
    	PLU_PS, 
    	PUL_PS, 
    	PUU_PS, 
    	// FPU round-to-fixed-point
    	ROUND_W_S, 
    	ROUND_W_D, 
    	ROUND_L_S, 
    	ROUND_L_D, 
    	TRUNC_W_S, 
    	TRUNC_W_D, 
    	TRUNC_L_S, 
    	TRUNC_L_D, 
    	CEIL_W_S, 
    	CEIL_W_D, 
    	CEIL_L_S, 
    	CEIL_L_D, 
    	FLOOR_W_S, 
    	FLOOR_W_D, 
    	FLOOR_L_S, 
    	FLOOR_L_D, 
    	C_F_S, 
    	C_F_D, 
    	C_F_PS, 
    	C_UN_S, 
    	C_UN_D, 
    	C_UN_PS, 
    	C_EQ_S, 
    	C_EQ_D, 
    	C_EQ_PS, 
    	C_UEQ_S, 
    	C_UEQ_D, 
    	C_UEQ_PS, 
    	C_OLT_S, 
    	C_OLT_D, 
    	C_OLT_PS, 
    	C_ULT_S, 
    	C_ULT_D, 
    	C_ULT_PS, 
    	C_OLE_S, 
    	C_OLE_D, 
    	C_OLE_PS, 
    	C_ULE_S, 
    	C_ULE_D, 
    	C_ULE_PS, 
    	C_SF_S, 
    	C_SF_D, 
    	C_SF_PS, 
    	C_NGLE_S, 
    	C_NGLE_D, 
    	C_NGLE_PS, 
    	C_SEQ_S, 
    	C_SEQ_D, 
    	C_SEQ_PS, 
    	C_NGL_S, 
    	C_NGL_D, 
    	C_NGL_PS, 
    	C_LT_S, 
    	C_LT_D, 
    	C_LT_PS, 
    	C_NGE_S, 
    	C_NGE_D, 
    	C_NGE_PS, 
    	C_LE_S, 
    	C_LE_D, 
    	C_LE_PS, 
    	C_NGT_S, 
    	C_NGT_D, 
    	C_NGT_PS, 
    	// FPU branches
    	BC1F, 
    	BC1T, 
    	BC1FL, 
    	BC1TL, 
    	MFC0, 
    	MTC0, 
    	DMFC0, 
    	DMTC0, 
    	MFHC0, 
    	MTHC0,               // R5+ high half of 64-bit registers
    	TLBP, 
    	TLBR, 
    	TLBWI, 
    	TLBWR, 
    	CACHE, 
    	// Standard COP2 moves (GTE registers via these)
    	MFC2, 
    	MTC2, 
    	CFC2, 
    	CTC2, 
    	LWC2, 
    	SWC2, 
    	LDC2, 
    	SDC2,                // LDC2/SDC2 exist on MIPS II+; PS1 R3000A does not implement
    	// GTE ops (cofun-encoded, no GPR operands)
    	RTPS, 
    	RTPT, 
    	DPCS, 
    	DPCT, 
    	INTPL, 
    	MVMVA, 
    	NCDS, 
    	NCDT, 
    	NCCS, 
    	NCCT, 
    	NCS, 
    	NCT, 
    	CDP, 
    	CC, 
    	NCLIP, 
    	AVSZ3, 
    	AVSZ4, 
    	OP,                  // "OP" (cross product) — disambiguated from MIPS R6 OP
    	GPF, 
    	GPL, 
    	SQR,                 // "SQR" — disambiguated from generic
    	DCPL,                // depth-cue per light
    	// 128-bit GPR load/store
    	LQ, 
    	SQ, 
    	// VU0 macro-mode 128-bit COP2 moves
    	LQC2, 
    	SQC2, 
    	// Second HI/LO pair (R5900 dual MAC)
    	MFHI1, 
    	MFLO1, 
    	MTHI1, 
    	MTLO1, 
    	MULT1, 
    	MULTU1, 
    	DIV1, 
    	DIVU1, 
    	MADD1, 
    	MADDU1, 
    	MSUB1, 
    	MSUBU1, 
    	// Packed pack/unpack HI:LO
    	PMFHL_LW, 
    	PMFHL_UW, 
    	PMFHL_LH, 
    	PMFHL_SH, 
    	PMFHL_SLW, 
    	PMTHL_LW, 
    	// Parallel arithmetic (byte/halfword/word lanes)
    	PADDB, 
    	PADDH, 
    	PADDW, 
    	PADDSB, 
    	PADDSH, 
    	PADDSW, 
    	PADDUB, 
    	PADDUH, 
    	PADDUW, 
    	PSUBB, 
    	PSUBH, 
    	PSUBW, 
    	PSUBSB, 
    	PSUBSH, 
    	PSUBSW, 
    	PSUBUB, 
    	PSUBUH, 
    	PSUBUW, 
    	// Parallel shifts
    	PSLLH, 
    	PSRLH, 
    	PSRAH, 
    	PSLLW, 
    	PSRLW, 
    	PSRAW, 
    	PSLLVW, 
    	PSRLVW, 
    	PSRAVW, 
    	QFSRV,               // quad funnel shift right (across 128 bits)
    	// Parallel logical
    	PAND, 
    	POR, 
    	PXOR, 
    	PNOR, 
    	// Parallel compare
    	PCEQB, 
    	PCEQH, 
    	PCEQW, 
    	PCGTB, 
    	PCGTH, 
    	PCGTW, 
    	// Parallel multiply / divide
    	PMULTW, 
    	PMULTUW, 
    	PMULTH, 
    	PMADDW, 
    	PMADDUW, 
    	PMADDH, 
    	PMSUBW, 
    	PMSUBH, 
    	PHMADH, 
    	PHMSBH, 
    	PDIVW, 
    	PDIVUW, 
    	PDIVBW, 
    	// Pack / rearrange
    	PCPYLD, 
    	PCPYUD, 
    	PCPYH, 
    	PINTH, 
    	PINTOH, 
    	PEXEH, 
    	PEXEW, 
    	PEXCH, 
    	PEXCW, 
    	PROT3W, 
    	PPACB, 
    	PPACH, 
    	PPACW, 
    	PPAC5, 
    	PEXT5, 
    	PEXTLB, 
    	PEXTLH, 
    	PEXTLW, 
    	PEXTUB, 
    	PEXTUH, 
    	PEXTUW, 
    	// MMI HI/LO helpers
    	PMFHI, 
    	PMFLO, 
    	PMTHI, 
    	PMTLO, 
    	// Misc MMI
    	PLZCW, 
    	PABSH, 
    	PABSW, 
    	PMAXH, 
    	PMAXW, 
    	PMINH, 
    	PMINW, 
    	// Shift-amount register
    	MFSA, 
    	MTSA, 
    	MTSAB, 
    	MTSAH, 
    	// Packed add/sub (saturating)
    	ADDQ_PH, 
    	ADDQ_S_PH, 
    	ADDQ_S_W, 
    	SUBQ_PH, 
    	SUBQ_S_PH, 
    	SUBQ_S_W, 
    	ADDU_QB, 
    	ADDU_S_QB, 
    	ADDU_PH, 
    	ADDU_S_PH, 
    	SUBU_QB, 
    	SUBU_S_QB, 
    	SUBU_PH, 
    	SUBU_S_PH, 
    	ADDSC, 
    	ADDWC,               // 32-bit + carry/borrow
    	// Packed multiply / dot-product / accumulate
    	MULEU_S_PH_QBL, 
    	MULEU_S_PH_QBR, 
    	MULEQ_S_W_PHL, 
    	MULEQ_S_W_PHR, 
    	MULQ_RS_PH, 
    	MULQ_S_PH, 
    	MULSAQ_S_W_PH, 
    	DPAQ_S_W_PH, 
    	DPSQ_S_W_PH, 
    	DPAQ_SA_L_W, 
    	DPSQ_SA_L_W, 
    	DPAU_H_QBL, 
    	DPAU_H_QBR, 
    	DPSU_H_QBL, 
    	DPSU_H_QBR, 
    	DPA_W_PH, 
    	DPS_W_PH,            // R2
    	DPAX_W_PH, 
    	DPSX_W_PH,           // R2
    	MAQ_S_W_PHL, 
    	MAQ_S_W_PHR, 
    	MAQ_SA_W_PHL, 
    	MAQ_SA_W_PHR, 
    	// Extract / position / accumulator helpers
    	EXTR_W, 
    	EXTR_R_W, 
    	EXTR_RS_W, 
    	EXTR_S_H, 
    	EXTRV_W, 
    	EXTRV_R_W, 
    	EXTRV_RS_W, 
    	EXTRV_S_H, 
    	EXTP, 
    	EXTPV, 
    	EXTPDP, 
    	EXTPDPV, 
    	SHILO, 
    	SHILOV, 
    	MTHLIP, 
    	WRDSP, 
    	RDDSP, 
    	// Pack / unpack
    	PRECRQ_QB_PH, 
    	PRECRQ_PH_W, 
    	PRECRQU_S_QB_PH, 
    	PRECEQ_W_PHL, 
    	PRECEQ_W_PHR, 
    	PRECEQU_PH_QBL, 
    	PRECEQU_PH_QBR, 
    	PRECEQU_PH_QBLA, 
    	PRECEQU_PH_QBRA, 
    	PRECEU_PH_QBL, 
    	PRECEU_PH_QBR, 
    	PRECEU_PH_QBLA, 
    	PRECEU_PH_QBRA, 
    	PRECRQ_RS_PH_W, 
    	// Compare / pick
    	CMPU_EQ_QB, 
    	CMPU_LT_QB, 
    	CMPU_LE_QB, 
    	CMP_EQ_PH, 
    	CMP_LT_PH, 
    	CMP_LE_PH, 
    	CMPGU_EQ_QB, 
    	CMPGU_LT_QB, 
    	CMPGU_LE_QB, 
    	PICK_QB, 
    	PICK_PH, 
    	// Shift
    	SHLL_QB, 
    	SHLL_PH, 
    	SHLL_S_PH, 
    	SHLL_S_W, 
    	SHLLV_QB, 
    	SHLLV_PH, 
    	SHLLV_S_PH, 
    	SHLLV_S_W, 
    	SHRL_QB, 
    	SHRL_PH, 
    	SHRLV_QB, 
    	SHRLV_PH, 
    	SHRA_QB, 
    	SHRA_R_QB, 
    	SHRA_PH, 
    	SHRA_R_PH, 
    	SHRA_R_W, 
    	SHRAV_QB, 
    	SHRAV_R_QB, 
    	SHRAV_PH, 
    	SHRAV_R_PH, 
    	SHRAV_R_W, 
    	// Indexed loads (rs+rt addressing) — register-register addressing.
    	LBUX, 
    	LHX, 
    	LWX, 
    	// DSP control / branch
    	BPOSGE32,            // branch if DSPControl.pos >= 32
    	INSV,                // insert variable position
    	BITREV,              // R2 bit reversal
    	ABSQ_S_PH, 
    	ABSQ_S_W, 
    	REPL_PH, 
    	REPLV_PH, 
    	REPL_QB, 
    	REPLV_QB, 
    	// Vector register-register integer arithmetic (.B/.H/.W/.D lane width)
    	ADDV_B, 
    	ADDV_H, 
    	ADDV_W, 
    	ADDV_D, 
    	SUBV_B, 
    	SUBV_H, 
    	SUBV_W, 
    	SUBV_D, 
    	ADDS_S_B, 
    	ADDS_S_H, 
    	ADDS_S_W, 
    	ADDS_S_D, 
    	ADDS_U_B, 
    	ADDS_U_H, 
    	ADDS_U_W, 
    	ADDS_U_D, 
    	SUBS_S_B, 
    	SUBS_S_H, 
    	SUBS_S_W, 
    	SUBS_S_D, 
    	SUBS_U_B, 
    	SUBS_U_H, 
    	SUBS_U_W, 
    	SUBS_U_D, 
    	MULV_B, 
    	MULV_H, 
    	MULV_W, 
    	MULV_D, 
    	DIV_S_B, 
    	DIV_S_H, 
    	DIV_S_W, 
    	DIV_S_D, 
    	DIV_U_B, 
    	DIV_U_H, 
    	DIV_U_W, 
    	DIV_U_D, 
    	MOD_S_B, 
    	MOD_S_H, 
    	MOD_S_W, 
    	MOD_S_D, 
    	MOD_U_B, 
    	MOD_U_H, 
    	MOD_U_W, 
    	MOD_U_D, 
    	MADDV_B, 
    	MADDV_H, 
    	MADDV_W, 
    	MADDV_D, 
    	MSUBV_B, 
    	MSUBV_H, 
    	MSUBV_W, 
    	MSUBV_D, 
    	DOTP_S_H, 
    	DOTP_S_W, 
    	DOTP_S_D, 
    	DOTP_U_H, 
    	DOTP_U_W, 
    	DOTP_U_D, 
    	// Vector logical
    	AND_V, 
    	OR_V, 
    	NOR_V, 
    	XOR_V, 
    	ANDI_B, 
    	ORI_B, 
    	NORI_B, 
    	XORI_B, 
    	BSEL_V, 
    	BSELI_B, 
    	BMNZ_V, 
    	BMNZI_B, 
    	BMZ_V, 
    	BMZI_B, 
    	// Vector compare
    	CEQ_B, 
    	CEQ_H, 
    	CEQ_W, 
    	CEQ_D, 
    	CLT_S_B, 
    	CLT_S_H, 
    	CLT_S_W, 
    	CLT_S_D, 
    	CLT_U_B, 
    	CLT_U_H, 
    	CLT_U_W, 
    	CLT_U_D, 
    	CLE_S_B, 
    	CLE_S_H, 
    	CLE_S_W, 
    	CLE_S_D, 
    	CLE_U_B, 
    	CLE_U_H, 
    	CLE_U_W, 
    	CLE_U_D, 
    	// Vector min/max
    	MIN_S_B, 
    	MIN_S_H, 
    	MIN_S_W, 
    	MIN_S_D, 
    	MIN_U_B, 
    	MIN_U_H, 
    	MIN_U_W, 
    	MIN_U_D, 
    	MAX_S_B, 
    	MAX_S_H, 
    	MAX_S_W, 
    	MAX_S_D, 
    	MAX_U_B, 
    	MAX_U_H, 
    	MAX_U_W, 
    	MAX_U_D, 
    	// Vector shifts
    	SLL_B, 
    	SLL_H, 
    	SLL_W, 
    	SLL_D, 
    	SRL_B, 
    	SRL_H, 
    	SRL_W, 
    	SRL_D, 
    	SRA_B, 
    	SRA_H, 
    	SRA_W, 
    	SRA_D, 
    	SLLI_B, 
    	SLLI_H, 
    	SLLI_W, 
    	SLLI_D, 
    	SRLI_B, 
    	SRLI_H, 
    	SRLI_W, 
    	SRLI_D, 
    	SRAI_B, 
    	SRAI_H, 
    	SRAI_W, 
    	SRAI_D, 
    	// Vector FP arithmetic
    	FADD_W, 
    	FADD_D, 
    	FSUB_W, 
    	FSUB_D, 
    	FMUL_W, 
    	FMUL_D, 
    	FDIV_W, 
    	FDIV_D, 
    	FSQRT_W, 
    	FSQRT_D, 
    	FRSQRT_W, 
    	FRSQRT_D, 
    	FRCP_W, 
    	FRCP_D, 
    	FRINT_W, 
    	FRINT_D, 
    	FMAX_W, 
    	FMAX_D, 
    	FMIN_W, 
    	FMIN_D, 
    	FCEQ_W, 
    	FCEQ_D, 
    	FCNE_W, 
    	FCNE_D, 
    	FCLT_W, 
    	FCLT_D, 
    	FCLE_W, 
    	FCLE_D, 
    	// Vector conversion
    	FFINT_S_W, 
    	FFINT_S_D, 
    	FFINT_U_W, 
    	FFINT_U_D, 
    	FTRUNC_S_W, 
    	FTRUNC_S_D, 
    	FTRUNC_U_W, 
    	FTRUNC_U_D, 
    	FCVT_S_W, 
    	FCVT_S_D, 
    	FCVT_D_W, 
    	// Vector load/store + immediate
    	LD_B, 
    	LD_H, 
    	LD_W, 
    	LD_D, 
    	ST_B, 
    	ST_H, 
    	ST_W, 
    	ST_D, 
    	LDI_B, 
    	LDI_H, 
    	LDI_W, 
    	LDI_D, 
    	// Vector shuffle / copy / insert
    	COPY_S_B, 
    	COPY_S_H, 
    	COPY_S_W, 
    	COPY_U_B, 
    	COPY_U_H, 
    	COPY_U_W, 
    	INSERT_B, 
    	INSERT_H, 
    	INSERT_W, 
    	INSERT_D, 
    	INSVE_B, 
    	INSVE_H, 
    	INSVE_W, 
    	INSVE_D, 
    	SHF_B, 
    	SHF_H, 
    	SHF_W, 
    	VSHF_B, 
    	VSHF_H, 
    	VSHF_W, 
    	VSHF_D, 
    	SLD_B, 
    	SLD_H, 
    	SLD_W, 
    	SLD_D, 
    	SLDI_B, 
    	SLDI_H, 
    	SLDI_W, 
    	SLDI_D, 
    	SPLAT_B, 
    	SPLAT_H, 
    	SPLAT_W, 
    	SPLAT_D, 
    	SPLATI_B, 
    	SPLATI_H, 
    	SPLATI_W, 
    	SPLATI_D, 
    	// MSA branches (vector all-zero / any-non-zero across all lanes / per-lane)
    	BZ_V, 
    	BNZ_V, 
    	BZ_B, 
    	BZ_H, 
    	BZ_W, 
    	BZ_D, 
    	BNZ_B, 
    	BNZ_H, 
    	BNZ_W, 
    	BNZ_D, 
    	// Element-permute / count / bit-ops
    	NLOC_B, 
    	NLOC_H, 
    	NLOC_W, 
    	NLOC_D, 
    	NLZC_B, 
    	NLZC_H, 
    	NLZC_W, 
    	NLZC_D, 
    	PCNT_B, 
    	PCNT_H, 
    	PCNT_W, 
    	PCNT_D, 
    	// Move / load / store / immediates
    	VMOV_S, 
    	VMOV_P, 
    	VMOV_T, 
    	VMOV_Q, 
    	LV_S, 
    	LV_Q, 
    	SV_S, 
    	SV_Q, 
    	LVL_Q, 
    	LVR_Q, 
    	SVL_Q, 
    	SVR_Q, 
    	VIIM_S, 
    	VFIM_S, 
    	// Arithmetic
    	VADD_S, 
    	VADD_P, 
    	VADD_T, 
    	VADD_Q, 
    	VSUB_S, 
    	VSUB_P, 
    	VSUB_T, 
    	VSUB_Q, 
    	VMUL_S, 
    	VMUL_P, 
    	VMUL_T, 
    	VMUL_Q, 
    	VDIV_S, 
    	VDIV_P, 
    	VDIV_T, 
    	VDIV_Q, 
    	VABS_S, 
    	VABS_P, 
    	VABS_T, 
    	VABS_Q, 
    	VNEG_S, 
    	VNEG_P, 
    	VNEG_T, 
    	VNEG_Q, 
    	VSQRT_S, 
    	VRCP_S, 
    	VRCP_P, 
    	VRCP_T, 
    	VRCP_Q, 
    	VRSQ_S, 
    	VRSQ_P, 
    	VRSQ_T, 
    	VRSQ_Q, 
    	// Reductions / dot / scale
    	VDOT_P, 
    	VDOT_T, 
    	VDOT_Q, 
    	VSCL_P, 
    	VSCL_T, 
    	VSCL_Q, 
    	VHDP_P, 
    	VHDP_T, 
    	VHDP_Q, 
    	VAVG_P, 
    	VAVG_T, 
    	VAVG_Q, 
    	VFAD_P, 
    	VFAD_T, 
    	VFAD_Q, 
    	// Matrix ops
    	VMMUL_P, 
    	VMMUL_T, 
    	VMMUL_Q, 
    	VTFM2_P, 
    	VTFM3_T, 
    	VTFM4_Q, 
    	VHTFM2_P, 
    	VHTFM3_T, 
    	VHTFM4_Q, 
    	VMSCL_P, 
    	VMSCL_T, 
    	VMSCL_Q, 
    	VMMOV_P, 
    	VMMOV_T, 
    	VMMOV_Q, 
    	VMIDT_P, 
    	VMIDT_T, 
    	VMIDT_Q, 
    	VMZERO_P, 
    	VMZERO_T, 
    	VMZERO_Q, 
    	VMONE_P, 
    	VMONE_T, 
    	VMONE_Q, 
    	// Cross / quaternion
    	VCRS_T, 
    	VCRSP_T, 
    	VQMUL_Q, 
    	// Compares & sel
    	VCMP_S, 
    	VCMP_P, 
    	VCMP_T, 
    	VCMP_Q, 
    	VMIN_S, 
    	VMIN_P, 
    	VMIN_T, 
    	VMIN_Q, 
    	VMAX_S, 
    	VMAX_P, 
    	VMAX_T, 
    	VMAX_Q, 
    	// Transcendentals
    	VSIN_S, 
    	VCOS_S, 
    	VEXP2_S, 
    	VLOG2_S, 
    	VASIN_S, 
    	VNRCP_S, 
    	VNSIN_S, 
    	VREXP2_S, 
    	VSGN_S, 
    	// Conversion
    	VI2F_S, 
    	VI2F_P, 
    	VI2F_T, 
    	VI2F_Q, 
    	VF2IN_S, 
    	VF2IN_P, 
    	VF2IN_T, 
    	VF2IN_Q, 
    	VF2IZ_S, 
    	VF2IZ_P, 
    	VF2IZ_T, 
    	VF2IZ_Q, 
    	VF2IU_S, 
    	VF2IU_P, 
    	VF2IU_T, 
    	VF2IU_Q, 
    	VF2ID_S, 
    	VF2ID_P, 
    	VF2ID_T, 
    	VF2ID_Q, 
    	VF2H_P, 
    	VH2F_S, 
    	// Control / move-between
    	VFLUSH, 
    	VSYNC, 
    	VNOP, 
    	VPFXS, 
    	VPFXT, 
    	VPFXD, 
    	VCST_S, 
    	VCST_P, 
    	VCST_T, 
    	VCST_Q, 
    	MFV, 
    	MTV, 
    	MFVC, 
    	MTVC, 
    	BVF, 
    	BVT, 
    	BVFL, 
    	BVTL, 
    }

    Related Procedures With Parameters

    Operand ¶

    Operand :: struct #packed {
    	using _: struct #raw_union {
    		reg:       Register,
    		// 2 bytes
    		mem:       Memory,
    		// 8 bytes
    		immediate: i64,
    		// 8 bytes
    		relative:  i64,
    	},
    	kind: Operand_Kind,
    	// 1 byte
    	size: u8,
    }
     

    Operand: kind-tagged union, 16 bytes.

    Related Procedures With Returns

    Operand_Encoding ¶

    Operand_Encoding :: enum u8 {
    	NONE, 
    	// Standard MIPS field placements (R/I-type)
    	RS,                // bits 25-21
    	RT,                // bits 20-16
    	RD,                // bits 15-11
    	SHAMT,             // bits 10-6
    	// FP register placements (FR-format; overlap RS/RT/RD/SHAMT positions)
    	FT,                // bits 20-16
    	FS,                // bits 15-11
    	FD,                // bits 10-6
    	// Immediates
    	IMM_16,            // bits 15-0
    	IMM_5,             // bits 10-6 (same slot as SHAMT)
    	IMM_20,            // bits 25-6 (SYSCALL/BREAK code)
    	IMM_26,            // bits 25-0 (J-type target word)
    	// Memory: implicit RS + IMM_16
    	OFFSET_BASE, 
    	// PC-relative
    	BRANCH_16,         // bits 15-0 as PC-relative word offset (delay-slot adjusted)
    	BRANCH_21,         // R6 compact branch: bits 20-0
    	BRANCH_26,         // R6 compact branch: bits 25-0
    	BRANCH_19,         // R6 PC-relative load: bits 18-0 (LWPC/LWUPC)
    	BRANCH_18,         // R6 PC-relative load: bits 17-0 (LDPC)
    	// FP condition code
    	FCC_BC,            // bits 20-18 (FP branches, MOVF/MOVT)
    	FCC_CC,            // bits 10-8 (C.cond compare results)
    	// CP0 selector
    	SEL,               // bits 2-0
    	// Implicit (operand exists in the asm syntax but is not encoded;
    	// e.g. $zero in branch-likely synthetic forms).
    	IMPL, 
    	// GTE cofun selectors (bit positions within the 25-bit cofun field)
    	GTE_SF_BIT,        // bit 19
    	GTE_MX_BITS,       // bits 18-17
    	GTE_V_BITS,        // bits 16-15
    	GTE_CV_BITS,       // bits 14-13
    	GTE_LM_BIT,        // bit 10
    	// ---- PSP VFPU register slots ------------------------------------------
    	// 
    	// VFPU registers use 7-bit IDs (0..127). The standard 3-operand layout:
    	//   bits 22:16 = vt   (7-bit register ID)
    	//   bits 14:8  = vs   (7-bit register ID)
    	//   bits  6:0  = vd   (7-bit register ID)
    	// The width-modifier bits (bit 15 + bit 7) are NOT operand-driven --
    	// they're baked into the form's static `bits` per the .s/.p/.t/.q
    	// mnemonic suffix, so:
    	//   .s = bit15=0, bit7=0
    	//   .p = bit15=0, bit7=1
    	//   .t = bit15=1, bit7=0
    	//   .q = bit15=1, bit7=1
    	VFPU_VD, 
    	VFPU_VS, 
    	VFPU_VT, 
    	// VFPU register for memory ops where the 7-bit ID is SPLIT:
    	//   bits 20:16 = vt[6:2]   (top 5 bits at the rt position)
    	//   bits  1:0  = vt[1:0]   (bottom 2 bits at the very low position)
    	// Used by LV.S / SV.S / LV.Q / SV.Q.
    	VFPU_VT_MEM, 
    	// VFPU SP-style memory operand: base GPR at bits 25:21 + signed-16
    	// displacement at bits 15:2 (low 2 bits forced 0 = multiple of 4 for S,
    	// multiple of 16 for Q -- user responsible for alignment).
    	VFPU_OFFSET_BASE, 
    	// VFPU prefix immediate: 20-bit prefix mask at bits 19:0 (VPFXS/T/D).
    	VFPU_PFX, 
    	// VFPU constant selector / 5-bit immediate at bits 20:16 (VCST, VF2I*).
    	VFPU_CONST, 
    	// VFPU 4-bit condition code at bits 3:0 (VCMP).
    	VFPU_COND4, 
    	// VFPU 3-bit VCC selector at bits 18:16 (BVF / BVT / BVFL / BVTL).
    	VFPU_CC3, 
    	// MSA 3R-format register slots:
    	//   wd at bits 10:6 (alias of RD/SHAMT bit positions)
    	//   ws at bits 15:11 (alias of RD)
    	//   wt at bits 20:16 (alias of RT)
    	WD, 
    	WS, 
    	WT, 
    	// MSA element-index / immediate fields used by some forms (ELM/I5/BIT)
    	MSA_I5,            // 5-bit immediate at bits 20:16 (LDI/I5 forms)
    	MSA_S10,           // signed 10-bit displacement at bits 25:16 (MI10 load/store)
    	MSA_BIT5,          // bit position (5-bit) at bits 16:11 (BIT form)
    	// The shift amount / element index sits at bits 22:16 / 21:16 with the data
    	// format encoded by the high (marker) bits; the operand drives the low bits
    	// (the marker is fixed in the entry `bits`). Decode infers df from the marker.
    	MSA_BIT_SHIFT,     // BIT-format shift amount (.B m=0x70|sh, .H 0x60|sh, .W 0x40|sh, .D sh)
    	MSA_ELM_IDX,       // ELM-format element index (.B n, .H 0x20|n, .W 0x30|n, .D 0x38|n)
    	MSA_I8,            // 8-bit immediate at bits 23:16 (I8 forms: ANDI.B/SHF/...)
    	FR,                // FP register at bits 25:21 (COP1X 4-register FMA: fr)
    	GPR_AT_6,          // GPR at bits 10:6 (MSA COPY destination)
    	GPR_AT_11,         // GPR at bits 15:11 (MSA INSERT source)
    	DSP_SA,            // DSP shift amount at bits 24:21 (.PH 4-bit, .QB 3-bit)
    	RS_RT,             // same GPR in both rs (25:21) and rt (20:16) (R6 BGEZC/BLTZC)
    	AC_NUM,            // DSP accumulator number ac0..ac3 at bits 12:11 (immediate)
    	SHILO_IMM,         // DSP SHILO signed 6-bit shift at bits 25:20
    	EXT_SIZE,          // DSP EXTPDP extract size, 5-bit immediate at bits 25:21
    	// MSA memory operand: base GPR at bits 15:11 + signed 10-bit disp at 25:16,
    	// scaled by element size (1/2/4/8 for B/H/W/D).
    	MSA_OFFSET_BASE_B, 
    	MSA_OFFSET_BASE_H, 
    	MSA_OFFSET_BASE_W, 
    	MSA_OFFSET_BASE_D, 
    }
     

    Operand ENCODING — where each operand's bits go in the instruction word.

    Operand_Kind ¶

    Operand_Kind :: enum u8 {
    	NONE, 
    	REGISTER, 
    	MEMORY, 
    	IMMEDIATE, 
    	RELATIVE,  // PC-relative target (label or raw offset)
    }

    Operand_Type ¶

    Operand_Type :: enum u8 {
    	NONE, 
    	// Integer registers
    	GPR, 
    	GPR_ZERO, // implicit $zero (rare; for disambiguation)
    	// FP register, format-tagged
    	FPR_S, 
    	FPR_D, 
    	FPR_W, 
    	FPR_L, 
    	FPR_PS, 
    	FCR,      // FP control reg ($fcr0/$fccr/$fexr/$fenr/$fcsr)
    	// Coprocessor registers
    	CP0_REG,  // CP0 register (0-31), with optional sel
    	CP2_REG,  // COP2 data register (GTE V*/MAC*/SXY*; VU vf*)
    	CP2_CTRL, // COP2 control register
    	// VFPU registers (PSP) — single, pair, triple, quad
    	VFPU_S, 
    	VFPU_P, 
    	VFPU_T, 
    	VFPU_Q, 
    	VFPU_M_P, 
    	VFPU_M_T, 
    	VFPU_M_Q, // matrix forms
    	// MSA vector register (W0..W31). Format suffix (.B/.H/.W/.D) is baked
    	// into the mnemonic, so a single operand-type is enough at match time.
    	MSA_VEC, 
    	// Immediates
    	IMM5,     // 5-bit shift amount or small literal
    	IMM16S,   // signed 16-bit
    	IMM16U,   // unsigned (zero-extended) 16-bit
    	IMM20,    // 20-bit SYSCALL/BREAK/SDBBP code
    	IMM26,    // 26-bit J-type target word
    	SEL,      // CP0 selector (3 bits, R2+)
    	// PC-relative branch targets
    	REL16,    // 16-bit signed offset (<<2), I-type branches
    	REL_J26,  // 26-bit region jump (J / JAL)
    	REL21,    // R6 21-bit compact branch (BC1EQZ/NEZ)
    	REL26,    // R6 26-bit compact branch (BC/BALC)
    	REL19,    // R6 PC-relative load (LWPC/LWUPC, 19-bit << 2)
    	REL18,    // R6 PC-relative load (LDPC, 18-bit << 3)
    	// Memory: base GPR + 16-bit signed displacement
    	MEM, 
    	// Condition codes / cofun selectors
    	FCC,      // FP condition-code field (3 bits)
    	// GTE-specific cofun selectors (the few that are user-visible)
    	GTE_SF, 
    	GTE_MX, 
    	GTE_V, 
    	GTE_CV, 
    	GTE_LM, 
    }
     

    Operand TYPES — what the user passes in.

    Relocation ¶

    Relocation :: struct #packed {
    	offset:   u32,
    	label_id: u32,
    	addend:   i32,
    	type:     Relocation_Type,
    	size:     u8,
    	inst_idx: u16,
    }

    Relocation_Type ¶

    Relocation_Type :: enum u8 {
    	NONE     = 0, 
    	REL16,        // 16-bit signed PC-rel branch offset (BEQ/BNE/BLEZ/BGTZ/...)
    	REL21,        // 21-bit signed PC-rel compact branch (R6 BEQZC/BNEZC)
    	REL26,        // 26-bit signed PC-rel compact branch (R6 BC/BALC)
    	REL_PC19,     // 19-bit R6 PC-relative load offset ((target - PC) >> 2)  (LWPC/LWUPC)
    	REL_PC18,     // 18-bit R6 PC-relative load offset ((target - (PC & ~7)) >> 3)  (LDPC)
    	J26,          // 26-bit J-type region target ((target_addr >> 2) & 0x3FFFFFF)
    	HI16,         // upper 16 of 32-bit absolute (LUI rt, %hi(sym)+0x8000 if LO16 paired)
    	LO16,         // lower 16 of 32-bit absolute (ADDIU rt, rt, %lo(sym))
    }

    Token ¶

    Token :: rexcode_isa.Token
     

    Re-exports.

    Constants

    One row per constant, under the prefix it shares with others.

    A0:: Register(REG_GPR | 4)
    A1:: Register(REG_GPR | 5)
    A2:: Register(REG_GPR | 6)
    A3:: Register(REG_GPR | 7)
    AT:: Register(REG_GPR | 1)
    DEFAULT_PRINT_OPTIONS: rexcode_isa.Print_Options : isa.DEFAULT_PRINT_OPTIONS
    F0:: Register(REG_FPR | 0)
    F1:: Register(REG_FPR | 1)
    F10:: Register(REG_FPR | 10)
    F11:: Register(REG_FPR | 11)
    F12:: Register(REG_FPR | 12)
    F13:: Register(REG_FPR | 13)
    F14:: Register(REG_FPR | 14)
    F15:: Register(REG_FPR | 15)
    F16:: Register(REG_FPR | 16)
    F17:: Register(REG_FPR | 17)
    F18:: Register(REG_FPR | 18)
    F19:: Register(REG_FPR | 19)
    F2:: Register(REG_FPR | 2)
    F20:: Register(REG_FPR | 20)
    F21:: Register(REG_FPR | 21)
    F22:: Register(REG_FPR | 22)
    F23:: Register(REG_FPR | 23)
    F24:: Register(REG_FPR | 24)
    F25:: Register(REG_FPR | 25)
    F26:: Register(REG_FPR | 26)
    F27:: Register(REG_FPR | 27)
    F28:: Register(REG_FPR | 28)
    F29:: Register(REG_FPR | 29)
    F3:: Register(REG_FPR | 3)
    F30:: Register(REG_FPR | 30)
    F31:: Register(REG_FPR | 31)
    F4:: Register(REG_FPR | 4)
    F5:: Register(REG_FPR | 5)
    F6:: Register(REG_FPR | 6)
    F7:: Register(REG_FPR | 7)
    F8:: Register(REG_FPR | 8)
    F9:: Register(REG_FPR | 9)
    FCR0:: Register(REG_FCR | 0)
    FIR (FP implementation/revision)
    FCR25:: Register(REG_FCR | 25)
    FCCR (FP condition codes, R2+)
    FCR26:: Register(REG_FCR | 26)
    FEXR (FP exceptions, R2+)
    FCR28:: Register(REG_FCR | 28)
    FENR (FP enables, R2+)
    FCR31:: Register(REG_FCR | 31)
    FCSR (FP control/status)
    FEATURES_ALL: Feature_Set : ~Feature_Set{}
    FEATURES_MIPS_III:: Feature_Set{.MIPS_I, .MIPS_II, .MIPS_III, .COP0, .FPU}
    The NEC VR4300 (Nintendo 64) and other classic 64-bit MIPS III cores: the MIPS I/II/III integer ISA plus COP0 (system control) and the COP1 FPU.

    The NEC VR4300 (Nintendo 64) and other classic 64-bit MIPS III cores: the MIPS I/II/III integer ISA plus COP0 (system control) and the COP1 FPU. Excludes MIPS IV+/R6 and every console-specific COP2 extension (PS1 GTE, PS2 MMI/VU, PSP VFPU), so e.g. opcode 0x37 decodes as LD, not vfim.s.

    FP:: Register(REG_GPR | 30)
    GP:: Register(REG_GPR | 28)
    HI:: Register(REG_HILO | 0)
    HI1:: Register(REG_HILO | 2)
    PS2 second hi/lo pair (R5900 has two MAC units).
    K0:: Register(REG_GPR | 26)
    K1:: Register(REG_GPR | 27)
    LABEL_UNDEFINED: rexcode_isa.Label_Definition : isa.LABEL_UNDEFINED
    LO:: Register(REG_HILO | 1)
    LO1:: Register(REG_HILO | 3)
    MASK_… 19
    MASK_COP_RS: u32 : MASK_OPCODE | MASK_RS
    COP0/1/2 with fixed rs (rs selects the operation).
    MASK_FCC_BC:: u32(0x001C0000)
    bits 20-18
    MASK_FCC_CC:: u32(0x00000700)
    bits 10-8
    MASK_FI: u32 : MASK_OPCODE | MASK_RS | u32(0x00030000)
    COP1 FI-format (BC1*): opcode + rs(=0x08) + tf/nd fixed bits (17-16).
    MASK_FR: u32 : MASK_OPCODE | MASK_RS | MASK_FUNCT
    COP1 FR-format: opcode + fmt(rs) + funct.
    MASK_FUNCT:: u32(0x0000003F)
    bits 5-0
    MASK_I: u32 : MASK_OPCODE
    I-type fixed bits = opcode only.
    MASK_IMM16:: u32(0x0000FFFF)
    bits 15-0
    MASK_IMM26:: u32(0x03FFFFFF)
    bits 25-0
    MASK_J: u32 : MASK_OPCODE
    J-type fixed bits = opcode only.
    MASK_OPCODE:: u32(0xFC000000)
    Field masks (operand-bit positions, kept here so the future encoder can use them by name).
    MASK_R: u32 : MASK_OPCODE | MASK_FUNCT
    Static masks for common pattern combinations.

    Static masks for common pattern combinations. R-type fixed bits = opcode (6) + funct (6).

    MASK_RD:: u32(0x0000F800)
    bits 15-11
    MASK_REGIMM: u32 : MASK_OPCODE | MASK_RT
    REGIMM fixed bits = opcode + rt (the funct field for REGIMM).
    MASK_RS:: u32(0x03E00000)
    bits 25-21
    MASK_RT:: u32(0x001F0000)
    bits 20-16
    MASK_R_NOSH: u32 : MASK_R | MASK_SHAMT
    R-type with fixed shamt=0 (most ADD/AND/etc.).
    MASK_SEL:: u32(0x00000007)
    bits 2-0
    MASK_SHAMT:: u32(0x000007C0)
    bits 10-6
    MAX_INST_SIZE:: 4
    Largest instruction we ever emit (MIPS is fixed at 4).
    NONE:: Register(0xFFFF)
    RA:: Register(REG_GPR | 31)
    REG_… 10
    REG_CP0:: 0x0400
    system control coprocessor 0 registers
    REG_CP2C:: 0x0600
    COP2 control register
    REG_CP2D:: 0x0500
    COP2 data register (GTE V*/MAC*/SXY*; VU vf*)
    REG_FCR:: 0x0300
    FP control ($fcr0..$fcr31)
    REG_FPR:: 0x0200
    $f0-$f31 floating-point
    REG_GPR:: 0x0100
    $0-$31 general-purpose
    REG_HILO:: 0x0700
    HI / LO multiply-divide accumulators
    REG_MSA:: 0x0900
    MIPS SIMD Architecture $w0-$w31 (128-bit vectors)
    REG_NONE:: 0x0000
    REG_VFPU:: 0x0800
    PSP Allegrex VFPU (matrix-organised)
    S0:: Register(REG_GPR | 16)
    S1:: Register(REG_GPR | 17)
    S2:: Register(REG_GPR | 18)
    S3:: Register(REG_GPR | 19)
    S4:: Register(REG_GPR | 20)
    S5:: Register(REG_GPR | 21)
    S6:: Register(REG_GPR | 22)
    S7:: Register(REG_GPR | 23)
    S8:: Register(REG_GPR | 30)
    alias of FP per the canonical o32/n32 ABIs
    SP:: Register(REG_GPR | 29)
    T0:: Register(REG_GPR | 8)
    T1:: Register(REG_GPR | 9)
    T2:: Register(REG_GPR | 10)
    T3:: Register(REG_GPR | 11)
    T4:: Register(REG_GPR | 12)
    T5:: Register(REG_GPR | 13)
    T6:: Register(REG_GPR | 14)
    T7:: Register(REG_GPR | 15)
    T8:: Register(REG_GPR | 24)
    T9:: Register(REG_GPR | 25)
    V0:: Register(REG_GPR | 2)
    V1:: Register(REG_GPR | 3)
    W0:: Register(REG_MSA | 0)
    MSA $w0..$w31 constants for ergonomic use.
    W1:: Register(REG_MSA | 1)
    W10:: Register(REG_MSA | 10)
    W11:: Register(REG_MSA | 11)
    W12:: Register(REG_MSA | 12)
    W13:: Register(REG_MSA | 13)
    W14:: Register(REG_MSA | 14)
    W15:: Register(REG_MSA | 15)
    W16:: Register(REG_MSA | 16)
    W17:: Register(REG_MSA | 17)
    W18:: Register(REG_MSA | 18)
    W19:: Register(REG_MSA | 19)
    W2:: Register(REG_MSA | 2)
    W20:: Register(REG_MSA | 20)
    W21:: Register(REG_MSA | 21)
    W22:: Register(REG_MSA | 22)
    W23:: Register(REG_MSA | 23)
    W24:: Register(REG_MSA | 24)
    W25:: Register(REG_MSA | 25)
    W26:: Register(REG_MSA | 26)
    W27:: Register(REG_MSA | 27)
    W28:: Register(REG_MSA | 28)
    W29:: Register(REG_MSA | 29)
    W3:: Register(REG_MSA | 3)
    W30:: Register(REG_MSA | 30)
    W31:: Register(REG_MSA | 31)
    W4:: Register(REG_MSA | 4)
    W5:: Register(REG_MSA | 5)
    W6:: Register(REG_MSA | 6)
    W7:: Register(REG_MSA | 7)
    W8:: Register(REG_MSA | 8)
    W9:: Register(REG_MSA | 9)
    ZERO:: Register(REG_GPR | 0)

    Variables

    DECODE_ENTRIES ¶

    @(rodata)
    DECODE_ENTRIES: []Decode_Entry = …

    DECODE_INDEX_COP1 ¶

    @(rodata)
    DECODE_INDEX_COP1: []Decode_Index = …

    DECODE_INDEX_PRIMARY ¶

    @(rodata)
    DECODE_INDEX_PRIMARY: []Decode_Index = …

    DECODE_INDEX_REGIMM ¶

    @(rodata)
    DECODE_INDEX_REGIMM: []Decode_Index = …

    DECODE_INDEX_SPECIAL ¶

    @(rodata)
    DECODE_INDEX_SPECIAL: []Decode_Index = …

    DECODE_INDEX_SPECIAL2 ¶

    @(rodata)
    DECODE_INDEX_SPECIAL2: []Decode_Index = …

    DECODE_INDEX_SPECIAL3 ¶

    @(rodata)
    DECODE_INDEX_SPECIAL3: []Decode_Index = …

    ENCODE_FORMS ¶

    @(rodata)
    ENCODE_FORMS: []Encoding = …

    ENCODE_RUNS ¶

    @(rodata)
    ENCODE_RUNS: []Encode_Run = …

    Procedures

    One row per procedure, under the procedure groups they belong to; each is a proc "contextless" unless it says otherwise.

    aprintproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil, allocator := context.allocator) -> string
    aprintlnproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil, allocator := context.allocator) -> string
    bprintproc(buf: []u8, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    bprintlnproc(buf: []u8, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    cp0_from_num(num: u8) -> Register
    cp2c_from_num(num: u8) -> Register
    cp2d_from_num(num: u8) -> Register
    decodeproc(data: []u8, relocs: []Relocation, instructions: ^[dynamic]Instruction, inst_info: ^[dynamic]Instruction_Info, label_defs: ^[dynamic]rexcode_isa.Label_Definition, errors: ^[dynamic]rexcode_isa.Error, endianness: Endianness = .BIG, features: Feature_Set = FEATURES_ALL) -> (byte_count: u32, ok: bool)
    decode_estimate_instruction_count(data: []u8) -> int
    Typical-case estimate of the instruction count for data.

    Typical-case estimate of the instruction count for data.

    decode_max_instruction_count(data: []u8) -> int
    Instruction-count ceiling for data (MIPS instructions are 4 bytes).

    Instruction-count ceiling for data (MIPS instructions are 4 bytes).

    decode_reserveproc(instructions: ^[dynamic]Instruction, inst_info: ^[dynamic]Instruction_Info, label_defs: ^[dynamic]rexcode_isa.Label_Definition, data: []u8, exact: bool = false)
    Pre-size the caller's decode output arrays for data (reserves on top of any existing elements; nil to skip; exact=true for the ceiling, else the estimate).

    Pre-size the caller's decode output arrays for data (reserves on top of any existing elements; nil to skip; exact=true for the ceiling, else the estimate).

    emit_abs_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_abs_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_abs_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_abs_ps_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_abs_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_abs_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_absq_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_absq_s_ph_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_absq_s_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_absq_s_w_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_addproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_add_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_add_d_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_add_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_add_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_add_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_add_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_add_s_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_addiproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_addi_r_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_addiuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_addiu_r_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_addq_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addq_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addq_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addq_s_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addq_s_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addq_s_w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_adds_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_adds_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addscproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addsc_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_adduproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_s_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_s_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addu_s_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addv_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addv_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_addwcproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_addwc_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_alignproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_align_r_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_aluipcproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_aluipc_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_andproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_and_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_and_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_and_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_andiproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_andi_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_andi_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_andi_r_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_auiproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_aui_r_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_auipcproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_auipc_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_avsz3proc(instructions: ^[dynamic]Instruction)
    emit_avsz3_noneproc(instructions: ^[dynamic]Instruction)
    emit_avsz4proc(instructions: ^[dynamic]Instruction)
    emit_avsz4_noneproc(instructions: ^[dynamic]Instruction)
    emit_balcproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_balc_rel26proc(instructions: ^[dynamic]Instruction, target: u32)
    emit_bcproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_bc1eqzproc(instructions: ^[dynamic]Instruction, dst: FPR, target: u32)
    emit_bc1eqz_f_relproc(instructions: ^[dynamic]Instruction, dst: FPR, target: u32)
    emit_bc1fproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1f_cc_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1flproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1fl_cc_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1nezproc(instructions: ^[dynamic]Instruction, dst: FPR, target: u32)
    emit_bc1nez_f_relproc(instructions: ^[dynamic]Instruction, dst: FPR, target: u32)
    emit_bc1tproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1t_cc_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1tlproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc1tl_cc_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bc2eqzproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, target: u32)
    emit_bc2eqz_c2_relproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, target: u32)
    emit_bc2nezproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, target: u32)
    emit_bc2nez_c2_relproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, target: u32)
    emit_bc_rel26proc(instructions: ^[dynamic]Instruction, target: u32)
    emit_beqproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_beq_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_beqcproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_beqc_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_beqlproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_beql_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_beqzcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_beqzc_r_rel21proc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgecproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bgec_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bgeucproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bgeuc_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bgezproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgez_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezalproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezal_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezallproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezall_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezlproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgezl_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgtzproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgtz_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgtzcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgtzc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgtzlproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bgtzl_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bitrevproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_bitrev_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_bitswapproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_bitswap_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_blezproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_blez_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_blezcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_blezc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_blezlproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_blezl_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltcproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bltc_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bltucproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bltuc_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bltzproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltz_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzalproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzal_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzallproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzall_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzlproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bltzl_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bmnz_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bmnz_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bmnzi_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_bmnzi_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_bmz_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bmz_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bmzi_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_bmzi_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_bneproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bne_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bnecproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bnec_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bnelproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bnel_r_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, target: u32)
    emit_bnezcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bnezc_r_rel21proc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_bnz_bproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_b_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_dproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_d_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_hproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_h_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_vproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_v_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_wproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bnz_w_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bposge32proc(instructions: ^[dynamic]Instruction, target: u32)
    emit_bposge32_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_breakproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_break_i20proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_bsel_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bsel_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_bseli_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_bseli_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_bvfproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvf_i5_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvflproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvfl_i5_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvtproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvt_i5_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvtlproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bvtl_i5_relproc(instructions: ^[dynamic]Instruction, imm: i64, target: u32)
    emit_bz_bproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_b_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_dproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_d_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_hproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_h_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_vproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_v_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_wproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_bz_w_w_relproc(instructions: ^[dynamic]Instruction, dst: Register, target: u32)
    emit_c_eq_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_eq_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_eq_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_eq_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_eq_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_eq_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_f_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_f_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_f_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_f_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_f_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_f_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_le_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_le_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_le_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_le_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_le_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_le_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_lt_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_lt_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_lt_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_lt_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_lt_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_lt_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_nge_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_nge_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_nge_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_nge_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_nge_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_nge_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngl_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngl_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngl_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngl_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngl_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngl_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngle_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngle_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngle_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngle_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngle_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngle_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngt_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngt_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngt_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngt_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngt_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ngt_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ole_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ole_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ole_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ole_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ole_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ole_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_olt_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_olt_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_olt_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_olt_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_olt_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_olt_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_seq_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_seq_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_seq_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_seq_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_seq_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_seq_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_sf_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_sf_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_sf_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_sf_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_sf_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_sf_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ueq_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ueq_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ueq_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ueq_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ueq_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ueq_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ule_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ule_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ule_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ule_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ule_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ule_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ult_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ult_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ult_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ult_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ult_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_ult_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_un_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_un_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_un_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_un_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_un_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_c_un_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_cacheproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_cache_i5_mproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_ccproc(instructions: ^[dynamic]Instruction)
    emit_cc_noneproc(instructions: ^[dynamic]Instruction)
    emit_cdpproc(instructions: ^[dynamic]Instruction)
    emit_cdp_noneproc(instructions: ^[dynamic]Instruction)
    emit_ceil_l_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_l_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_l_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_l_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_w_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_w_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_w_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceil_w_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_ceq_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ceq_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cfc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_cfc1_r_fcrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_cfc2proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_CtrlReg)
    emit_cfc2_r_c2cproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_CtrlReg)
    emit_cle_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cle_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_cloproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_clo_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_clt_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clt_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_clzproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_clz_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmp_eq_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmp_eq_ph_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmp_le_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmp_le_ph_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmp_lt_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmp_lt_ph_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmpgu_eq_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_cmpgu_eq_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_cmpgu_le_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_cmpgu_le_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_cmpgu_lt_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_cmpgu_lt_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_cmpu_eq_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmpu_eq_qb_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmpu_le_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmpu_le_qb_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmpu_lt_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_cmpu_lt_qb_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_copy_s_bproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_s_b_r_w_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_s_hproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_s_h_r_w_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_s_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_s_w_r_w_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_u_bproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_u_b_r_w_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_u_hproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_u_h_r_w_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_u_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_copy_u_w_r_w_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register, imm: i64)
    emit_crc32bproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32b_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32cbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32cb_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32cdproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32cd_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32chproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32ch_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32cwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32cw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32dproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32d_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32hproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32h_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_crc32w_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_ctc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_ctc1_r_fcrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_ctc2proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_CtrlReg)
    emit_ctc2_r_c2cproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_CtrlReg)
    emit_cvt_d_lproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_d_l_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_d_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_d_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_d_wproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_d_w_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_l_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_l_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_l_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_l_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_ps_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_cvt_ps_s_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_cvt_s_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_lproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_l_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_plproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_pl_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_puproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_pu_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_wproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_s_w_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_w_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_w_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_w_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_cvt_w_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_daddproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dadd_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_daddiproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_daddi_r_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_daddiuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_daddiu_r_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dadduproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_daddu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dahiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_dahi_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_dalignproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_dalign_r_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_datiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_dati_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_dauiproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_daui_r_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dbitswapproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dbitswap_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dcloproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dclo_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dclzproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dclz_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dcplproc(instructions: ^[dynamic]Instruction)
    emit_dcpl_noneproc(instructions: ^[dynamic]Instruction)
    emit_ddiv 2 forms
    emit_ddiv_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_ddiv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ddivu 2 forms
    emit_ddivu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_ddivu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_deretproc(instructions: ^[dynamic]Instruction)
    emit_deret_noneproc(instructions: ^[dynamic]Instruction)
    emit_dextproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dext_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dextmproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dextm_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dextuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dextu_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_diproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_di_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_dinsproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dins_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dinsmproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dinsm_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dinsuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_dinsu_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_div 2 forms
    emit_div_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_div_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_div1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_div1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_div_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_div_d_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_div_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_div_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_div_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_div_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_divu 2 forms
    emit_divu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_divu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_divu1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_divu1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dlsaproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_dlsa_r_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_dmfc0proc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_dmfc0_r_c0_selproc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_dmfc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_dmfc1_r_fproc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_dmodproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmod_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmoduproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmodu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmtc0proc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_dmtc0_r_c0_selproc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_dmtc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_dmtc1_r_fproc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_dmuhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmuh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmuhuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmuhu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmulproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmul_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmultproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dmult_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dmultuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dmultu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dmuluproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dmulu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dotp_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dotp_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_dpa_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpa_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpaq_s_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpaq_s_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpaq_sa_l_wproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpaq_sa_l_w_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpau_h_qblproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpau_h_qbl_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpau_h_qbrproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpau_h_qbr_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpax_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpax_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpcsproc(instructions: ^[dynamic]Instruction)
    emit_dpcs_noneproc(instructions: ^[dynamic]Instruction)
    emit_dpctproc(instructions: ^[dynamic]Instruction)
    emit_dpct_noneproc(instructions: ^[dynamic]Instruction)
    emit_dps_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dps_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsq_s_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsq_s_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsq_sa_l_wproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsq_sa_l_w_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsu_h_qblproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsu_h_qbl_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsu_h_qbrproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsu_h_qbr_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsx_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_dpsx_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_drotrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_drotr32proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_drotr32_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_drotr_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_drotrvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_drotrv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsbhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dsbh_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dshdproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dshd_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_dsllproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsll32proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsll32_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsll_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsllvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsllv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsraproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsra32proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsra32_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsra_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsravproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsrav_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsrlproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsrl32proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsrl32_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsrl_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_dsrlvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsrlv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsubproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsubuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_dsubu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ehbproc(instructions: ^[dynamic]Instruction)
    emit_ehb_noneproc(instructions: ^[dynamic]Instruction)
    emit_eiproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_ei_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_eretproc(instructions: ^[dynamic]Instruction)
    emit_eret_noneproc(instructions: ^[dynamic]Instruction)
    emit_extproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_ext_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_extpproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extp_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extpdpproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extpdp_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extpdpvproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extpdpv_r_i5_rproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extpvproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extpv_r_i5_rproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extr_r_wproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_r_w_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_rs_wproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_rs_w_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_s_hproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_s_h_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_wproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extr_w_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, imm2: i64)
    emit_extrv_r_wproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_r_w_r_i5_rproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_rs_wproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_rs_w_r_i5_rproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_s_hproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_s_h_r_i5_rproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_wproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_extrv_w_r_i5_rproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64, src: GPR)
    emit_fadd_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fadd_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fceq_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fceq_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fceq_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fceq_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcle_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcle_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcle_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcle_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fclt_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fclt_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fclt_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fclt_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcne_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcne_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcne_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcne_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fcvt_d_wproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fcvt_d_w_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fcvt_s_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fcvt_s_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fcvt_s_wproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fcvt_s_w_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fdiv_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fdiv_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ffint_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_s_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_s_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_u_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ffint_u_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_floor_l_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_l_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_l_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_l_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_w_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_w_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_w_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_floor_w_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_fmax_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmax_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmin_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fmul_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_frcp_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frcp_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frcp_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frcp_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frint_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frint_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frint_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frint_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrt_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrt_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrt_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_frsqrt_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsqrt_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_fsub_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_fsub_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_ftrunc_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_s_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_s_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_u_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_ftrunc_u_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_gpfproc(instructions: ^[dynamic]Instruction)
    emit_gpf_noneproc(instructions: ^[dynamic]Instruction)
    emit_gplproc(instructions: ^[dynamic]Instruction)
    emit_gpl_noneproc(instructions: ^[dynamic]Instruction)
    emit_insproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_ins_r_r_i5_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64, imm2: i64)
    emit_insert_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_b_w_r_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_d_w_r_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_h_w_r_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insert_w_w_r_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: GPR, imm: i64)
    emit_insvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_insv_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_insve_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_d_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_insve_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_intplproc(instructions: ^[dynamic]Instruction)
    emit_intpl_noneproc(instructions: ^[dynamic]Instruction)
    emit_jproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_j_jproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_jalproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_jal_jproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_jalrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_jalr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_jialcproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_jialc_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_jicproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_jic_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_jrproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_jr_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_lbproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lb_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lbuproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lbu_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lbuxproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_lbux_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ldproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ld_bproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_b_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_dproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_d_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_hproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_h_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ld_wproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ld_w_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_ldc1proc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_ldc1_f_mproc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_ldc2proc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_ldc2_c2_mproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_ldi_bproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_b_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_dproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_d_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_hproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_h_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_wproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldi_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_ldlproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ldl_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ldpcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_ldpc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_ldrproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ldr_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ldxc1proc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_ldxc1_f_r_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_lhproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lh_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lhuproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lhu_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lhxproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_lhx_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_llproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_ll_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lldproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lld_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lqproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lq_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lqc2proc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_lqc2_c2_mproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_lsaproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_lsa_r_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR, imm: i64)
    emit_luiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_lui_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_lv_qproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lv_q_vq_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lv_sproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lv_s_vs_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lvl_qproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lvl_q_vq_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lvr_qproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lvr_q_vq_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_lwproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lw_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwc1proc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_lwc1_f_mproc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_lwc2proc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_lwc2_c2_mproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_lwlproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwl_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwpcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_lwpc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_lwrproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwr_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwuproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwu_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_lwupcproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_lwupc_r_relproc(instructions: ^[dynamic]Instruction, dst: GPR, target: u32)
    emit_lwxproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_lwx_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_lwxc1proc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_lwxc1_f_r_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_madd 2 forms
    emit_madd_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_madd_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_madd1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_madd1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_madd_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_madd_d_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_madd_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_madd_ps_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_madd_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_madd_s_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_maddu 2 forms
    emit_maddu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_maddu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_maddu1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_maddu1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_maddv_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maddv_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_maq_s_w_phlproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_s_w_phl_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_s_w_phrproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_s_w_phr_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_sa_w_phlproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_sa_w_phl_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_sa_w_phrproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_maq_sa_w_phr_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_max_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_max_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mfc0proc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mfc0_r_c0_selproc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mfc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mfc1_r_fproc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mfc2proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_DataReg)
    emit_mfc2_r_c2proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_DataReg)
    emit_mfhc0proc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mfhc0_r_c0_selproc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mfhc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mfhc1_r_fproc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mfhiproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfhi1proc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfhi1_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfhi_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfloproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mflo1proc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mflo1_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mflo_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfsaproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfsa_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mfvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_mfv_r_vsproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_mfvcproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mfvc_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_min_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_min_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_modproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mod_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mod_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mod_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_moduproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_modu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mov_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_mov_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_mov_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_mov_ps_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_mov_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_mov_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_movfproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_movf_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movf_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movf_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movf_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movf_r_r_ccproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_movf_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movf_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movnproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_movn_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movn_d_f_f_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movn_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movn_ps_f_f_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movn_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_movn_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movn_s_f_f_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movtproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_movt_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movt_d_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movt_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movt_ps_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movt_r_r_ccproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_movt_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movt_s_f_f_ccproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, imm: i64)
    emit_movzproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_movz_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movz_d_f_f_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movz_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movz_ps_f_f_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movz_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_movz_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_movz_s_f_f_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: GPR)
    emit_msub 2 forms
    emit_msub_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_msub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_msub1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_msub1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_msub_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_msub_d_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_msub_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_msub_ps_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_msub_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_msub_s_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_msubu 2 forms
    emit_msubu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_msubu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_msubu1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_msubu1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_msubv_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_msubv_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mtc0proc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mtc0_r_c0_selproc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mtc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mtc1_r_fproc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mtc2proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_DataReg)
    emit_mtc2_r_c2proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GTE_DataReg)
    emit_mthc0proc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mthc0_r_c0_selproc(instructions: ^[dynamic]Instruction, dst: GPR, src: CP0_Reg, imm: i64)
    emit_mthc1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mthc1_r_fproc(instructions: ^[dynamic]Instruction, dst: GPR, src: FPR)
    emit_mthiproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mthi1proc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mthi1_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mthi_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mthlipproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mthlip_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mtloproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mtlo1proc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mtlo1_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mtlo_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mtsaproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mtsa_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_mtsabproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mtsab_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mtsahproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mtsah_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mtvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_mtv_r_vsproc(instructions: ^[dynamic]Instruction, dst: GPR, src: Register)
    emit_mtvcproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_mtvc_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_muhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muhuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muhu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mul_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_mul_d_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_mul_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_mul_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_mul_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mul_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_mul_s_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_muleq_s_w_phlproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleq_s_w_phl_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleq_s_w_phrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleq_s_w_phr_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleu_s_ph_qblproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleu_s_ph_qbl_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleu_s_ph_qbrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_muleu_s_ph_qbr_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulq_rs_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulq_rs_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulq_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulq_s_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulsaq_s_w_phproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_mulsaq_s_w_ph_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_multproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_mult1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_mult1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_mult_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_multuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_multu1proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_multu1_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_multu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_muluproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_mulv_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mulv_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_mvmvaproc(instructions: ^[dynamic]Instruction)
    emit_mvmva_noneproc(instructions: ^[dynamic]Instruction)
    emit_nccsproc(instructions: ^[dynamic]Instruction)
    emit_nccs_noneproc(instructions: ^[dynamic]Instruction)
    emit_ncctproc(instructions: ^[dynamic]Instruction)
    emit_ncct_noneproc(instructions: ^[dynamic]Instruction)
    emit_ncdsproc(instructions: ^[dynamic]Instruction)
    emit_ncds_noneproc(instructions: ^[dynamic]Instruction)
    emit_ncdtproc(instructions: ^[dynamic]Instruction)
    emit_ncdt_noneproc(instructions: ^[dynamic]Instruction)
    emit_nclipproc(instructions: ^[dynamic]Instruction)
    emit_nclip_noneproc(instructions: ^[dynamic]Instruction)
    emit_ncsproc(instructions: ^[dynamic]Instruction)
    emit_ncs_noneproc(instructions: ^[dynamic]Instruction)
    emit_nctproc(instructions: ^[dynamic]Instruction)
    emit_nct_noneproc(instructions: ^[dynamic]Instruction)
    emit_neg_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_neg_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_neg_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_neg_ps_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_neg_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_neg_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_nloc_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_b_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_h_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nloc_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_b_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_h_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nlzc_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_nmadd_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmadd_d_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmadd_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmadd_ps_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmadd_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmadd_s_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmsub_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmsub_d_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmsub_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmsub_ps_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmsub_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nmsub_s_f_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR, src3: FPR)
    emit_nopproc(instructions: ^[dynamic]Instruction)
    emit_nop_noneproc(instructions: ^[dynamic]Instruction)
    emit_norproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_nor_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_nor_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_nor_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_nori_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_nori_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_opproc(instructions: ^[dynamic]Instruction)
    emit_op_noneproc(instructions: ^[dynamic]Instruction)
    emit_orproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_or_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_or_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_or_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_oriproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_ori_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ori_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_ori_r_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_pabshproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pabsh_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pabswproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pabsw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_paddbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddsbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddsb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddshproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddsh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddswproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddsw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddubproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_padduhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_padduh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_padduwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_padduw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_paddw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pandproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pand_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pauseproc(instructions: ^[dynamic]Instruction)
    emit_pause_noneproc(instructions: ^[dynamic]Instruction)
    emit_pceqbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pceqb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pceqhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pceqh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pceqwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pceqw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcgtbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcgtb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcgthproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcgth_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcgtwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcgtw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcnt_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_b_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_d_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_h_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcnt_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_pcpyhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pcpyh_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pcpyldproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcpyld_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcpyudproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pcpyud_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pdivbwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pdivbw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pdivuwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pdivuw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pdivwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pdivw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexchproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexch_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexcwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexcw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexehproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexeh_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexewproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pexew_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pext5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pext5_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextlbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextlb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextlhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextlh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextlwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextlw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextubproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextuhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextuh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextuwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pextuw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_phmadhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_phmadh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_phmsbhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_phmsbh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pick_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pick_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pick_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pick_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pinthproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pinth_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pintohproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pintoh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pll_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_pll_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_plu_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_plu_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_plzcwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_plzcw_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_pmaddhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaddh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmadduwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmadduw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaddwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaddw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaxhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaxh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaxwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmaxw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmfhiproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhi_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_lhproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_lh_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_lwproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_lw_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_shproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_sh_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_slwproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_slw_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_uwproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfhl_uw_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmfloproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmflo_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pminhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pminh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pminwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pminw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmsubhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmsubh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmsubwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmsubw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmthiproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmthi_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmthl_lwproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmthl_lw_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmtloproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmtlo_rproc(instructions: ^[dynamic]Instruction, dst: GPR)
    emit_pmulthproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmulth_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmultuwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmultuw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmultwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pmultw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pnorproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pnor_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_porproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_por_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppac5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppac5_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppacbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppacb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppachproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppach_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppacwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ppacw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_preceq_w_phlproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceq_w_phl_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceq_w_phrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceq_w_phr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qblproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qbl_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qblaproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qbla_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qbrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qbr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qbraproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precequ_ph_qbra_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qblproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qbl_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qblaproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qbla_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qbrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qbr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qbraproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_preceu_ph_qbra_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_precrq_ph_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrq_ph_w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrq_qb_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrq_qb_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrq_rs_ph_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrq_rs_ph_w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrqu_s_qb_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_precrqu_s_qb_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_prefproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_pref_i5_mproc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory)
    emit_prefxproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_prefx_i5_r_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR, src: GPR)
    emit_prot3wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_prot3w_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_psllhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psllh_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psllvwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psllvw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psllwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psllw_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psrahproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psrah_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psravwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psravw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psrawproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psraw_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psrlhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psrlh_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psrlvwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psrlvw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psrlwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psrlw_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_psubbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubsbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubsb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubshproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubsh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubswproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubsw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psububproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubuhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubuh_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubuwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubuw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubwproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_psubw_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pul_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_pul_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_puu_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_puu_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_pxorproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_pxor_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_qfsrvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_qfsrv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_rddspproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_rddsp_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_rdhwrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_rdhwr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_rdpgprproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_rdpgpr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_recip_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_recip_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_recip_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_recip_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_repl_phproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_repl_ph_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_repl_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_repl_qb_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_replv_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_replv_ph_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_replv_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_replv_qb_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_rotrproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_rotr_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_rotrvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_rotrv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_round_l_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_l_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_l_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_l_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_w_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_w_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_w_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_round_w_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_rsqrt_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_rsqrt_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_rsqrt_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_rsqrt_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_rtpsproc(instructions: ^[dynamic]Instruction)
    emit_rtps_noneproc(instructions: ^[dynamic]Instruction)
    emit_rtptproc(instructions: ^[dynamic]Instruction)
    emit_rtpt_noneproc(instructions: ^[dynamic]Instruction)
    emit_sbproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sb_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_scproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sc_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_scdproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_scd_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sdproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sd_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sdbbpproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_sdbbp_i20proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_sdc1proc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_sdc1_f_mproc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_sdc2proc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_sdc2_c2_mproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_sdlproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sdl_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sdrproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sdr_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sdxc1proc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_sdxc1_f_r_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_sebproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_seb_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_sehproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_seh_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_seleqzproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_seleqz_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_selnezproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_selnez_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sh_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_shf_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shf_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shf_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shf_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shf_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shf_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_shiloproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_shilo_i5_i5proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_shilovproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR)
    emit_shilov_i5_rproc(instructions: ^[dynamic]Instruction, imm: i64, dst: GPR)
    emit_shll_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_ph_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_qb_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_s_ph_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_s_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shll_s_w_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shllv_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_s_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_s_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shllv_s_w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shra_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_ph_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_qb_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_r_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_r_ph_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_r_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_r_qb_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_r_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shra_r_w_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shrav_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_r_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_r_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_r_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_r_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_r_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrav_r_w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrl_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shrl_ph_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shrl_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shrl_qb_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_shrlv_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrlv_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrlv_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_shrlv_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sigrieproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_sigrie_u16proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_sld_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_b_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_d_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_h_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sld_w_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_sldi_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_d_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sldi_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sllproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sll_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sll_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sll_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_slli_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_d_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_slli_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sllvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sllv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sltproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_slt_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sltiproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_slti_r_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sltiuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sltiu_r_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sltuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sltu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_splat_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_b_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_d_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_h_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splat_w_w_w_rproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: GPR)
    emit_splati_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_d_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_splati_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sqproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sq_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sqc2proc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_sqc2_c2_mproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_sqrproc(instructions: ^[dynamic]Instruction)
    emit_sqr_noneproc(instructions: ^[dynamic]Instruction)
    emit_sqrt_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_sqrt_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_sqrt_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_sqrt_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_sraproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sra_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_sra_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sra_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srai_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_d_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srai_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_sravproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_srav_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_srlproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_srl_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_r_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_srl_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srl_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_srli_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_d_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_h_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srli_w_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_srlvproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_srlv_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_ssnopproc(instructions: ^[dynamic]Instruction)
    emit_ssnop_noneproc(instructions: ^[dynamic]Instruction)
    emit_st_bproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_b_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_dproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_d_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_hproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_h_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_wproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_st_w_w_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_subproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sub_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_sub_d_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_sub_psproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_sub_ps_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_sub_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_sub_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_sub_s_f_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR, src2: FPR)
    emit_subq_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subq_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subq_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subq_s_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subq_s_wproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subq_s_w_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subs_s_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_s_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subs_u_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_s_phproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_s_ph_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_s_qbproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subu_s_qb_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_subv_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_subv_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_sv_qproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sv_q_vq_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sv_sproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_sv_s_vs_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_svl_qproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_svl_q_vq_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_svr_qproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_svr_q_vq_mproc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory)
    emit_swproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_sw_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_swc1proc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_swc1_f_mproc(instructions: ^[dynamic]Instruction, dst: FPR, mem: Memory)
    emit_swc2proc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_swc2_c2_mproc(instructions: ^[dynamic]Instruction, dst: GTE_DataReg, mem: Memory)
    emit_swlproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_swl_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_swrproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_swr_r_mproc(instructions: ^[dynamic]Instruction, dst: GPR, mem: Memory)
    emit_swxc1proc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_swxc1_f_r_rproc(instructions: ^[dynamic]Instruction, dst: FPR, src: GPR, src2: GPR)
    emit_syncproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_sync_i5proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_syscallproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_syscall_i20proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_teqproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_teq_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_teqiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_teqi_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tgeproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tge_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tgeiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tgei_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tgeiuproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tgeiu_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tgeuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tgeu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tlbpproc(instructions: ^[dynamic]Instruction)
    emit_tlbp_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbrproc(instructions: ^[dynamic]Instruction)
    emit_tlbr_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbwiproc(instructions: ^[dynamic]Instruction)
    emit_tlbwi_noneproc(instructions: ^[dynamic]Instruction)
    emit_tlbwrproc(instructions: ^[dynamic]Instruction)
    emit_tlbwr_noneproc(instructions: ^[dynamic]Instruction)
    emit_tltproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tlt_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tltiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tlti_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tltiuproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tltiu_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tltuproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tltu_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tneproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tne_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_tneiproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_tnei_r_i16proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_trunc_l_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_l_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_l_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_l_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_w_dproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_w_d_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_w_sproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_trunc_w_s_f_fproc(instructions: ^[dynamic]Instruction, dst: FPR, src: FPR)
    emit_vabs_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_p_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_q_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vabs_t_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vadd_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_p_vp_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_s_vs_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vadd_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vasin_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vasin_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vavg_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vavg_p_vs_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vavg_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vavg_q_vs_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vavg_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vavg_t_vs_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vcmp_pproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_p_i5_vp_vpproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_qproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_q_i5_vq_vqproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_sproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_s_i5_vs_vsproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_tproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcmp_t_i5_vt_vtproc(instructions: ^[dynamic]Instruction, imm: i64, dst: Register, src: Register)
    emit_vcos_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vcos_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vcrs_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vcrs_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vcrsp_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vcrsp_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vcst_pproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_p_vp_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_qproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_q_vq_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_sproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_s_vs_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_tproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vcst_t_vt_i5proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vdiv_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_p_vp_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_s_vs_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdiv_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdot_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdot_p_vs_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdot_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdot_q_vs_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdot_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vdot_t_vs_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vexp2_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vexp2_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vf2h_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vf2h_p_vs_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vf2id_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_p_vp_vp_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_q_vq_vq_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_s_vs_vs_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2id_t_vt_vt_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_p_vp_vp_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_q_vq_vq_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_s_vs_vs_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2in_t_vt_vt_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_p_vp_vp_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_q_vq_vq_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_s_vs_vs_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iu_t_vt_vt_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_p_vp_vp_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_q_vq_vq_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_s_vs_vs_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vf2iz_t_vt_vt_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vfad_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vfad_p_vs_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vfad_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vfad_q_vs_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vfad_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vfad_t_vs_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vfim_sproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vfim_s_vs_i16proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vflushproc(instructions: ^[dynamic]Instruction)
    emit_vflush_noneproc(instructions: ^[dynamic]Instruction)
    emit_vh2f_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vh2f_s_vp_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vhdp_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhdp_p_vs_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhdp_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhdp_q_vs_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhdp_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhdp_t_vs_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhtfm2_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhtfm2_p_vp_vmp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhtfm3_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhtfm3_t_vt_vmt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhtfm4_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vhtfm4_q_vq_vmq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vi2f_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_p_vp_vp_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_q_vq_vq_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_s_vs_vs_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_vi2f_t_vt_vt_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_viim_sproc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_viim_s_vs_i16proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64)
    emit_vlog2_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vlog2_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmax_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_p_vp_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_s_vs_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmax_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmidt_pproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmidt_p_vmpproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmidt_qproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmidt_q_vmqproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmidt_tproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmidt_t_vmtproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmin_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_p_vp_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_s_vs_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmin_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmmov_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmmov_p_vmp_vmpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmmov_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmmov_q_vmq_vmqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmmov_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmmov_t_vmt_vmtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmmul_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmmul_p_vmp_vmp_vmpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmmul_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmmul_q_vmq_vmq_vmqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmmul_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmmul_t_vmt_vmt_vmtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmone_pproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmone_p_vmpproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmone_qproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmone_q_vmqproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmone_tproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmone_t_vmtproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmov_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_p_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_q_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmov_t_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vmscl_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmscl_p_vmp_vmp_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmscl_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmscl_q_vmq_vmq_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmscl_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmscl_t_vmt_vmt_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_p_vp_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_s_vs_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmul_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vmzero_pproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmzero_p_vmpproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmzero_qproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmzero_q_vmqproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmzero_tproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vmzero_t_vmtproc(instructions: ^[dynamic]Instruction, dst: Register)
    emit_vneg_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_p_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_q_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vneg_t_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vnopproc(instructions: ^[dynamic]Instruction)
    emit_vnop_noneproc(instructions: ^[dynamic]Instruction)
    emit_vnrcp_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vnrcp_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vnsin_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vnsin_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vpfxdproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_vpfxd_i20proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_vpfxsproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_vpfxs_i20proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_vpfxtproc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_vpfxt_i20proc(instructions: ^[dynamic]Instruction, imm: i64)
    emit_vqmul_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vqmul_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vrcp_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_p_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_q_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrcp_t_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrexp2_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrexp2_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_p_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_q_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vrsq_t_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vscl_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vscl_p_vp_vp_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vscl_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vscl_q_vq_vq_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vscl_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vscl_t_vt_vt_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsgn_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vsgn_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vshf_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_b_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_dproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_d_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_hproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_h_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vshf_w_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsin_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vsin_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vsqrt_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vsqrt_s_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register)
    emit_vsub_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_p_vp_vp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_q_vq_vq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_sproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_s_vs_vs_vsproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsub_t_vt_vt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vsyncproc(instructions: ^[dynamic]Instruction)
    emit_vsync_noneproc(instructions: ^[dynamic]Instruction)
    emit_vtfm2_pproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vtfm2_p_vp_vmp_vpproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vtfm3_tproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vtfm3_t_vt_vmt_vtproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vtfm4_qproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_vtfm4_q_vq_vmq_vqproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_waitproc(instructions: ^[dynamic]Instruction)
    emit_wait_noneproc(instructions: ^[dynamic]Instruction)
    emit_wrdspproc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_wrdsp_r_i5proc(instructions: ^[dynamic]Instruction, dst: GPR, imm: i64)
    emit_wrpgprproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_wrpgpr_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_wsbhproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_wsbh_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR)
    emit_xorproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_xor_r_r_rproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR)
    emit_xor_vproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_xor_v_w_w_wproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register)
    emit_xoriproc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    emit_xori_bproc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_xori_b_w_w_i5proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64)
    emit_xori_r_r_u16proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64)
    encodeproc(instructions: []Instruction, label_defs: []rexcode_isa.Label_Definition, code: []u8, relocs: ^[dynamic]Relocation, errors: ^[dynamic]rexcode_isa.Error, endianness: Endianness = .BIG, resolve: bool = true, base_address: u64 = 0, features: Feature_Set = FEATURES_ALL) -> (byte_count: u32, ok: bool)
    encode_max_code_size(instructions: []Instruction) -> int
    Upper bound on bytes emitted for n instructions.

    Upper bound on bytes emitted for n instructions.

    encode_max_relocation_count(instructions: []Instruction) -> int
    Upper bound on pending relocations for n instructions (each instruction has at most one label-referencing operand).

    Upper bound on pending relocations for n instructions (each instruction has at most one label-referencing operand).

    encode_reserveproc(code: ^[dynamic]u8, relocs: ^[dynamic]Relocation, instructions: []Instruction)
    Pre-size the caller's encode outputs (code grown by length so code[:] is a valid emit target; relocs reserved by capacity) so the encode hot path never…

    Pre-size the caller's encode outputs (code grown by length so code[:] is a valid emit target; relocs reserved by capacity) so the encode hot path never reallocates. Allocates no new buffers; pass nil to skip either array.

    fpr_from_num(num: u8) -> Register
    fprintproc(fd: ^os.File, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    fprintlnproc(fd: ^os.File, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    gpr_from_num(num: u8) -> Register
    inst_abs_d(dst: FPR, src: FPR) -> Instruction
    inst_abs_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_abs_ps(dst: FPR, src: FPR) -> Instruction
    inst_abs_ps_f_f(dst: FPR, src: FPR) -> Instruction
    inst_abs_s(dst: FPR, src: FPR) -> Instruction
    inst_abs_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_absq_s_ph(dst: GPR, src: GPR) -> Instruction
    inst_absq_s_ph_r_r(dst: GPR, src: GPR) -> Instruction
    inst_absq_s_w(dst: GPR, src: GPR) -> Instruction
    inst_absq_s_w_r_r(dst: GPR, src: GPR) -> Instruction
    inst_add(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_add_d(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_add_d_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_add_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_add_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_add_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_add_s(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_add_s_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_addi(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_addi_r_r_i16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_addiu(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_addiu_r_r_i16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_addq_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addq_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addq_s_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addq_s_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addq_s_w(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addq_s_w_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_adds_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_adds_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addsc(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addsc_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_s_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_s_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_s_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addu_s_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addv_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addv_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_addwc(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_addwc_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_align(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_align_r_r_r_i5(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_aluipc(dst: GPR, imm: i64) -> Instruction
    inst_aluipc_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_and(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_and_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_and_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_and_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_andi(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_andi_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_andi_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_andi_r_r_u16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_aui(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_aui_r_r_u16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_auipc(dst: GPR, imm: i64) -> Instruction
    inst_auipc_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_avsz3() -> Instruction
    inst_avsz3_none() -> Instruction
    inst_avsz4() -> Instruction
    inst_avsz4_none() -> Instruction
    inst_balc(target: u32) -> Instruction
    inst_balc_rel26(target: u32) -> Instruction
    inst_bc(target: u32) -> Instruction
    inst_bc1eqz(dst: FPR, target: u32) -> Instruction
    inst_bc1eqz_f_rel(dst: FPR, target: u32) -> Instruction
    inst_bc1f(imm: i64, target: u32) -> Instruction
    inst_bc1f_cc_rel(imm: i64, target: u32) -> Instruction
    inst_bc1fl(imm: i64, target: u32) -> Instruction
    inst_bc1fl_cc_rel(imm: i64, target: u32) -> Instruction
    inst_bc1nez(dst: FPR, target: u32) -> Instruction
    inst_bc1nez_f_rel(dst: FPR, target: u32) -> Instruction
    inst_bc1t(imm: i64, target: u32) -> Instruction
    inst_bc1t_cc_rel(imm: i64, target: u32) -> Instruction
    inst_bc1tl(imm: i64, target: u32) -> Instruction
    inst_bc1tl_cc_rel(imm: i64, target: u32) -> Instruction
    inst_bc2eqz(dst: GTE_DataReg, target: u32) -> Instruction
    inst_bc2eqz_c2_rel(dst: GTE_DataReg, target: u32) -> Instruction
    inst_bc2nez(dst: GTE_DataReg, target: u32) -> Instruction
    inst_bc2nez_c2_rel(dst: GTE_DataReg, target: u32) -> Instruction
    inst_bc_rel26(target: u32) -> Instruction
    inst_beq(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_beq_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_beqc(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_beqc_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_beql(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_beql_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_beqzc(dst: GPR, target: u32) -> Instruction
    inst_beqzc_r_rel21(dst: GPR, target: u32) -> Instruction
    inst_bgec(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bgec_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bgeuc(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bgeuc_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bgez(dst: GPR, target: u32) -> Instruction
    inst_bgez_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgezal(dst: GPR, target: u32) -> Instruction
    inst_bgezal_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgezall(dst: GPR, target: u32) -> Instruction
    inst_bgezall_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgezc(dst: GPR, target: u32) -> Instruction
    inst_bgezc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgezl(dst: GPR, target: u32) -> Instruction
    inst_bgezl_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgtz(dst: GPR, target: u32) -> Instruction
    inst_bgtz_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgtzc(dst: GPR, target: u32) -> Instruction
    inst_bgtzc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bgtzl(dst: GPR, target: u32) -> Instruction
    inst_bgtzl_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bitrev(dst: GPR, src: GPR) -> Instruction
    inst_bitrev_r_r(dst: GPR, src: GPR) -> Instruction
    inst_bitswap(dst: GPR, src: GPR) -> Instruction
    inst_bitswap_r_r(dst: GPR, src: GPR) -> Instruction
    inst_blez(dst: GPR, target: u32) -> Instruction
    inst_blez_r_rel(dst: GPR, target: u32) -> Instruction
    inst_blezc(dst: GPR, target: u32) -> Instruction
    inst_blezc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_blezl(dst: GPR, target: u32) -> Instruction
    inst_blezl_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bltc(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bltc_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bltuc(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bltuc_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bltz(dst: GPR, target: u32) -> Instruction
    inst_bltz_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bltzal(dst: GPR, target: u32) -> Instruction
    inst_bltzal_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bltzall(dst: GPR, target: u32) -> Instruction
    inst_bltzall_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bltzc(dst: GPR, target: u32) -> Instruction
    inst_bltzc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bltzl(dst: GPR, target: u32) -> Instruction
    inst_bltzl_r_rel(dst: GPR, target: u32) -> Instruction
    inst_bmnz_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bmnz_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bmnzi_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_bmnzi_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_bmz_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bmz_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bmzi_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_bmzi_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_bne(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bne_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bnec(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bnec_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bnel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bnel_r_r_rel(dst: GPR, src: GPR, target: u32) -> Instruction
    inst_bnezc(dst: GPR, target: u32) -> Instruction
    inst_bnezc_r_rel21(dst: GPR, target: u32) -> Instruction
    inst_bnz_b(dst: Register, target: u32) -> Instruction
    inst_bnz_b_w_rel(dst: Register, target: u32) -> Instruction
    inst_bnz_d(dst: Register, target: u32) -> Instruction
    inst_bnz_d_w_rel(dst: Register, target: u32) -> Instruction
    inst_bnz_h(dst: Register, target: u32) -> Instruction
    inst_bnz_h_w_rel(dst: Register, target: u32) -> Instruction
    inst_bnz_v(dst: Register, target: u32) -> Instruction
    inst_bnz_v_w_rel(dst: Register, target: u32) -> Instruction
    inst_bnz_w(dst: Register, target: u32) -> Instruction
    inst_bnz_w_w_rel(dst: Register, target: u32) -> Instruction
    inst_bposge32(target: u32) -> Instruction
    inst_bposge32_rel(target: u32) -> Instruction
    inst_branch1(m: Mnemonic, rs: Register, label_id: u32) -> Instruction
    One-reg branch + label (BLTZ/BGEZ/BLEZ/BGTZ/BLTZAL/BGEZAL/...).
    inst_branch2(m: Mnemonic, rs, rt: Register, label_id: u32) -> Instruction
    Two-reg branch + label (BEQ/BNE: rs, rt, target).
    inst_break(imm: i64) -> Instruction
    inst_break_i20(imm: i64) -> Instruction
    inst_bsel_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bsel_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_bseli_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_bseli_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_bvf(imm: i64, target: u32) -> Instruction
    inst_bvf_i5_rel(imm: i64, target: u32) -> Instruction
    inst_bvfl(imm: i64, target: u32) -> Instruction
    inst_bvfl_i5_rel(imm: i64, target: u32) -> Instruction
    inst_bvt(imm: i64, target: u32) -> Instruction
    inst_bvt_i5_rel(imm: i64, target: u32) -> Instruction
    inst_bvtl(imm: i64, target: u32) -> Instruction
    inst_bvtl_i5_rel(imm: i64, target: u32) -> Instruction
    inst_bz_b(dst: Register, target: u32) -> Instruction
    inst_bz_b_w_rel(dst: Register, target: u32) -> Instruction
    inst_bz_d(dst: Register, target: u32) -> Instruction
    inst_bz_d_w_rel(dst: Register, target: u32) -> Instruction
    inst_bz_h(dst: Register, target: u32) -> Instruction
    inst_bz_h_w_rel(dst: Register, target: u32) -> Instruction
    inst_bz_v(dst: Register, target: u32) -> Instruction
    inst_bz_v_w_rel(dst: Register, target: u32) -> Instruction
    inst_bz_w(dst: Register, target: u32) -> Instruction
    inst_bz_w_w_rel(dst: Register, target: u32) -> Instruction
    inst_c_eq_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_eq_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_eq_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_eq_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_eq_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_eq_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_f_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_f_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_f_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_f_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_f_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_f_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_le_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_le_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_le_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_le_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_le_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_le_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_lt_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_lt_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_lt_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_lt_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_lt_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_lt_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_nge_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_nge_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_nge_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_nge_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_nge_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_nge_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngl_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngl_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngl_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngl_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngl_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngl_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngle_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngle_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngle_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngle_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngle_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngle_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngt_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngt_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngt_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngt_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngt_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ngt_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ole_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ole_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ole_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ole_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ole_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ole_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_olt_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_olt_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_olt_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_olt_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_olt_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_olt_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_seq_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_seq_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_seq_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_seq_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_seq_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_seq_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_sf_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_sf_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_sf_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_sf_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_sf_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_sf_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ueq_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ueq_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ueq_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ueq_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ueq_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ueq_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ule_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ule_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ule_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ule_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ule_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ule_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ult_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ult_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ult_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ult_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ult_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_ult_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_un_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_un_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_un_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_un_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_un_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_c_un_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_cache(imm: i64, mem: Memory) -> Instruction
    inst_cache_i5_m(imm: i64, mem: Memory) -> Instruction
    inst_cc() -> Instruction
    inst_cc_none() -> Instruction
    inst_cdp() -> Instruction
    inst_cdp_none() -> Instruction
    inst_ceil_l_d(dst: FPR, src: FPR) -> Instruction
    inst_ceil_l_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_ceil_l_s(dst: FPR, src: FPR) -> Instruction
    inst_ceil_l_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_ceil_w_d(dst: FPR, src: FPR) -> Instruction
    inst_ceil_w_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_ceil_w_s(dst: FPR, src: FPR) -> Instruction
    inst_ceil_w_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_ceq_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ceq_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cfc1(dst: GPR, src: Register) -> Instruction
    inst_cfc1_r_fcr(dst: GPR, src: Register) -> Instruction
    inst_cfc2(dst: GPR, src: GTE_CtrlReg) -> Instruction
    inst_cfc2_r_c2c(dst: GPR, src: GTE_CtrlReg) -> Instruction
    inst_cle_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_cle_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clo(dst: GPR, src: GPR) -> Instruction
    inst_clo_r_r(dst: GPR, src: GPR) -> Instruction
    inst_clt_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clt_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_clz(dst: GPR, src: GPR) -> Instruction
    inst_clz_r_r(dst: GPR, src: GPR) -> Instruction
    inst_cmp_eq_ph(dst: GPR, src: GPR) -> Instruction
    inst_cmp_eq_ph_r_r(dst: GPR, src: GPR) -> Instruction
    inst_cmp_le_ph(dst: GPR, src: GPR) -> Instruction
    inst_cmp_le_ph_r_r(dst: GPR, src: GPR) -> Instruction
    inst_cmp_lt_ph(dst: GPR, src: GPR) -> Instruction
    inst_cmp_lt_ph_r_r(dst: GPR, src: GPR) -> Instruction
    inst_cmpgu_eq_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_cmpgu_eq_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_cmpgu_le_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_cmpgu_le_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_cmpgu_lt_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_cmpgu_lt_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_cmpu_eq_qb(dst: GPR, src: GPR) -> Instruction
    inst_cmpu_eq_qb_r_r(dst: GPR, src: GPR) -> Instruction
    inst_cmpu_le_qb(dst: GPR, src: GPR) -> Instruction
    inst_cmpu_le_qb_r_r(dst: GPR, src: GPR) -> Instruction
    inst_cmpu_lt_qb(dst: GPR, src: GPR) -> Instruction
    inst_cmpu_lt_qb_r_r(dst: GPR, src: GPR) -> Instruction
    inst_copy_s_b(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_s_b_r_w_i5(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_s_h(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_s_h_r_w_i5(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_s_w(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_s_w_r_w_i5(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_u_b(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_u_b_r_w_i5(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_u_h(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_u_h_r_w_i5(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_u_w(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_copy_u_w_r_w_i5(dst: GPR, src: Register, imm: i64) -> Instruction
    inst_cp0_sel(m: Mnemonic, rt, rd: Register, sel: u8) -> Instruction
    COP0 move with explicit selector: MFC0 $rt, $rd, sel (R2+).
    inst_crc32b(dst: GPR, src: GPR) -> Instruction
    inst_crc32b_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32cb(dst: GPR, src: GPR) -> Instruction
    inst_crc32cb_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32cd(dst: GPR, src: GPR) -> Instruction
    inst_crc32cd_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32ch(dst: GPR, src: GPR) -> Instruction
    inst_crc32ch_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32cw(dst: GPR, src: GPR) -> Instruction
    inst_crc32cw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32d(dst: GPR, src: GPR) -> Instruction
    inst_crc32d_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32h(dst: GPR, src: GPR) -> Instruction
    inst_crc32h_r_r(dst: GPR, src: GPR) -> Instruction
    inst_crc32w(dst: GPR, src: GPR) -> Instruction
    inst_crc32w_r_r(dst: GPR, src: GPR) -> Instruction
    inst_ctc1(dst: GPR, src: Register) -> Instruction
    inst_ctc1_r_fcr(dst: GPR, src: Register) -> Instruction
    inst_ctc2(dst: GPR, src: GTE_CtrlReg) -> Instruction
    inst_ctc2_r_c2c(dst: GPR, src: GTE_CtrlReg) -> Instruction
    inst_cvt_d_l(dst: FPR, src: FPR) -> Instruction
    inst_cvt_d_l_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_d_s(dst: FPR, src: FPR) -> Instruction
    inst_cvt_d_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_d_w(dst: FPR, src: FPR) -> Instruction
    inst_cvt_d_w_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_l_d(dst: FPR, src: FPR) -> Instruction
    inst_cvt_l_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_l_s(dst: FPR, src: FPR) -> Instruction
    inst_cvt_l_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_ps_s(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_cvt_ps_s_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_cvt_s_d(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_l(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_l_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_pl(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_pl_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_pu(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_pu_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_w(dst: FPR, src: FPR) -> Instruction
    inst_cvt_s_w_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_w_d(dst: FPR, src: FPR) -> Instruction
    inst_cvt_w_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_cvt_w_s(dst: FPR, src: FPR) -> Instruction
    inst_cvt_w_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_dadd(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dadd_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_daddi(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_daddi_r_r_i16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_daddiu(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_daddiu_r_r_i16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_daddu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_daddu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dahi(dst: GPR, imm: i64) -> Instruction
    inst_dahi_r_u16(dst: GPR, imm: i64) -> Instruction
    inst_dalign(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_dalign_r_r_r_i5(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_dati(dst: GPR, imm: i64) -> Instruction
    inst_dati_r_u16(dst: GPR, imm: i64) -> Instruction
    inst_daui(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_daui_r_r_u16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dbitswap(dst: GPR, src: GPR) -> Instruction
    inst_dbitswap_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dclo(dst: GPR, src: GPR) -> Instruction
    inst_dclo_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dclz(dst: GPR, src: GPR) -> Instruction
    inst_dclz_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dcpl() -> Instruction
    inst_dcpl_none() -> Instruction
    inst_ddiv 2 forms
    inst_ddiv_r_r(dst: GPR, src: GPR) -> Instruction
    inst_ddiv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ddivu 2 forms
    inst_ddivu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_ddivu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_deret() -> Instruction
    inst_deret_none() -> Instruction
    inst_dext(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dext_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dextm(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dextm_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dextu(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dextu_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_di(dst: GPR) -> Instruction
    inst_di_r(dst: GPR) -> Instruction
    inst_dins(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dins_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dinsm(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dinsm_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dinsu(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_dinsu_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_div 2 forms
    inst_div_r_r(dst: GPR, src: GPR) -> Instruction
    inst_div_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_div1(dst: GPR, src: GPR) -> Instruction
    inst_div1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_div_d(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_div_d_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_div_s(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_div_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_div_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_div_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_divu 2 forms
    inst_divu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_divu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_divu1(dst: GPR, src: GPR) -> Instruction
    inst_divu1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dlsa(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_dlsa_r_r_r_i5(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_dmfc0(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_dmfc0_r_c0_sel(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_dmfc1(dst: GPR, src: FPR) -> Instruction
    inst_dmfc1_r_f(dst: GPR, src: FPR) -> Instruction
    inst_dmod(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmod_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmodu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmodu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmtc0(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_dmtc0_r_c0_sel(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_dmtc1(dst: GPR, src: FPR) -> Instruction
    inst_dmtc1_r_f(dst: GPR, src: FPR) -> Instruction
    inst_dmuh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmuh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmuhu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmuhu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmul(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmul_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmult(dst: GPR, src: GPR) -> Instruction
    inst_dmult_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dmultu(dst: GPR, src: GPR) -> Instruction
    inst_dmultu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dmulu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dmulu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dotp_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dotp_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_dpa_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpa_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpaq_s_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpaq_s_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpaq_sa_l_w(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpaq_sa_l_w_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpau_h_qbl(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpau_h_qbl_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpau_h_qbr(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpau_h_qbr_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpax_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpax_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpcs() -> Instruction
    inst_dpcs_none() -> Instruction
    inst_dpct() -> Instruction
    inst_dpct_none() -> Instruction
    inst_dps_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dps_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsq_s_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsq_s_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsq_sa_l_w(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsq_sa_l_w_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsu_h_qbl(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsu_h_qbl_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsu_h_qbr(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsu_h_qbr_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsx_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_dpsx_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_drotr(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_drotr32(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_drotr32_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_drotr_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_drotrv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_drotrv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsbh(dst: GPR, src: GPR) -> Instruction
    inst_dsbh_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dshd(dst: GPR, src: GPR) -> Instruction
    inst_dshd_r_r(dst: GPR, src: GPR) -> Instruction
    inst_dsll(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsll32(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsll32_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsll_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsllv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsllv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsra(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsra32(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsra32_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsra_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsrav(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsrav_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsrl(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsrl32(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsrl32_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsrl_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_dsrlv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsrlv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsub(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsub_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsubu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_dsubu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ehb() -> Instruction
    inst_ehb_none() -> Instruction
    inst_ei(dst: GPR) -> Instruction
    inst_ei_r(dst: GPR) -> Instruction
    inst_eret() -> Instruction
    inst_eret_none() -> Instruction
    inst_ext(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_ext_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extp(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extp_r_i5_i5(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extpdp(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extpdp_r_i5_i5(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extpdpv(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extpdpv_r_i5_r(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extpv(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extpv_r_i5_r(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extr_r_w(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_r_w_r_i5_i5(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_rs_w(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_rs_w_r_i5_i5(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_s_h(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_s_h_r_i5_i5(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_w(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extr_w_r_i5_i5(dst: GPR, imm: i64, imm2: i64) -> Instruction
    inst_extrv_r_w(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_r_w_r_i5_r(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_rs_w(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_rs_w_r_i5_r(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_s_h(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_s_h_r_i5_r(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_w(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_extrv_w_r_i5_r(dst: GPR, imm: i64, src: GPR) -> Instruction
    inst_fadd_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fadd_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fceq_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fceq_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fceq_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fceq_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcle_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcle_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcle_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcle_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fclt_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fclt_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fclt_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fclt_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcne_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcne_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcne_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcne_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fcvt_d_w(dst: FPR, src: FPR) -> Instruction
    inst_fcvt_d_w_f_f(dst: FPR, src: FPR) -> Instruction
    inst_fcvt_s_d(dst: FPR, src: FPR) -> Instruction
    inst_fcvt_s_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_fcvt_s_w(dst: FPR, src: FPR) -> Instruction
    inst_fcvt_s_w_f_f(dst: FPR, src: FPR) -> Instruction
    inst_fdiv_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fdiv_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ffint_s_d(dst: Register, src: Register) -> Instruction
    inst_ffint_s_d_w_w(dst: Register, src: Register) -> Instruction
    inst_ffint_s_w(dst: Register, src: Register) -> Instruction
    inst_ffint_s_w_w_w(dst: Register, src: Register) -> Instruction
    inst_ffint_u_d(dst: Register, src: Register) -> Instruction
    inst_ffint_u_d_w_w(dst: Register, src: Register) -> Instruction
    inst_ffint_u_w(dst: Register, src: Register) -> Instruction
    inst_ffint_u_w_w_w(dst: Register, src: Register) -> Instruction
    inst_floor_l_d(dst: FPR, src: FPR) -> Instruction
    inst_floor_l_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_floor_l_s(dst: FPR, src: FPR) -> Instruction
    inst_floor_l_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_floor_w_d(dst: FPR, src: FPR) -> Instruction
    inst_floor_w_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_floor_w_s(dst: FPR, src: FPR) -> Instruction
    inst_floor_w_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_fmax_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmax_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmin_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fmul_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_frcp_d(dst: Register, src: Register) -> Instruction
    inst_frcp_d_w_w(dst: Register, src: Register) -> Instruction
    inst_frcp_w(dst: Register, src: Register) -> Instruction
    inst_frcp_w_w_w(dst: Register, src: Register) -> Instruction
    inst_frint_d(dst: Register, src: Register) -> Instruction
    inst_frint_d_w_w(dst: Register, src: Register) -> Instruction
    inst_frint_w(dst: Register, src: Register) -> Instruction
    inst_frint_w_w_w(dst: Register, src: Register) -> Instruction
    inst_frsqrt_d(dst: Register, src: Register) -> Instruction
    inst_frsqrt_d_w_w(dst: Register, src: Register) -> Instruction
    inst_frsqrt_w(dst: Register, src: Register) -> Instruction
    inst_frsqrt_w_w_w(dst: Register, src: Register) -> Instruction
    inst_fsqrt_d(dst: Register, src: Register) -> Instruction
    inst_fsqrt_d_w_w(dst: Register, src: Register) -> Instruction
    inst_fsqrt_w(dst: Register, src: Register) -> Instruction
    inst_fsqrt_w_w_w(dst: Register, src: Register) -> Instruction
    inst_fsub_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_fsub_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ftrunc_s_d(dst: Register, src: Register) -> Instruction
    inst_ftrunc_s_d_w_w(dst: Register, src: Register) -> Instruction
    inst_ftrunc_s_w(dst: Register, src: Register) -> Instruction
    inst_ftrunc_s_w_w_w(dst: Register, src: Register) -> Instruction
    inst_ftrunc_u_d(dst: Register, src: Register) -> Instruction
    inst_ftrunc_u_d_w_w(dst: Register, src: Register) -> Instruction
    inst_ftrunc_u_w(dst: Register, src: Register) -> Instruction
    inst_ftrunc_u_w_w_w(dst: Register, src: Register) -> Instruction
    inst_gpf() -> Instruction
    inst_gpf_none() -> Instruction
    inst_gpl() -> Instruction
    inst_gpl_none() -> Instruction
    inst_i(m: Mnemonic, imm: i64) -> Instruction
    Single-operand: JR $rs, JALR $rd (with implicit RA), MFHI/MFLO/MTHI/MTLO, SYSCALL/BREAK take an imm code so they use inst_i below.
    inst_ins(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_ins_r_r_i5_i5(dst: GPR, src: GPR, imm: i64, imm2: i64) -> Instruction
    inst_insert_b(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_b_w_r_i5(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_d(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_d_w_r_i5(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_h(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_h_w_r_i5(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_w(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insert_w_w_r_i5(dst: Register, src: GPR, imm: i64) -> Instruction
    inst_insv(dst: GPR, src: GPR) -> Instruction
    inst_insv_r_r(dst: GPR, src: GPR) -> Instruction
    inst_insve_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_d(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_d_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_insve_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_intpl() -> Instruction
    inst_intpl_none() -> Instruction
    inst_j(target: u32) -> Instruction
    inst_j_j(target: u32) -> Instruction
    inst_jal(target: u32) -> Instruction
    inst_jal_j(target: u32) -> Instruction
    inst_jalr(dst: GPR, src: GPR) -> Instruction
    inst_jalr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_jialc(dst: GPR, imm: i64) -> Instruction
    inst_jialc_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_jic(dst: GPR, imm: i64) -> Instruction
    inst_jic_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_jr(dst: GPR) -> Instruction
    inst_jr_r(dst: GPR) -> Instruction
    inst_jump(m: Mnemonic, label_id: u32) -> Instruction
    J-type jump (J/JAL: target only).
    inst_lb(dst: GPR, mem: Memory) -> Instruction
    inst_lb_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lbu(dst: GPR, mem: Memory) -> Instruction
    inst_lbu_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lbux(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_lbux_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ld(dst: GPR, mem: Memory) -> Instruction
    inst_ld_b(dst: Register, mem: Memory) -> Instruction
    inst_ld_b_w_m(dst: Register, mem: Memory) -> Instruction
    inst_ld_d(dst: Register, mem: Memory) -> Instruction
    inst_ld_d_w_m(dst: Register, mem: Memory) -> Instruction
    inst_ld_h(dst: Register, mem: Memory) -> Instruction
    inst_ld_h_w_m(dst: Register, mem: Memory) -> Instruction
    inst_ld_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_ld_w(dst: Register, mem: Memory) -> Instruction
    inst_ld_w_w_m(dst: Register, mem: Memory) -> Instruction
    inst_ldc1(dst: FPR, mem: Memory) -> Instruction
    inst_ldc1_f_m(dst: FPR, mem: Memory) -> Instruction
    inst_ldc2(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_ldc2_c2_m(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_ldi_b(dst: Register, imm: i64) -> Instruction
    inst_ldi_b_w_i5(dst: Register, imm: i64) -> Instruction
    inst_ldi_d(dst: Register, imm: i64) -> Instruction
    inst_ldi_d_w_i5(dst: Register, imm: i64) -> Instruction
    inst_ldi_h(dst: Register, imm: i64) -> Instruction
    inst_ldi_h_w_i5(dst: Register, imm: i64) -> Instruction
    inst_ldi_w(dst: Register, imm: i64) -> Instruction
    inst_ldi_w_w_i5(dst: Register, imm: i64) -> Instruction
    inst_ldl(dst: GPR, mem: Memory) -> Instruction
    inst_ldl_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_ldpc(dst: GPR, target: u32) -> Instruction
    inst_ldpc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_ldr(dst: GPR, mem: Memory) -> Instruction
    inst_ldr_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_ldxc1(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_ldxc1_f_r_r(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_lh(dst: GPR, mem: Memory) -> Instruction
    inst_lh_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lhu(dst: GPR, mem: Memory) -> Instruction
    inst_lhu_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lhx(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_lhx_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ll(dst: GPR, mem: Memory) -> Instruction
    inst_ll_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lld(dst: GPR, mem: Memory) -> Instruction
    inst_lld_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lq(dst: GPR, mem: Memory) -> Instruction
    inst_lq_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lqc2(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_lqc2_c2_m(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_lsa(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_lsa_r_r_r_i5(dst: GPR, src: GPR, src2: GPR, imm: i64) -> Instruction
    inst_lui(dst: GPR, imm: i64) -> Instruction
    inst_lui_r_u16(dst: GPR, imm: i64) -> Instruction
    inst_lv_q(dst: Register, mem: Memory) -> Instruction
    inst_lv_q_vq_m(dst: Register, mem: Memory) -> Instruction
    inst_lv_s(dst: Register, mem: Memory) -> Instruction
    inst_lv_s_vs_m(dst: Register, mem: Memory) -> Instruction
    inst_lvl_q(dst: Register, mem: Memory) -> Instruction
    inst_lvl_q_vq_m(dst: Register, mem: Memory) -> Instruction
    inst_lvr_q(dst: Register, mem: Memory) -> Instruction
    inst_lvr_q_vq_m(dst: Register, mem: Memory) -> Instruction
    inst_lw(dst: GPR, mem: Memory) -> Instruction
    inst_lw_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lwc1(dst: FPR, mem: Memory) -> Instruction
    inst_lwc1_f_m(dst: FPR, mem: Memory) -> Instruction
    inst_lwc2(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_lwc2_c2_m(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_lwl(dst: GPR, mem: Memory) -> Instruction
    inst_lwl_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lwpc(dst: GPR, target: u32) -> Instruction
    inst_lwpc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_lwr(dst: GPR, mem: Memory) -> Instruction
    inst_lwr_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lwu(dst: GPR, mem: Memory) -> Instruction
    inst_lwu_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_lwupc(dst: GPR, target: u32) -> Instruction
    inst_lwupc_r_rel(dst: GPR, target: u32) -> Instruction
    inst_lwx(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_lwx_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_lwxc1(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_lwxc1_f_r_r(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_madd 2 forms
    inst_madd_r_r(dst: GPR, src: GPR) -> Instruction
    inst_madd_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_madd1(dst: GPR, src: GPR) -> Instruction
    inst_madd1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_madd_d(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_madd_d_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_madd_ps(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_madd_ps_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_madd_s(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_madd_s_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_maddu 2 forms
    inst_maddu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_maddu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_maddu1(dst: GPR, src: GPR) -> Instruction
    inst_maddu1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_maddv_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maddv_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_maq_s_w_phl(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_s_w_phl_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_s_w_phr(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_s_w_phr_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_sa_w_phl(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_sa_w_phl_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_sa_w_phr(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_maq_sa_w_phr_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_max_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_max_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mfc0(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mfc0_r_c0_sel(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mfc1(dst: GPR, src: FPR) -> Instruction
    inst_mfc1_r_f(dst: GPR, src: FPR) -> Instruction
    inst_mfc2(dst: GPR, src: GTE_DataReg) -> Instruction
    inst_mfc2_r_c2(dst: GPR, src: GTE_DataReg) -> Instruction
    inst_mfhc0(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mfhc0_r_c0_sel(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mfhc1(dst: GPR, src: FPR) -> Instruction
    inst_mfhc1_r_f(dst: GPR, src: FPR) -> Instruction
    inst_mfhi(dst: GPR) -> Instruction
    inst_mfhi1(dst: GPR) -> Instruction
    inst_mfhi1_r(dst: GPR) -> Instruction
    inst_mfhi_r(dst: GPR) -> Instruction
    inst_mflo(dst: GPR) -> Instruction
    inst_mflo1(dst: GPR) -> Instruction
    inst_mflo1_r(dst: GPR) -> Instruction
    inst_mflo_r(dst: GPR) -> Instruction
    inst_mfsa(dst: GPR) -> Instruction
    inst_mfsa_r(dst: GPR) -> Instruction
    inst_mfv(dst: GPR, src: Register) -> Instruction
    inst_mfv_r_vs(dst: GPR, src: Register) -> Instruction
    inst_mfvc(dst: GPR, imm: i64) -> Instruction
    inst_mfvc_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_min_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_min_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mod_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mod_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mod_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_modu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_modu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mov_d(dst: FPR, src: FPR) -> Instruction
    inst_mov_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_mov_ps(dst: FPR, src: FPR) -> Instruction
    inst_mov_ps_f_f(dst: FPR, src: FPR) -> Instruction
    inst_mov_s(dst: FPR, src: FPR) -> Instruction
    inst_mov_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_movf(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_movf_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movf_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movf_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movf_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movf_r_r_cc(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_movf_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movf_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movn(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_movn_d(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movn_d_f_f_r(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movn_ps(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movn_ps_f_f_r(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movn_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_movn_s(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movn_s_f_f_r(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movt(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_movt_d(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movt_d_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movt_ps(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movt_ps_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movt_r_r_cc(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_movt_s(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movt_s_f_f_cc(dst: FPR, src: FPR, imm: i64) -> Instruction
    inst_movz(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_movz_d(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movz_d_f_f_r(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movz_ps(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movz_ps_f_f_r(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movz_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_movz_s(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_movz_s_f_f_r(dst: FPR, src: FPR, src2: GPR) -> Instruction
    inst_msub 2 forms
    inst_msub_r_r(dst: GPR, src: GPR) -> Instruction
    inst_msub_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_msub1(dst: GPR, src: GPR) -> Instruction
    inst_msub1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_msub_d(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_msub_d_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_msub_ps(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_msub_ps_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_msub_s(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_msub_s_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_msubu 2 forms
    inst_msubu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_msubu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_msubu1(dst: GPR, src: GPR) -> Instruction
    inst_msubu1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_msubv_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_msubv_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mtc0(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mtc0_r_c0_sel(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mtc1(dst: GPR, src: FPR) -> Instruction
    inst_mtc1_r_f(dst: GPR, src: FPR) -> Instruction
    inst_mtc2(dst: GPR, src: GTE_DataReg) -> Instruction
    inst_mtc2_r_c2(dst: GPR, src: GTE_DataReg) -> Instruction
    inst_mthc0(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mthc0_r_c0_sel(dst: GPR, src: CP0_Reg, imm: i64) -> Instruction
    inst_mthc1(dst: GPR, src: FPR) -> Instruction
    inst_mthc1_r_f(dst: GPR, src: FPR) -> Instruction
    inst_mthi(dst: GPR) -> Instruction
    inst_mthi1(dst: GPR) -> Instruction
    inst_mthi1_r(dst: GPR) -> Instruction
    inst_mthi_r(dst: GPR) -> Instruction
    inst_mthlip(dst: GPR, imm: i64) -> Instruction
    inst_mthlip_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_mtlo(dst: GPR) -> Instruction
    inst_mtlo1(dst: GPR) -> Instruction
    inst_mtlo1_r(dst: GPR) -> Instruction
    inst_mtlo_r(dst: GPR) -> Instruction
    inst_mtsa(dst: GPR) -> Instruction
    inst_mtsa_r(dst: GPR) -> Instruction
    inst_mtsab(dst: GPR, imm: i64) -> Instruction
    inst_mtsab_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_mtsah(dst: GPR, imm: i64) -> Instruction
    inst_mtsah_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_mtv(dst: GPR, src: Register) -> Instruction
    inst_mtv_r_vs(dst: GPR, src: Register) -> Instruction
    inst_mtvc(dst: GPR, imm: i64) -> Instruction
    inst_mtvc_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_muh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muhu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muhu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mul(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mul_d(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_mul_d_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_mul_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_mul_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_mul_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mul_s(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_mul_s_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_muleq_s_w_phl(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleq_s_w_phl_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleq_s_w_phr(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleq_s_w_phr_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleu_s_ph_qbl(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleu_s_ph_qbl_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleu_s_ph_qbr(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_muleu_s_ph_qbr_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulq_rs_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulq_rs_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulq_s_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulq_s_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulsaq_s_w_ph(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_mulsaq_s_w_ph_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_mult(dst: GPR, src: GPR) -> Instruction
    inst_mult1(dst: GPR, src: GPR) -> Instruction
    inst_mult1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_mult_r_r(dst: GPR, src: GPR) -> Instruction
    inst_multu(dst: GPR, src: GPR) -> Instruction
    inst_multu1(dst: GPR, src: GPR) -> Instruction
    inst_multu1_r_r(dst: GPR, src: GPR) -> Instruction
    inst_multu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_mulu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_mulv_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mulv_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_mvmva() -> Instruction
    inst_mvmva_none() -> Instruction
    inst_nccs() -> Instruction
    inst_nccs_none() -> Instruction
    inst_ncct() -> Instruction
    inst_ncct_none() -> Instruction
    inst_ncds() -> Instruction
    inst_ncds_none() -> Instruction
    inst_ncdt() -> Instruction
    inst_ncdt_none() -> Instruction
    inst_nclip() -> Instruction
    inst_nclip_none() -> Instruction
    inst_ncs() -> Instruction
    inst_ncs_none() -> Instruction
    inst_nct() -> Instruction
    inst_nct_none() -> Instruction
    inst_neg_d(dst: FPR, src: FPR) -> Instruction
    inst_neg_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_neg_ps(dst: FPR, src: FPR) -> Instruction
    inst_neg_ps_f_f(dst: FPR, src: FPR) -> Instruction
    inst_neg_s(dst: FPR, src: FPR) -> Instruction
    inst_neg_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_nloc_b(dst: Register, src: Register) -> Instruction
    inst_nloc_b_w_w(dst: Register, src: Register) -> Instruction
    inst_nloc_d(dst: Register, src: Register) -> Instruction
    inst_nloc_d_w_w(dst: Register, src: Register) -> Instruction
    inst_nloc_h(dst: Register, src: Register) -> Instruction
    inst_nloc_h_w_w(dst: Register, src: Register) -> Instruction
    inst_nloc_w(dst: Register, src: Register) -> Instruction
    inst_nloc_w_w_w(dst: Register, src: Register) -> Instruction
    inst_nlzc_b(dst: Register, src: Register) -> Instruction
    inst_nlzc_b_w_w(dst: Register, src: Register) -> Instruction
    inst_nlzc_d(dst: Register, src: Register) -> Instruction
    inst_nlzc_d_w_w(dst: Register, src: Register) -> Instruction
    inst_nlzc_h(dst: Register, src: Register) -> Instruction
    inst_nlzc_h_w_w(dst: Register, src: Register) -> Instruction
    inst_nlzc_w(dst: Register, src: Register) -> Instruction
    inst_nlzc_w_w_w(dst: Register, src: Register) -> Instruction
    inst_nmadd_d(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmadd_d_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmadd_ps(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmadd_ps_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmadd_s(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmadd_s_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmsub_d(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmsub_d_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmsub_ps(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmsub_ps_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmsub_s(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_nmsub_s_f_f_f_f(dst: FPR, src: FPR, src2: FPR, src3: FPR) -> Instruction
    inst_none(m: Mnemonic) -> Instruction
    inst_nop() -> Instruction
    inst_nop_none() -> Instruction
    inst_nor(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_nor_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_nor_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_nor_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_nori_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_nori_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_op() -> Instruction
    inst_op_none() -> Instruction
    inst_or(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_or_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_or_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_or_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_ori(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_ori_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ori_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_ori_r_r_u16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_pabsh(dst: GPR, src: GPR) -> Instruction
    inst_pabsh_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pabsw(dst: GPR, src: GPR) -> Instruction
    inst_pabsw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_paddb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddsb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddsb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddsh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddsh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddsw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddsw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddub(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddub_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_padduh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_padduh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_padduw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_padduw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_paddw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pand(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pand_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pause() -> Instruction
    inst_pause_none() -> Instruction
    inst_pceqb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pceqb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pceqh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pceqh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pceqw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pceqw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcgtb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcgtb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcgth(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcgth_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcgtw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcgtw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcnt_b(dst: Register, src: Register) -> Instruction
    inst_pcnt_b_w_w(dst: Register, src: Register) -> Instruction
    inst_pcnt_d(dst: Register, src: Register) -> Instruction
    inst_pcnt_d_w_w(dst: Register, src: Register) -> Instruction
    inst_pcnt_h(dst: Register, src: Register) -> Instruction
    inst_pcnt_h_w_w(dst: Register, src: Register) -> Instruction
    inst_pcnt_w(dst: Register, src: Register) -> Instruction
    inst_pcnt_w_w_w(dst: Register, src: Register) -> Instruction
    inst_pcpyh(dst: GPR, src: GPR) -> Instruction
    inst_pcpyh_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pcpyld(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcpyld_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcpyud(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pcpyud_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pdivbw(dst: GPR, src: GPR) -> Instruction
    inst_pdivbw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pdivuw(dst: GPR, src: GPR) -> Instruction
    inst_pdivuw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pdivw(dst: GPR, src: GPR) -> Instruction
    inst_pdivw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pexch(dst: GPR, src: GPR) -> Instruction
    inst_pexch_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pexcw(dst: GPR, src: GPR) -> Instruction
    inst_pexcw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pexeh(dst: GPR, src: GPR) -> Instruction
    inst_pexeh_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pexew(dst: GPR, src: GPR) -> Instruction
    inst_pexew_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pext5(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pext5_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextlb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextlb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextlh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextlh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextlw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextlw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextub(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextub_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextuh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextuh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextuw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pextuw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_phmadh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_phmadh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_phmsbh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_phmsbh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pick_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pick_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pick_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pick_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pinth(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pinth_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pintoh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pintoh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pll_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_pll_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_plu_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_plu_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_plzcw(dst: GPR, src: GPR) -> Instruction
    inst_plzcw_r_r(dst: GPR, src: GPR) -> Instruction
    inst_pmaddh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaddh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmadduw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmadduw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaddw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaddw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaxh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaxh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaxw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmaxw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmfhi(dst: GPR) -> Instruction
    inst_pmfhi_r(dst: GPR) -> Instruction
    inst_pmfhl_lh(dst: GPR) -> Instruction
    inst_pmfhl_lh_r(dst: GPR) -> Instruction
    inst_pmfhl_lw(dst: GPR) -> Instruction
    inst_pmfhl_lw_r(dst: GPR) -> Instruction
    inst_pmfhl_sh(dst: GPR) -> Instruction
    inst_pmfhl_sh_r(dst: GPR) -> Instruction
    inst_pmfhl_slw(dst: GPR) -> Instruction
    inst_pmfhl_slw_r(dst: GPR) -> Instruction
    inst_pmfhl_uw(dst: GPR) -> Instruction
    inst_pmfhl_uw_r(dst: GPR) -> Instruction
    inst_pmflo(dst: GPR) -> Instruction
    inst_pmflo_r(dst: GPR) -> Instruction
    inst_pminh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pminh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pminw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pminw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmsubh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmsubh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmsubw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmsubw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmthi(dst: GPR) -> Instruction
    inst_pmthi_r(dst: GPR) -> Instruction
    inst_pmthl_lw(dst: GPR) -> Instruction
    inst_pmthl_lw_r(dst: GPR) -> Instruction
    inst_pmtlo(dst: GPR) -> Instruction
    inst_pmtlo_r(dst: GPR) -> Instruction
    inst_pmulth(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmulth_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmultuw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmultuw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmultw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pmultw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pnor(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pnor_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_por(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_por_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppac5(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppac5_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppacb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppacb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppach(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppach_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppacw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ppacw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_preceq_w_phl(dst: GPR, src: GPR) -> Instruction
    inst_preceq_w_phl_r_r(dst: GPR, src: GPR) -> Instruction
    inst_preceq_w_phr(dst: GPR, src: GPR) -> Instruction
    inst_preceq_w_phr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbl(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbl_r_r(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbla(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbla_r_r(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbr(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbra(dst: GPR, src: GPR) -> Instruction
    inst_precequ_ph_qbra_r_r(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbl(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbl_r_r(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbla(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbla_r_r(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbr(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbra(dst: GPR, src: GPR) -> Instruction
    inst_preceu_ph_qbra_r_r(dst: GPR, src: GPR) -> Instruction
    inst_precrq_ph_w(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrq_ph_w_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrq_qb_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrq_qb_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrq_rs_ph_w(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrq_rs_ph_w_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrqu_s_qb_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_precrqu_s_qb_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pref(imm: i64, mem: Memory) -> Instruction
    inst_pref_i5_m(imm: i64, mem: Memory) -> Instruction
    inst_prefx(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_prefx_i5_r_r(imm: i64, dst: GPR, src: GPR) -> Instruction
    inst_prot3w(dst: GPR, src: GPR) -> Instruction
    inst_prot3w_r_r(dst: GPR, src: GPR) -> Instruction
    inst_psllh(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psllh_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psllvw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psllvw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psllw(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psllw_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psrah(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psrah_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psravw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psravw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psraw(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psraw_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psrlh(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psrlh_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psrlvw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psrlvw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psrlw(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psrlw_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_psubb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubsb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubsb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubsh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubsh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubsw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubsw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubub(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubub_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubuh(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubuh_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubuw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubuw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubw(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_psubw_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pul_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_pul_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_puu_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_puu_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_pxor(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_pxor_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_qfsrv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_qfsrv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_r(m: Mnemonic, a: Register) -> Instruction
    inst_r_i(m: Mnemonic, rt: Register, imm: i64) -> Instruction
    Two-operand immediate (e.g. LUI rt, imm; LI variants).
    inst_r_m(m: Mnemonic, r: Register, mm: Memory, size: u8 = 4) -> Instruction
    Load/store: reg + memory (LW $rt, disp($rs)).
    inst_r_r(m: Mnemonic, dst, src: Register) -> Instruction
    inst_r_r_i(m: Mnemonic, rt, rs: Register, imm: i64) -> Instruction
    MIPS three-operand immediate: $rt, $rs, imm (e.g. ADDI rt, rs, imm).
    inst_r_r_r(m: Mnemonic, dst, s1, s2: Register) -> Instruction
    inst_rddsp(dst: GPR, imm: i64) -> Instruction
    inst_rddsp_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_rdhwr(dst: GPR, src: GPR) -> Instruction
    inst_rdhwr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_rdpgpr(dst: GPR, src: GPR) -> Instruction
    inst_rdpgpr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_recip_d(dst: FPR, src: FPR) -> Instruction
    inst_recip_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_recip_s(dst: FPR, src: FPR) -> Instruction
    inst_recip_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_repl_ph(dst: GPR, imm: i64) -> Instruction
    inst_repl_ph_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_repl_qb(dst: GPR, imm: i64) -> Instruction
    inst_repl_qb_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_replv_ph(dst: GPR, src: GPR) -> Instruction
    inst_replv_ph_r_r(dst: GPR, src: GPR) -> Instruction
    inst_replv_qb(dst: GPR, src: GPR) -> Instruction
    inst_replv_qb_r_r(dst: GPR, src: GPR) -> Instruction
    inst_rotr(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_rotr_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_rotrv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_rotrv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_round_l_d(dst: FPR, src: FPR) -> Instruction
    inst_round_l_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_round_l_s(dst: FPR, src: FPR) -> Instruction
    inst_round_l_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_round_w_d(dst: FPR, src: FPR) -> Instruction
    inst_round_w_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_round_w_s(dst: FPR, src: FPR) -> Instruction
    inst_round_w_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_rsqrt_d(dst: FPR, src: FPR) -> Instruction
    inst_rsqrt_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_rsqrt_s(dst: FPR, src: FPR) -> Instruction
    inst_rsqrt_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_rtps() -> Instruction
    inst_rtps_none() -> Instruction
    inst_rtpt() -> Instruction
    inst_rtpt_none() -> Instruction
    inst_sb(dst: GPR, mem: Memory) -> Instruction
    inst_sb_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_sc(dst: GPR, mem: Memory) -> Instruction
    inst_sc_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_scd(dst: GPR, mem: Memory) -> Instruction
    inst_scd_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_sd(dst: GPR, mem: Memory) -> Instruction
    inst_sd_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_sdbbp(imm: i64) -> Instruction
    inst_sdbbp_i20(imm: i64) -> Instruction
    inst_sdc1(dst: FPR, mem: Memory) -> Instruction
    inst_sdc1_f_m(dst: FPR, mem: Memory) -> Instruction
    inst_sdc2(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_sdc2_c2_m(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_sdl(dst: GPR, mem: Memory) -> Instruction
    inst_sdl_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_sdr(dst: GPR, mem: Memory) -> Instruction
    inst_sdr_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_sdxc1(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_sdxc1_f_r_r(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_seb(dst: GPR, src: GPR) -> Instruction
    inst_seb_r_r(dst: GPR, src: GPR) -> Instruction
    inst_seh(dst: GPR, src: GPR) -> Instruction
    inst_seh_r_r(dst: GPR, src: GPR) -> Instruction
    inst_seleqz(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_seleqz_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_selnez(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_selnez_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_sh(dst: GPR, mem: Memory) -> Instruction
    inst_sh_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_shf_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shf_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shf_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shf_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shf_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shf_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_shift(m: Mnemonic, rd, rt: Register, shamt: u8) -> Instruction
    Shift by immediate: $rd, $rt, shamt (SLL/SRL/SRA).
    inst_shift_v(m: Mnemonic, dst, s1, s2: Register) -> Instruction
    inst_shilo(imm: i64, imm2: i64) -> Instruction
    inst_shilo_i5_i5(imm: i64, imm2: i64) -> Instruction
    inst_shilov(imm: i64, dst: GPR) -> Instruction
    inst_shilov_i5_r(imm: i64, dst: GPR) -> Instruction
    inst_shll_ph(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_ph_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_qb(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_qb_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_s_ph(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_s_ph_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_s_w(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shll_s_w_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shllv_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_s_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_s_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_s_w(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shllv_s_w_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shra_ph(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_ph_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_qb(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_qb_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_r_ph(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_r_ph_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_r_qb(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_r_qb_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_r_w(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shra_r_w_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shrav_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_r_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_r_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_r_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_r_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_r_w(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrav_r_w_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrl_ph(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shrl_ph_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shrl_qb(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shrl_qb_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_shrlv_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrlv_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrlv_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_shrlv_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_sigrie(imm: i64) -> Instruction
    inst_sigrie_u16(imm: i64) -> Instruction
    inst_sld_b(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_b_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_d(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_d_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_h(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_h_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_w(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sld_w_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_sldi_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_d(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_d_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sldi_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sll(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sll_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sll_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sll_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_slli_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_d(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_d_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_slli_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sllv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_sllv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_slt(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_slt_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_slti(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_slti_r_r_i16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sltiu(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sltiu_r_r_i16(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sltu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_sltu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_splat_b(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_b_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_d(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_d_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_h(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_h_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_w(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splat_w_w_w_r(dst: Register, src: Register, src2: GPR) -> Instruction
    inst_splati_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_d(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_d_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_splati_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_sq(dst: GPR, mem: Memory) -> Instruction
    inst_sq_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_sqc2(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_sqc2_c2_m(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_sqr() -> Instruction
    inst_sqr_none() -> Instruction
    inst_sqrt_d(dst: FPR, src: FPR) -> Instruction
    inst_sqrt_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_sqrt_s(dst: FPR, src: FPR) -> Instruction
    inst_sqrt_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_sra(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sra_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_sra_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sra_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srai_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_d(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_d_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srai_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srav(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_srav_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_srl(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_srl_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_r_r_i5(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_srl_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srl_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_srli_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_d(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_d_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_h(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_h_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_w(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srli_w_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_srlv(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_srlv_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_ssnop() -> Instruction
    inst_ssnop_none() -> Instruction
    inst_st_b(dst: Register, mem: Memory) -> Instruction
    inst_st_b_w_m(dst: Register, mem: Memory) -> Instruction
    inst_st_d(dst: Register, mem: Memory) -> Instruction
    inst_st_d_w_m(dst: Register, mem: Memory) -> Instruction
    inst_st_h(dst: Register, mem: Memory) -> Instruction
    inst_st_h_w_m(dst: Register, mem: Memory) -> Instruction
    inst_st_w(dst: Register, mem: Memory) -> Instruction
    inst_st_w_w_m(dst: Register, mem: Memory) -> Instruction
    inst_sub(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_sub_d(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_sub_d_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_sub_ps(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_sub_ps_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_sub_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_sub_s(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_sub_s_f_f_f(dst: FPR, src: FPR, src2: FPR) -> Instruction
    inst_subq_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subq_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subq_s_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subq_s_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subq_s_w(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subq_s_w_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subs_s_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_s_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subs_u_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subu(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_s_ph(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_s_ph_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_s_qb(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subu_s_qb_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_subv_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_subv_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_sv_q(dst: Register, mem: Memory) -> Instruction
    inst_sv_q_vq_m(dst: Register, mem: Memory) -> Instruction
    inst_sv_s(dst: Register, mem: Memory) -> Instruction
    inst_sv_s_vs_m(dst: Register, mem: Memory) -> Instruction
    inst_svl_q(dst: Register, mem: Memory) -> Instruction
    inst_svl_q_vq_m(dst: Register, mem: Memory) -> Instruction
    inst_svr_q(dst: Register, mem: Memory) -> Instruction
    inst_svr_q_vq_m(dst: Register, mem: Memory) -> Instruction
    inst_sw(dst: GPR, mem: Memory) -> Instruction
    inst_sw_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_swc1(dst: FPR, mem: Memory) -> Instruction
    inst_swc1_f_m(dst: FPR, mem: Memory) -> Instruction
    inst_swc2(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_swc2_c2_m(dst: GTE_DataReg, mem: Memory) -> Instruction
    inst_swl(dst: GPR, mem: Memory) -> Instruction
    inst_swl_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_swr(dst: GPR, mem: Memory) -> Instruction
    inst_swr_r_m(dst: GPR, mem: Memory) -> Instruction
    inst_swxc1(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_swxc1_f_r_r(dst: FPR, src: GPR, src2: GPR) -> Instruction
    inst_sync(imm: i64) -> Instruction
    inst_sync_i5(imm: i64) -> Instruction
    inst_syscall(imm: i64) -> Instruction
    inst_syscall_i20(imm: i64) -> Instruction
    inst_teq(dst: GPR, src: GPR) -> Instruction
    inst_teq_r_r(dst: GPR, src: GPR) -> Instruction
    inst_teqi(dst: GPR, imm: i64) -> Instruction
    inst_teqi_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_tge(dst: GPR, src: GPR) -> Instruction
    inst_tge_r_r(dst: GPR, src: GPR) -> Instruction
    inst_tgei(dst: GPR, imm: i64) -> Instruction
    inst_tgei_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_tgeiu(dst: GPR, imm: i64) -> Instruction
    inst_tgeiu_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_tgeu(dst: GPR, src: GPR) -> Instruction
    inst_tgeu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_tlbp() -> Instruction
    inst_tlbp_none() -> Instruction
    inst_tlbr() -> Instruction
    inst_tlbr_none() -> Instruction
    inst_tlbwi() -> Instruction
    inst_tlbwi_none() -> Instruction
    inst_tlbwr() -> Instruction
    inst_tlbwr_none() -> Instruction
    inst_tlt(dst: GPR, src: GPR) -> Instruction
    inst_tlt_r_r(dst: GPR, src: GPR) -> Instruction
    inst_tlti(dst: GPR, imm: i64) -> Instruction
    inst_tlti_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_tltiu(dst: GPR, imm: i64) -> Instruction
    inst_tltiu_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_tltu(dst: GPR, src: GPR) -> Instruction
    inst_tltu_r_r(dst: GPR, src: GPR) -> Instruction
    inst_tne(dst: GPR, src: GPR) -> Instruction
    inst_tne_r_r(dst: GPR, src: GPR) -> Instruction
    inst_tnei(dst: GPR, imm: i64) -> Instruction
    inst_tnei_r_i16(dst: GPR, imm: i64) -> Instruction
    inst_trunc_l_d(dst: FPR, src: FPR) -> Instruction
    inst_trunc_l_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_trunc_l_s(dst: FPR, src: FPR) -> Instruction
    inst_trunc_l_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_trunc_w_d(dst: FPR, src: FPR) -> Instruction
    inst_trunc_w_d_f_f(dst: FPR, src: FPR) -> Instruction
    inst_trunc_w_s(dst: FPR, src: FPR) -> Instruction
    inst_trunc_w_s_f_f(dst: FPR, src: FPR) -> Instruction
    inst_vabs_p(dst: Register, src: Register) -> Instruction
    inst_vabs_p_vp_vp(dst: Register, src: Register) -> Instruction
    inst_vabs_q(dst: Register, src: Register) -> Instruction
    inst_vabs_q_vq_vq(dst: Register, src: Register) -> Instruction
    inst_vabs_s(dst: Register, src: Register) -> Instruction
    inst_vabs_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vabs_t(dst: Register, src: Register) -> Instruction
    inst_vabs_t_vt_vt(dst: Register, src: Register) -> Instruction
    inst_vadd_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_p_vp_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_s_vs_vs_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vadd_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vasin_s(dst: Register, src: Register) -> Instruction
    inst_vasin_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vavg_p(dst: Register, src: Register) -> Instruction
    inst_vavg_p_vs_vp(dst: Register, src: Register) -> Instruction
    inst_vavg_q(dst: Register, src: Register) -> Instruction
    inst_vavg_q_vs_vq(dst: Register, src: Register) -> Instruction
    inst_vavg_t(dst: Register, src: Register) -> Instruction
    inst_vavg_t_vs_vt(dst: Register, src: Register) -> Instruction
    inst_vcmp_p(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_p_i5_vp_vp(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_q(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_q_i5_vq_vq(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_s(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_s_i5_vs_vs(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_t(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcmp_t_i5_vt_vt(imm: i64, dst: Register, src: Register) -> Instruction
    inst_vcos_s(dst: Register, src: Register) -> Instruction
    inst_vcos_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vcrs_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vcrs_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vcrsp_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vcrsp_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vcst_p(dst: Register, imm: i64) -> Instruction
    inst_vcst_p_vp_i5(dst: Register, imm: i64) -> Instruction
    inst_vcst_q(dst: Register, imm: i64) -> Instruction
    inst_vcst_q_vq_i5(dst: Register, imm: i64) -> Instruction
    inst_vcst_s(dst: Register, imm: i64) -> Instruction
    inst_vcst_s_vs_i5(dst: Register, imm: i64) -> Instruction
    inst_vcst_t(dst: Register, imm: i64) -> Instruction
    inst_vcst_t_vt_i5(dst: Register, imm: i64) -> Instruction
    inst_vdiv_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_p_vp_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_s_vs_vs_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdiv_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdot_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdot_p_vs_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdot_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdot_q_vs_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdot_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vdot_t_vs_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vexp2_s(dst: Register, src: Register) -> Instruction
    inst_vexp2_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vf2h_p(dst: Register, src: Register) -> Instruction
    inst_vf2h_p_vs_vp(dst: Register, src: Register) -> Instruction
    inst_vf2id_p(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_p_vp_vp_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_q(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_q_vq_vq_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_s(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_s_vs_vs_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_t(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2id_t_vt_vt_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_p(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_p_vp_vp_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_q(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_q_vq_vq_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_s(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_s_vs_vs_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_t(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2in_t_vt_vt_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_p(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_p_vp_vp_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_q(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_q_vq_vq_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_s(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_s_vs_vs_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_t(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iu_t_vt_vt_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_p(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_p_vp_vp_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_q(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_q_vq_vq_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_s(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_s_vs_vs_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_t(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vf2iz_t_vt_vt_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vfad_p(dst: Register, src: Register) -> Instruction
    inst_vfad_p_vs_vp(dst: Register, src: Register) -> Instruction
    inst_vfad_q(dst: Register, src: Register) -> Instruction
    inst_vfad_q_vs_vq(dst: Register, src: Register) -> Instruction
    inst_vfad_t(dst: Register, src: Register) -> Instruction
    inst_vfad_t_vs_vt(dst: Register, src: Register) -> Instruction
    inst_vfim_s(dst: Register, imm: i64) -> Instruction
    inst_vfim_s_vs_i16(dst: Register, imm: i64) -> Instruction
    inst_vflush() -> Instruction
    inst_vflush_none() -> Instruction
    inst_vh2f_s(dst: Register, src: Register) -> Instruction
    inst_vh2f_s_vp_vs(dst: Register, src: Register) -> Instruction
    inst_vhdp_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhdp_p_vs_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhdp_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhdp_q_vs_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhdp_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhdp_t_vs_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhtfm2_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhtfm2_p_vp_vmp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhtfm3_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhtfm3_t_vt_vmt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhtfm4_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vhtfm4_q_vq_vmq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vi2f_p(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_p_vp_vp_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_q(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_q_vq_vq_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_s(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_s_vs_vs_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_t(dst: Register, src: Register, imm: i64) -> Instruction
    inst_vi2f_t_vt_vt_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_viim_s(dst: Register, imm: i64) -> Instruction
    inst_viim_s_vs_i16(dst: Register, imm: i64) -> Instruction
    inst_vlog2_s(dst: Register, src: Register) -> Instruction
    inst_vlog2_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vmax_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_p_vp_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_s_vs_vs_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmax_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmidt_p(dst: Register) -> Instruction
    inst_vmidt_p_vmp(dst: Register) -> Instruction
    inst_vmidt_q(dst: Register) -> Instruction
    inst_vmidt_q_vmq(dst: Register) -> Instruction
    inst_vmidt_t(dst: Register) -> Instruction
    inst_vmidt_t_vmt(dst: Register) -> Instruction
    inst_vmin_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_p_vp_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_s_vs_vs_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmin_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmmov_p(dst: Register, src: Register) -> Instruction
    inst_vmmov_p_vmp_vmp(dst: Register, src: Register) -> Instruction
    inst_vmmov_q(dst: Register, src: Register) -> Instruction
    inst_vmmov_q_vmq_vmq(dst: Register, src: Register) -> Instruction
    inst_vmmov_t(dst: Register, src: Register) -> Instruction
    inst_vmmov_t_vmt_vmt(dst: Register, src: Register) -> Instruction
    inst_vmmul_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmmul_p_vmp_vmp_vmp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmmul_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmmul_q_vmq_vmq_vmq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmmul_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmmul_t_vmt_vmt_vmt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmone_p(dst: Register) -> Instruction
    inst_vmone_p_vmp(dst: Register) -> Instruction
    inst_vmone_q(dst: Register) -> Instruction
    inst_vmone_q_vmq(dst: Register) -> Instruction
    inst_vmone_t(dst: Register) -> Instruction
    inst_vmone_t_vmt(dst: Register) -> Instruction
    inst_vmov_p(dst: Register, src: Register) -> Instruction
    inst_vmov_p_vp_vp(dst: Register, src: Register) -> Instruction
    inst_vmov_q(dst: Register, src: Register) -> Instruction
    inst_vmov_q_vq_vq(dst: Register, src: Register) -> Instruction
    inst_vmov_s(dst: Register, src: Register) -> Instruction
    inst_vmov_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vmov_t(dst: Register, src: Register) -> Instruction
    inst_vmov_t_vt_vt(dst: Register, src: Register) -> Instruction
    inst_vmscl_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmscl_p_vmp_vmp_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmscl_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmscl_q_vmq_vmq_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmscl_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmscl_t_vmt_vmt_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_p_vp_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_s_vs_vs_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmul_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vmzero_p(dst: Register) -> Instruction
    inst_vmzero_p_vmp(dst: Register) -> Instruction
    inst_vmzero_q(dst: Register) -> Instruction
    inst_vmzero_q_vmq(dst: Register) -> Instruction
    inst_vmzero_t(dst: Register) -> Instruction
    inst_vmzero_t_vmt(dst: Register) -> Instruction
    inst_vneg_p(dst: Register, src: Register) -> Instruction
    inst_vneg_p_vp_vp(dst: Register, src: Register) -> Instruction
    inst_vneg_q(dst: Register, src: Register) -> Instruction
    inst_vneg_q_vq_vq(dst: Register, src: Register) -> Instruction
    inst_vneg_s(dst: Register, src: Register) -> Instruction
    inst_vneg_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vneg_t(dst: Register, src: Register) -> Instruction
    inst_vneg_t_vt_vt(dst: Register, src: Register) -> Instruction
    inst_vnop() -> Instruction
    inst_vnop_none() -> Instruction
    inst_vnrcp_s(dst: Register, src: Register) -> Instruction
    inst_vnrcp_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vnsin_s(dst: Register, src: Register) -> Instruction
    inst_vnsin_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vpfxd(imm: i64) -> Instruction
    inst_vpfxd_i20(imm: i64) -> Instruction
    inst_vpfxs(imm: i64) -> Instruction
    inst_vpfxs_i20(imm: i64) -> Instruction
    inst_vpfxt(imm: i64) -> Instruction
    inst_vpfxt_i20(imm: i64) -> Instruction
    inst_vqmul_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vqmul_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vrcp_p(dst: Register, src: Register) -> Instruction
    inst_vrcp_p_vp_vp(dst: Register, src: Register) -> Instruction
    inst_vrcp_q(dst: Register, src: Register) -> Instruction
    inst_vrcp_q_vq_vq(dst: Register, src: Register) -> Instruction
    inst_vrcp_s(dst: Register, src: Register) -> Instruction
    inst_vrcp_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vrcp_t(dst: Register, src: Register) -> Instruction
    inst_vrcp_t_vt_vt(dst: Register, src: Register) -> Instruction
    inst_vrexp2_s(dst: Register, src: Register) -> Instruction
    inst_vrexp2_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vrsq_p(dst: Register, src: Register) -> Instruction
    inst_vrsq_p_vp_vp(dst: Register, src: Register) -> Instruction
    inst_vrsq_q(dst: Register, src: Register) -> Instruction
    inst_vrsq_q_vq_vq(dst: Register, src: Register) -> Instruction
    inst_vrsq_s(dst: Register, src: Register) -> Instruction
    inst_vrsq_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vrsq_t(dst: Register, src: Register) -> Instruction
    inst_vrsq_t_vt_vt(dst: Register, src: Register) -> Instruction
    inst_vscl_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vscl_p_vp_vp_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vscl_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vscl_q_vq_vq_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vscl_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vscl_t_vt_vt_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsgn_s(dst: Register, src: Register) -> Instruction
    inst_vsgn_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vshf_b(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_b_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_d(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_d_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_h(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_h_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vshf_w_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsin_s(dst: Register, src: Register) -> Instruction
    inst_vsin_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vsqrt_s(dst: Register, src: Register) -> Instruction
    inst_vsqrt_s_vs_vs(dst: Register, src: Register) -> Instruction
    inst_vsub_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_p_vp_vp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_q_vq_vq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_s(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_s_vs_vs_vs(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsub_t_vt_vt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vsync() -> Instruction
    inst_vsync_none() -> Instruction
    inst_vtfm2_p(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vtfm2_p_vp_vmp_vp(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vtfm3_t(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vtfm3_t_vt_vmt_vt(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vtfm4_q(dst: Register, src: Register, src2: Register) -> Instruction
    inst_vtfm4_q_vq_vmq_vq(dst: Register, src: Register, src2: Register) -> Instruction
    inst_wait() -> Instruction
    inst_wait_none() -> Instruction
    inst_wrdsp(dst: GPR, imm: i64) -> Instruction
    inst_wrdsp_r_i5(dst: GPR, imm: i64) -> Instruction
    inst_wrpgpr(dst: GPR, src: GPR) -> Instruction
    inst_wrpgpr_r_r(dst: GPR, src: GPR) -> Instruction
    inst_wsbh(dst: GPR, src: GPR) -> Instruction
    inst_wsbh_r_r(dst: GPR, src: GPR) -> Instruction
    inst_xor(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_xor_r_r_r(dst: GPR, src: GPR, src2: GPR) -> Instruction
    inst_xor_v(dst: Register, src: Register, src2: Register) -> Instruction
    inst_xor_v_w_w_w(dst: Register, src: Register, src2: Register) -> Instruction
    inst_xori(dst: GPR, src: GPR, imm: i64) -> Instruction
    inst_xori_b(dst: Register, src: Register, imm: i64) -> Instruction
    inst_xori_b_w_w_i5(dst: Register, src: Register, imm: i64) -> Instruction
    inst_xori_r_r_u16(dst: GPR, src: GPR, imm: i64) -> Instruction
    mem(base: Register, disp: i32) -> Memory
    mem_base(m: Memory) -> Register
    mem_base_disp(base: Register, disp: i32) -> Memory
    mem_base_only(base: Register) -> Memory
    mem_disp(m: Memory) -> i32
    mnemonic_to_stringproc(m: Mnemonic, lowercase: bool = true, allocator := context.temp_allocator) -> string
    Canonical mnemonic spelling (lowercase; _ maps to ., except in MSA).

    Canonical mnemonic spelling (lowercase; _ maps to ., except in MSA). Canonical mnemonic spelling (lowercase; _ maps to ., except in MSA).

    msa_from_num(num: u8) -> Register
    op_cp0(c: CP0_Reg) -> Operand
    op_fpr(f: FPR) -> Operand
    op_gpr(g: GPR) -> Operand
    op_gte_ctrl(r: GTE_CtrlReg) -> Operand
    op_gte_data(r: GTE_DataReg) -> Operand
    op_imm(v: i64, size: u8) -> Operand
    op_label(label_id: u32) -> Operand
    Branch/jump target operand.

    Branch/jump target operand. label_id indexes a Label_Definition array (resolved by the encoder during pass 2 -- same model as x86).

    op_mem(m: Memory, size: u8) -> Operand
    op_reg(r: Register) -> Operand
    op_reg_sized(r: Register, size: u8) -> Operand
    op_rel_offset(offset: i64) -> Operand
    Raw offset (skip label resolution).
    opcode_bits(op: u32) -> u32
    Convenience constructor for a 6-bit primary opcode at bits 31-26.
    printproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    printlnproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    read_u32(code: []u8, offset: u32, endianness: Endianness) -> u32
    reg_class(r: Register) -> u16
    reg_hw(r: Register) -> u8
    reg_is_fpr(r: Register) -> bool
    reg_is_gpr(r: Register) -> bool
    reg_is_msa(r: Register) -> bool
    reg_is_vfpu(r: Register) -> bool
    reg_vfpu_hw(r: Register) -> u8
    VFPU hardware-id accessor (7 bits vs the standard reg_hw's 5).
    register_nameproc(r: Register, lowercase: bool = true, allocator := context.temp_allocator) -> string
    Canonical register name with leading $.

    Canonical register name with leading $.

    sbprintproc(sb: ^strings.Builder, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    sbprintlnproc(sb: ^strings.Builder, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    swap_bytes_u32_inplaceproc(code: []u8)
    In-place 32-bit byte-swap of code.

    In-place 32-bit byte-swap of code. Length must be a multiple of 4. Useful for switching a freshly-encoded buffer from native to wire endian when the consumer wants a single endian-conversion sweep after encoding.

    tprintproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    tprintlnproc(instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil) -> string
    vfpu_from_num(num: u8) -> Register
    VFPU register builder.

    VFPU register builder. 7-bit hardware index (0..127); the high bit of the byte (bit 7) is reserved for future use as an orientation flag if needed. Callers requesting a VFPU.s/.p/.t/.q operand bake the format into the mnemonic.

    wprintproc(w: io.Stream, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    wprintlnproc(w: io.Stream, instructions: []Instruction, inst_info: []Instruction_Info, label_defs: []rexcode_isa.Label_Definition, tokens: ^[dynamic]rexcode_isa.Token = nil, options: ^rexcode_isa.Print_Options = nil, label_names: ^map[rexcode_isa.Label_Offset]string = nil)
    write_u32(code: []u8, offset: u32, word: u32, endianness: Endianness)

    Procedure Groups

    Listed with their procedures under Procedures.

    Source Files

    Generation Information

    Generated with odin version dev-2026-10 (vendor "odin") Windows_amd64 @ 2026-10-10 00:25:51.511820200 +0000 UTC