package core:rexcode/isa/ppc_vle

⌘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

    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
    	mode:     Mode,
    	// 1
    	flags:    Encoding_Flags,
    }

    Decode_Index ¶

    Decode_Index :: struct #packed {
    	start: u32,
    	count: u16,
    	_:     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
    	mode:     Mode,
    	// 1
    	flags:    Encoding_Flags,
    }

    Encoding_Flags ¶

    Encoding_Flags :: distinct bit_field u8 {
    	short:       bool | 1,
    	cond_branch: bool | 1,
    	writes_lr:   bool | 1,
    	sets_cr0:    bool | 1,
    	_:           u8 | 4,
    }

    Feature ¶

    Feature :: enum u8 {
    	BASE, 
    	LSP, 
    	SPE, 
    }

    Instruction ¶

    Instruction :: struct #packed {
    	ops:           [4]Operand `fmt:"v,operand_count"`,
    	mnemonic:      Mnemonic,
    	operand_count: u8,
    	flags:         Instruction_Flags,
    	mode:          Mode,
    	length:        u8,
    	// 2 or 4
    	form_id:       u16,
    }

    Instruction_Flags ¶

    Instruction_Flags :: distinct bit_field u8 {
    	sets_cr0: bool | 1,
    	has_oe:   bool | 1,
    	lk:       bool | 1,
    	aa:       bool | 1,
    	_:        u8 | 4,
    }

    Instruction_Info ¶

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

    Mnemonic ¶

    Mnemonic :: enum u16 {
    	INVALID      = 0, 
    	// ---- 16-bit short (se_*) ----
    	SE_ILLEGAL, 
    	SE_ISYNC, 
    	SE_SC, 
    	SE_BLR, 
    	SE_BLRL, 
    	SE_BCTR, 
    	SE_BCTRL, 
    	SE_RFI, 
    	SE_RFCI, 
    	SE_RFDI, 
    	SE_RFMCI, 
    	SE_RFGI, 
    	SE_NOT, 
    	SE_NEG, 
    	SE_MFLR, 
    	SE_MTLR, 
    	SE_MFCTR, 
    	SE_MTCTR, 
    	SE_EXTZB, 
    	SE_EXTSB, 
    	SE_EXTZH, 
    	SE_EXTSH, 
    	SE_MR, 
    	SE_MTAR, 
    	SE_MFAR, 
    	SE_ADD, 
    	SE_MULLW, 
    	SE_SUB, 
    	SE_SUBF, 
    	SE_CMP, 
    	SE_CMPL, 
    	SE_CMPH, 
    	SE_CMPHL, 
    	SE_SRW, 
    	SE_SRAW, 
    	SE_SLW, 
    	SE_OR, 
    	SE_ANDC, 
    	SE_AND, 
    	SE_AND_DOT, 
    	SE_ADDI, 
    	SE_CMPLI, 
    	SE_SUBI, 
    	SE_SUBI_DOT, 
    	SE_CMPI, 
    	SE_BMASKI, 
    	SE_ANDI, 
    	SE_NOP, 
    	SE_LI, 
    	SE_BCLRI, 
    	SE_BGENI, 
    	SE_BSETI, 
    	SE_BTSTI, 
    	SE_SRWI, 
    	SE_SRAWI, 
    	SE_SLWI, 
    	SE_LBZ, 
    	SE_STB, 
    	SE_LHZ, 
    	SE_STH, 
    	SE_LWZ, 
    	SE_STW, 
    	SE_BGE, 
    	SE_BNL, 
    	SE_BLE, 
    	SE_BNG, 
    	SE_BNE, 
    	SE_BNS, 
    	SE_BNU, 
    	SE_BF, 
    	SE_BLT, 
    	SE_BGT, 
    	SE_BEQ, 
    	SE_BSO, 
    	SE_BUN, 
    	SE_BT, 
    	SE_BC, 
    	SE_B, 
    	SE_BL, 
    	// ---- 32-bit (e_*) ----
    	E_LBZU, 
    	E_LHAU, 
    	E_LHZU, 
    	E_LMW, 
    	E_LWZU, 
    	E_STBU, 
    	E_STHU, 
    	E_STWU, 
    	E_STMW, 
    	E_LMVGPRW, 
    	E_LDMVGPRW, 
    	E_STMVGPRW, 
    	E_LMVSPRW, 
    	E_LDMVSPRW, 
    	E_STMVSPRW, 
    	E_LMVSRRW, 
    	E_LDMVSRRW, 
    	E_STMVSRRW, 
    	E_LMVCSRRW, 
    	E_LDMVCSRRW, 
    	E_STMVCSRRW, 
    	E_LMVDSRRW, 
    	E_LDMVDSRRW, 
    	E_STMVDSRRW, 
    	E_LMVMCSRRW, 
    	E_STMVMCSRRW, 
    	E_ADD16I, 
    	E_LA, 
    	E_SUB16I, 
    	E_LBZ, 
    	E_STB, 
    	E_LHA, 
    	E_LWZ, 
    	E_STW, 
    	E_LHZ, 
    	E_STH, 
    	E_RLWIMI, 
    	E_INSLWI, 
    	E_INSRWI, 
    	E_ROTLWI, 
    	E_ROTRWI, 
    	E_CLRLWI, 
    	E_CLRRWI, 
    	E_RLWINM, 
    	E_EXTLWI, 
    	E_EXTRWI, 
    	E_CLRLSLWI, 
    	E_CMPH, 
    	E_SC, 
    	E_CMPHL, 
    	E_CRANDC, 
    	E_CRNAND, 
    	E_CRNOT, 
    	E_CRNOR, 
    	E_CRCLR, 
    	E_CRXOR, 
    	E_MCRF, 
    	E_SLWI, 
    	E_SLWI_DOT, 
    	E_CRAND, 
    	E_RLW, 
    	E_RLW_DOT, 
    	E_CRSET, 
    	E_CREQV, 
    	E_RLWI, 
    	E_RLWI_DOT, 
    	E_CRORC, 
    	E_CRMOVE, 
    	E_CROR, 
    	E_SRWI, 
    	E_SRWI_DOT, 
    	E_BDNZ, 
    	E_BDNZL, 
    	E_BDZ, 
    	E_BDZL, 
    	E_CMPI, 
    	E_CMPWI, 
    	E_CMPLI, 
    	E_CMPLWI, 
    	E_ADDI, 
    	E_SUBI, 
    	E_ADDI_DOT, 
    	E_ADDIC, 
    	E_SUBIC, 
    	E_ADDIC_DOT, 
    	E_SUBIC_DOT, 
    	E_MULLI, 
    	E_SUBFIC, 
    	E_SUBFIC_DOT, 
    	E_ANDI, 
    	E_ANDI_DOT, 
    	E_NOP, 
    	E_ORI, 
    	E_ORI_DOT, 
    	E_XORI, 
    	E_XORI_DOT, 
    	E_LIS, 
    	E_AND2IS_DOT, 
    	E_OR2IS, 
    	E_AND2I_DOT, 
    	E_OR2I, 
    	E_CMPHL16I, 
    	E_CMPH16I, 
    	E_CMPL16I, 
    	E_MULL2I, 
    	E_CMP16I, 
    	E_SUB2IS, 
    	E_ADD2IS, 
    	E_SUB2I_DOT, 
    	E_ADD2I_DOT, 
    	E_LI, 
    	E_B, 
    	E_BL, 
    	E_BGE, 
    	E_BGEL, 
    	E_BNL, 
    	E_BNLL, 
    	E_BLT, 
    	E_BLTL, 
    	E_BGT, 
    	E_BGTL, 
    	E_BLE, 
    	E_BLEL, 
    	E_BNG, 
    	E_BNGL, 
    	E_BNE, 
    	E_BNEL, 
    	E_BEQ, 
    	E_BEQL, 
    	E_BSO, 
    	E_BSOL, 
    	E_BUN, 
    	E_BUNL, 
    	E_BNS, 
    	E_BNSL, 
    	E_BNU, 
    	E_BNUL, 
    	E_BC, 
    	E_BCL, 
    	E_BF, 
    	E_BFL, 
    	E_BT, 
    	E_BTL, 
    }

    Related Procedures With Parameters

    Mode ¶

    Mode :: enum u8 {
    	PPC32_VLE = 0, 
    }

    Operand ¶

    Operand :: struct #packed {
    	using _: struct #packed #raw_union {
    		reg:       Register,
    		mem:       Memory,
    		immediate: i64,
    		relative:  i64,
    	},
    	kind: Operand_Kind,
    	size: u8,
    }

    Related Procedures With Returns

    Operand_Encoding ¶

    Operand_Encoding :: enum u8 {
    	NONE              = 0, 
    	IMPL,                  // implicit / baked into bits
    	// ---- 32-bit instructions (standard PPC slot positions) ----
    	RT,                    // bits 21..25 (5-bit GPR destination)
    	RA,                    // bits 16..20
    	RB,                    // bits 11..15
    	RS,                    // bits 21..25 (alias of RT used in store/X-form)
    	UI16,                  // bits 0..15, unsigned 16-bit
    	SI16,                  // bits 0..15, signed 16-bit
    	LI20,                  // 20-bit immediate split: imm[19:16] at bits 17..20,
    	//                          imm[15:11] at bits 11..15,
    	//                          imm[10:0]  at bits  0..10
    	SCI8,                  // 8-bit signed immediate with split scale + sign
    	// ---- 32-bit branches ----
    	B15,                   // bits 1..15, signed << 1 (15-bit displacement)
    	B24,                   // bits 1..24, signed << 1 (24-bit displacement)
    	BO32,                  // bits 20..21 (2-bit BO)
    	BI32,                  // bits 16..19 (4-bit BI selecting CR bit)
    	// ---- 16-bit register fields ----
    	RX,                    // bits 0..3, 4-bit GPR_VLE16
    	RY,                    // bits 4..7, 4-bit GPR_VLE16
    	RZ,                    // alias of RY at bits 4..7
    	// ---- 16-bit immediates ----
    	UI5,                   // bits 4..8 (5-bit, SE_IM5 form)
    	UI7,                   // bits 4..10 (7-bit, IM7 form — actually IM7 puts UI7 at bits 8..14 and RX at bits 4..7 — see encoder)
    	// ---- 16-bit memory (SD4 form) ----
    	SE_SD,                 // bits 8..11 unscaled (byte)
    	SE_SDH,                // bits 8..11 scaled by 2 (halfword)
    	SE_SDW,                // bits 8..11 scaled by 4 (word)
    	// ---- 16-bit branches ----
    	B8,                    // bits 0..7, signed << 1 (8-bit displacement)
    	BO16,                  // bit 10 (1-bit BO in BD8IO form)
    	BI16,                  // bits 8..9 (2-bit BI)
    	// ---- Memory operand composites ----
    	OFFSET_BASE_D,         // 32-bit D-form: RA + signed 16-bit D
    	OFFSET_BASE_SD4,       // 16-bit SD4 byte memory: RX + SE_SD
    	OFFSET_BASE_SD4_H,     // 16-bit SD4 halfword memory: RX + SE_SDH
    	OFFSET_BASE_SD4_W,     // 16-bit SD4 word memory: RX + SE_SDW
    }

    Operand_Kind ¶

    Operand_Kind :: enum u8 {
    	NONE, 
    	REGISTER,  // mostly used for `A` in `ROL A` (implicit; rarely needed)
    	IMMEDIATE, 
    	MEMORY, 
    	RELATIVE,  // PC-relative target (label or raw byte offset)
    }

    Operand_Type ¶

    Operand_Type :: enum u8 {
    	NONE        = 0, 
    	GPR,             // standard 32-register GPR (5-bit field, used in 32-bit ops)
    	GPR_VLE16,       // 16-register VLE subset (4-bit field) — r0..r7 + r24..r31
    	GPR_OR_ZERO, 
    	IMM, 
    	SIMM, 
    	UIMM, 
    	REL, 
    	MEM, 
    	CR_FIELD, 
    	CR_BIT, 
    	SPR, 
    	BO,              // branch-op selector immediate (BO16 = 1-bit, BO32 = 2-bit)
    }

    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, 
    	// Internal (encoder-resolved) branch relocations
    	BRANCH_BD8,                 // 8-bit signed << 1 at bits 7..0 of halfword
    	BRANCH_BD15,                // 15-bit signed << 1 at bits 1..15 of low halfword
    	BRANCH_BD24,                // 24-bit signed << 1 at bits 1..24 of word
    	// ELF-spec relocations (linker-bound — encoder emits them but doesn't
    	// resolve them locally)
    	R_PPC_VLE_REL8,             // 216 — like BRANCH_BD8 but ELF-emitted
    	R_PPC_VLE_REL15,            // 217
    	R_PPC_VLE_REL24,            // 218
    	R_PPC_VLE_LO16A,            // 219 — low 16 bits, A-form imm (I16A bit positions)
    	R_PPC_VLE_LO16D,            // 220 — low 16 bits, D-form imm
    	R_PPC_VLE_HI16A,            // 221 — high 16 bits, A-form
    	R_PPC_VLE_HI16D,            // 222 — high 16 bits, D-form
    	R_PPC_VLE_HA16A,            // 223 — high-adjusted 16 bits, A-form
    	R_PPC_VLE_HA16D,            // 224 — high-adjusted 16 bits, D-form
    	R_PPC_VLE_SDA21,            // 225 — 21-bit small-data-area
    	R_PPC_VLE_SDA21_LO,         // 226 — like SDA21 but no overflow check
    	R_PPC_VLE_SDAREL_LO16A,     // 227
    	R_PPC_VLE_SDAREL_LO16D,     // 228
    	R_PPC_VLE_SDAREL_HI16A,     // 229
    	R_PPC_VLE_SDAREL_HI16D,     // 230
    	R_PPC_VLE_SDAREL_HA16A,     // 231
    	R_PPC_VLE_SDAREL_HA16D,     // 232
    	R_PPC_VLE_ADDR20,           // 233 — 20-bit absolute (LI20)
    }

    Constants

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

    CR0:: Register(REG_CR | 0)
    CR1:: Register(REG_CR | 1)
    CR2:: Register(REG_CR | 2)
    CR3:: Register(REG_CR | 3)
    CSRR0:: Register(REG_SPR | 58)
    CSRR1:: Register(REG_SPR | 59)
    CTR:: Register(REG_SPR | 9)
    DAC1:: Register(REG_SPR | 316)
    DAC2:: Register(REG_SPR | 317)
    DBCR0:: Register(REG_SPR | 308)
    DBCR1:: Register(REG_SPR | 309)
    DBCR2:: Register(REG_SPR | 310)
    DBSR:: Register(REG_SPR | 304)
    Debug
    DEAR:: Register(REG_SPR | 61)
    DEC:: Register(REG_SPR | 22)
    DEFAULT_PRINT_OPTIONS: rexcode_isa.Print_Options : isa.DEFAULT_PRINT_OPTIONS
    ESR:: Register(REG_SPR | 62)
    IAC1:: Register(REG_SPR | 312)
    IAC2:: Register(REG_SPR | 313)
    IAC3:: Register(REG_SPR | 314)
    IAC4:: Register(REG_SPR | 315)
    IVPR:: Register(REG_SPR | 63)
    LABEL_UNDEFINED: rexcode_isa.Label_Definition : isa.LABEL_UNDEFINED
    LR:: Register(REG_SPR | 8)
    MAX_INST_SIZE:: 4
    NONE:: Register(0xFFFF)
    PID:: Register(REG_SPR | 48)
    PIR:: Register(REG_SPR | 286)
    PVR:: Register(REG_SPR | 287)
    R0:: Register(REG_GPR | 0)
    R1:: Register(REG_GPR | 1)
    R10:: Register(REG_GPR | 10)
    R11:: Register(REG_GPR | 11)
    R12:: Register(REG_GPR | 12)
    R13:: Register(REG_GPR | 13)
    R14:: Register(REG_GPR | 14)
    R15:: Register(REG_GPR | 15)
    R16:: Register(REG_GPR | 16)
    R17:: Register(REG_GPR | 17)
    R18:: Register(REG_GPR | 18)
    R19:: Register(REG_GPR | 19)
    R2:: Register(REG_GPR | 2)
    R20:: Register(REG_GPR | 20)
    R21:: Register(REG_GPR | 21)
    R22:: Register(REG_GPR | 22)
    R23:: Register(REG_GPR | 23)
    R24:: Register(REG_GPR | 24)
    R25:: Register(REG_GPR | 25)
    R26:: Register(REG_GPR | 26)
    R27:: Register(REG_GPR | 27)
    R28:: Register(REG_GPR | 28)
    R29:: Register(REG_GPR | 29)
    R3:: Register(REG_GPR | 3)
    R30:: Register(REG_GPR | 30)
    R31:: Register(REG_GPR | 31)
    R4:: Register(REG_GPR | 4)
    R5:: Register(REG_GPR | 5)
    R6:: Register(REG_GPR | 6)
    R7:: Register(REG_GPR | 7)
    R8:: Register(REG_GPR | 8)
    R9:: Register(REG_GPR | 9)
    REG_… 4
    REG_CR:: 0x5000
    REG_GPR:: 0x1000
    REG_NONE:: 0x0000
    Class tag at top nibble (bits 12..15); 12-bit hardware index in low 12 bits.

    Class tag at top nibble (bits 12..15); 12-bit hardware index in low 12 bits. SPR space goes up to 1023, so we use 12-bit hw to avoid collisions.

    REG_SPR:: 0x6000
    SPEFSCR:: Register(REG_SPR | 512)
    SPE FP control
    SPRG0:: Register(REG_SPR | 272)
    SPRGs 0..7
    SPRG1:: Register(REG_SPR | 273)
    SPRG2:: Register(REG_SPR | 274)
    SPRG3:: Register(REG_SPR | 275)
    SPRG4:: Register(REG_SPR | 276)
    SPRG5:: Register(REG_SPR | 277)
    SPRG6:: Register(REG_SPR | 278)
    SPRG7:: Register(REG_SPR | 279)
    SRR0:: Register(REG_SPR | 26)
    SRR1:: Register(REG_SPR | 27)
    TBL:: Register(REG_SPR | 284)
    TBU:: Register(REG_SPR | 285)
    XER:: Register(REG_SPR | 1)
    Common SPRs

    Variables

    DECODE_BUCKET_LIST ¶

    @(rodata)
    DECODE_BUCKET_LIST: []u16 = …

    DECODE_ENTRIES ¶

    @(rodata)
    DECODE_ENTRIES: []Decode_Entry = …

    DECODE_FORM_IDX ¶

    @(rodata)
    DECODE_FORM_IDX: []u16 = …

    DECODE_INDEX_LONG ¶

    @(rodata)
    DECODE_INDEX_LONG: []Decode_Index = …

    DECODE_INDEX_SHORT ¶

    @(rodata)
    DECODE_INDEX_SHORT: []Decode_Index = …

    ENCODE_FORMS ¶

    @(rodata)
    ENCODE_FORMS: []Encoding = …

    ENCODE_RUNS ¶

    @(rodata)
    ENCODE_RUNS: []Encode_Run = …

    Procedures

    One row per procedure; 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
    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) -> (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 (VLE is 2 or 4 bytes; minimum 2).

    Instruction-count ceiling for data (VLE is 2 or 4 bytes; minimum 2).

    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).

    elf_reloc_numberproc(t: Relocation_Type) -> u32
    Mapping table — each VLE reloc's official ELF number.
    emit_e_add16iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_add16i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_add2i_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_add2i_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_add2isproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_add2is_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addi_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addi_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addi_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addicproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addic_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addic_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_addic_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_and2i_dotproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_and2i_dot_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_and2is_dotproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_and2is_dot_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_andiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_andi_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_andi_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_andi_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_bproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_b_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bcproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32)
    emit_e_bc_bo_crb_relproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32)
    emit_e_bclproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32)
    emit_e_bcl_bo_crb_relproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32)
    emit_e_bdnzproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdnz_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdnzlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdnzl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdzproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdz_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdzlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bdzl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_beqproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_beq_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_beqlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_beql_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bfproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bf_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bflproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bfl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgeproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bge_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgelproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgel_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgtproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgt_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgtlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bgtl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_blproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bleproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_ble_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_blelproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_blel_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bltproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_blt_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bltlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bltl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bneproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bne_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnelproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnel_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bngproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bng_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnglproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bngl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnllproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnll_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnsproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bns_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnslproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnsl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnuproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnu_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnulproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bnul_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bsoproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bso_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bsolproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bsol_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_btproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bt_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_btlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_btl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bunproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bun_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bunlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_bunl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_e_clrlslwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_clrlslwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_clrlwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_clrlwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_clrrwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_clrrwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_cmp16iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmp16i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmphproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_cmph16iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmph16i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmph_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_cmphlproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_cmphl16iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmphl16i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmphl_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_cmpiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpi_crf_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpl16iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpl16i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpliproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpli_crf_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmplwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmplwi_crf_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_cmpwi_crf_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_crandproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crand_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crandcproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crandc_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crclrproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crclr_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_creqvproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_creqv_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crmoveproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crmove_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crnandproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crnand_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crnorproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crnor_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crnotproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crnot_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crorproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_cror_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crorcproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crorc_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crsetproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crset_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crxorproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_crxor_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_extlwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_extlwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_extrwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_extrwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_inslwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_inslwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_insrwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_insrwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_laproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_la_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lbzproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lbz_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lbzuproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lbzu_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvcsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvcsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvdsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvdsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvgprwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvgprw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvsprwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvsprw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_ldmvsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lhaproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lha_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lhauproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lhau_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lhzproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lhz_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lhzuproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lhzu_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_liproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_li_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_lisproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_lis_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_lmvcsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvcsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvdsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvdsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvgprwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvgprw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvmcsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvmcsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvsprwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvsprw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmvsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lmw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lwzproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lwz_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_lwzuproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_lwzu_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_mcrfproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_mcrf_bo_crbproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64)
    emit_e_mull2iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_mull2i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_mulliproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_mulli_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_nopproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_nop_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_or2iproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_or2i_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_or2isproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_or2is_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_e_oriproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_ori_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_ori_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_ori_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_rlwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlw_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlw_dot_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlw_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwi_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwi_dot_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwimiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwimi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwinmproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rlwinm_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rotlwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rotlwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rotrwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_rotrwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_scproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_sc_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_slwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_slwi_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_slwi_dot_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_slwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_srwiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_srwi_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_srwi_dot_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_srwi_r_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register)
    emit_e_stbproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_stb_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_stbuproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stbu_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_sthproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_sth_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_sthuproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_sthu_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvcsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvcsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvdsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvdsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvgprwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvgprw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvmcsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvmcsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvsprwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvsprw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvsrrwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmvsrrw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stmw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stwproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_stw_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_e_stwuproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_stwu_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_e_sub16iproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_sub16i_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_sub2i_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_sub2i_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_sub2isproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_sub2is_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subficproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subfic_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subfic_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subfic_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subiproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subi_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subicproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subic_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subic_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_subic_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_xoriproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_xori_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_xori_dot_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_e_xori_r_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64)
    emit_se_addproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_add_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_addiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_addi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_andproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_and_dotproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_and_dot_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_and_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_andcproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_andc_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_andiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_andi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_b_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bcproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32)
    emit_se_bc_bo_crb_relproc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32)
    emit_se_bclriproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bclri_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bctrproc(instructions: ^[dynamic]Instruction)
    emit_se_bctr_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_bctrlproc(instructions: ^[dynamic]Instruction)
    emit_se_bctrl_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_beqproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_beq_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bfproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bf_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bgeproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bge_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bgeniproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bgeni_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bgtproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bgt_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_blproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bleproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_ble_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_blrproc(instructions: ^[dynamic]Instruction)
    emit_se_blr_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_blrlproc(instructions: ^[dynamic]Instruction)
    emit_se_blrl_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_bltproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_blt_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bmaskiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bmaski_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bneproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bne_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bngproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bng_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bnlproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bnl_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bnsproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bns_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bnuproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bnu_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bsetiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bseti_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bsoproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bso_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_btproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bt_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_btstiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_btsti_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_bunproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_bun_relproc(instructions: ^[dynamic]Instruction, target: u32)
    emit_se_cmpproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmp_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmphproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmph_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmphlproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmphl_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmpiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_cmpi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_cmplproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmpl_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_cmpliproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_cmpli_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_extsbproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extsb_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extshproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extsh_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extzbproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extzb_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extzhproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_extzh_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_illegalproc(instructions: ^[dynamic]Instruction)
    emit_se_illegal_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_isyncproc(instructions: ^[dynamic]Instruction)
    emit_se_isync_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_lbzproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_lbz_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_lhzproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_lhz_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_liproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_li_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_lwzproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_lwz_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_mfarproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mfar_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mfctrproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mfctr_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mflrproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mflr_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mrproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mr_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mtarproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mtar_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mtctrproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mtctr_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mtlrproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mtlr_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_mullwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_mullw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_negproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_neg_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_nopproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_nop_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_notproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_not_rproc(instructions: ^[dynamic]Instruction, rd: Register)
    emit_se_orproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_or_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_rfciproc(instructions: ^[dynamic]Instruction)
    emit_se_rfci_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_rfdiproc(instructions: ^[dynamic]Instruction)
    emit_se_rfdi_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_rfgiproc(instructions: ^[dynamic]Instruction)
    emit_se_rfgi_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_rfiproc(instructions: ^[dynamic]Instruction)
    emit_se_rfi_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_rfmciproc(instructions: ^[dynamic]Instruction)
    emit_se_rfmci_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_scproc(instructions: ^[dynamic]Instruction)
    emit_se_sc_noneproc(instructions: ^[dynamic]Instruction)
    emit_se_slwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_slw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_slwiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_slwi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_srawproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_sraw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_srawiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_srawi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_srwproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_srw_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_srwiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_srwi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_stbproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_stb_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_sthproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_sth_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_stwproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_stw_r_memproc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory)
    emit_se_subproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_sub_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_subfproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_subf_r_rproc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register)
    emit_se_subiproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_subi_dotproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_subi_dot_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    emit_se_subi_r_immproc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64)
    encodeproc(instructions: []Instruction, label_defs: []rexcode_isa.Label_Definition, code: []u8, relocs: ^[dynamic]Relocation, errors: ^[dynamic]rexcode_isa.Error, resolve: bool = true, base_address: u64 = 0) -> (byte_count: u32, ok: bool)
    encode_max_code_size(instructions: []Instruction) -> int
    encode_max_relocation_count(instructions: []Instruction) -> int
    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.

    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)
    inst_branch(m: Mnemonic, label_id: u32) -> Instruction
    inst_e_add16i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_add16i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_add2i_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_add2i_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_add2is(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_add2is_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addi(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addi_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addi_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addi_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addic(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addic_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addic_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_addic_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_and2i_dot(rd: Register, imm: i64) -> Instruction
    inst_e_and2i_dot_r_imm(rd: Register, imm: i64) -> Instruction
    inst_e_and2is_dot(rd: Register, imm: i64) -> Instruction
    inst_e_and2is_dot_r_imm(rd: Register, imm: i64) -> Instruction
    inst_e_andi(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_andi_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_andi_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_andi_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_b(target: u32) -> Instruction
    inst_e_b_rel(target: u32) -> Instruction
    inst_e_bc(imm: i64, imm2: i64, target: u32) -> Instruction
    inst_e_bc_bo_crb_rel(imm: i64, imm2: i64, target: u32) -> Instruction
    inst_e_bcl(imm: i64, imm2: i64, target: u32) -> Instruction
    inst_e_bcl_bo_crb_rel(imm: i64, imm2: i64, target: u32) -> Instruction
    inst_e_bdnz(target: u32) -> Instruction
    inst_e_bdnz_rel(target: u32) -> Instruction
    inst_e_bdnzl(target: u32) -> Instruction
    inst_e_bdnzl_rel(target: u32) -> Instruction
    inst_e_bdz(target: u32) -> Instruction
    inst_e_bdz_rel(target: u32) -> Instruction
    inst_e_bdzl(target: u32) -> Instruction
    inst_e_bdzl_rel(target: u32) -> Instruction
    inst_e_beq(target: u32) -> Instruction
    inst_e_beq_rel(target: u32) -> Instruction
    inst_e_beql(target: u32) -> Instruction
    inst_e_beql_rel(target: u32) -> Instruction
    inst_e_bf(target: u32) -> Instruction
    inst_e_bf_rel(target: u32) -> Instruction
    inst_e_bfl(target: u32) -> Instruction
    inst_e_bfl_rel(target: u32) -> Instruction
    inst_e_bge(target: u32) -> Instruction
    inst_e_bge_rel(target: u32) -> Instruction
    inst_e_bgel(target: u32) -> Instruction
    inst_e_bgel_rel(target: u32) -> Instruction
    inst_e_bgt(target: u32) -> Instruction
    inst_e_bgt_rel(target: u32) -> Instruction
    inst_e_bgtl(target: u32) -> Instruction
    inst_e_bgtl_rel(target: u32) -> Instruction
    inst_e_bl(target: u32) -> Instruction
    inst_e_bl_rel(target: u32) -> Instruction
    inst_e_ble(target: u32) -> Instruction
    inst_e_ble_rel(target: u32) -> Instruction
    inst_e_blel(target: u32) -> Instruction
    inst_e_blel_rel(target: u32) -> Instruction
    inst_e_blt(target: u32) -> Instruction
    inst_e_blt_rel(target: u32) -> Instruction
    inst_e_bltl(target: u32) -> Instruction
    inst_e_bltl_rel(target: u32) -> Instruction
    inst_e_bne(target: u32) -> Instruction
    inst_e_bne_rel(target: u32) -> Instruction
    inst_e_bnel(target: u32) -> Instruction
    inst_e_bnel_rel(target: u32) -> Instruction
    inst_e_bng(target: u32) -> Instruction
    inst_e_bng_rel(target: u32) -> Instruction
    inst_e_bngl(target: u32) -> Instruction
    inst_e_bngl_rel(target: u32) -> Instruction
    inst_e_bnl(target: u32) -> Instruction
    inst_e_bnl_rel(target: u32) -> Instruction
    inst_e_bnll(target: u32) -> Instruction
    inst_e_bnll_rel(target: u32) -> Instruction
    inst_e_bns(target: u32) -> Instruction
    inst_e_bns_rel(target: u32) -> Instruction
    inst_e_bnsl(target: u32) -> Instruction
    inst_e_bnsl_rel(target: u32) -> Instruction
    inst_e_bnu(target: u32) -> Instruction
    inst_e_bnu_rel(target: u32) -> Instruction
    inst_e_bnul(target: u32) -> Instruction
    inst_e_bnul_rel(target: u32) -> Instruction
    inst_e_bso(target: u32) -> Instruction
    inst_e_bso_rel(target: u32) -> Instruction
    inst_e_bsol(target: u32) -> Instruction
    inst_e_bsol_rel(target: u32) -> Instruction
    inst_e_bt(target: u32) -> Instruction
    inst_e_bt_rel(target: u32) -> Instruction
    inst_e_btl(target: u32) -> Instruction
    inst_e_btl_rel(target: u32) -> Instruction
    inst_e_bun(target: u32) -> Instruction
    inst_e_bun_rel(target: u32) -> Instruction
    inst_e_bunl(target: u32) -> Instruction
    inst_e_bunl_rel(target: u32) -> Instruction
    inst_e_clrlslwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_clrlslwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_clrlwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_clrlwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_clrrwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_clrrwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_cmp16i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmp16i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmph(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_cmph16i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmph16i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmph_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_cmphl(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_cmphl16i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmphl16i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmphl_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_cmpi(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpi_crf_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpl16i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpl16i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpli(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpli_crf_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmplwi(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmplwi_crf_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpwi(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_cmpwi_crf_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_crand(imm: i64, imm2: i64) -> Instruction
    inst_e_crand_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crandc(imm: i64, imm2: i64) -> Instruction
    inst_e_crandc_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crclr(imm: i64, imm2: i64) -> Instruction
    inst_e_crclr_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_creqv(imm: i64, imm2: i64) -> Instruction
    inst_e_creqv_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crmove(imm: i64, imm2: i64) -> Instruction
    inst_e_crmove_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crnand(imm: i64, imm2: i64) -> Instruction
    inst_e_crnand_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crnor(imm: i64, imm2: i64) -> Instruction
    inst_e_crnor_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crnot(imm: i64, imm2: i64) -> Instruction
    inst_e_crnot_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_cror(imm: i64, imm2: i64) -> Instruction
    inst_e_cror_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crorc(imm: i64, imm2: i64) -> Instruction
    inst_e_crorc_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crset(imm: i64, imm2: i64) -> Instruction
    inst_e_crset_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_crxor(imm: i64, imm2: i64) -> Instruction
    inst_e_crxor_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_extlwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_extlwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_extrwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_extrwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_inslwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_inslwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_insrwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_insrwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_la(rd: Register, mem: Memory) -> Instruction
    inst_e_la_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_lbz(rd: Register, mem: Memory) -> Instruction
    inst_e_lbz_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_lbzu(rd: Register, r2: Register) -> Instruction
    inst_e_lbzu_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvcsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvcsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvdsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvdsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvgprw(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvgprw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvsprw(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvsprw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_ldmvsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lha(rd: Register, mem: Memory) -> Instruction
    inst_e_lha_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_lhau(rd: Register, r2: Register) -> Instruction
    inst_e_lhau_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lhz(rd: Register, mem: Memory) -> Instruction
    inst_e_lhz_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_lhzu(rd: Register, r2: Register) -> Instruction
    inst_e_lhzu_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_li(rd: Register, imm: i64) -> Instruction
    inst_e_li_r_imm(rd: Register, imm: i64) -> Instruction
    inst_e_lis(rd: Register, imm: i64) -> Instruction
    inst_e_lis_r_imm(rd: Register, imm: i64) -> Instruction
    inst_e_lmvcsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_lmvcsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lmvdsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_lmvdsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lmvgprw(rd: Register, r2: Register) -> Instruction
    inst_e_lmvgprw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lmvmcsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_lmvmcsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lmvsprw(rd: Register, r2: Register) -> Instruction
    inst_e_lmvsprw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lmvsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_lmvsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lmw(rd: Register, r2: Register) -> Instruction
    inst_e_lmw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_lwz(rd: Register, mem: Memory) -> Instruction
    inst_e_lwz_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_lwzu(rd: Register, r2: Register) -> Instruction
    inst_e_lwzu_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_mcrf(imm: i64, imm2: i64) -> Instruction
    inst_e_mcrf_bo_crb(imm: i64, imm2: i64) -> Instruction
    inst_e_mull2i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_mull2i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_mulli(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_mulli_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_nop(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_nop_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_or2i(rd: Register, imm: i64) -> Instruction
    inst_e_or2i_r_imm(rd: Register, imm: i64) -> Instruction
    inst_e_or2is(rd: Register, imm: i64) -> Instruction
    inst_e_or2is_r_imm(rd: Register, imm: i64) -> Instruction
    inst_e_ori(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_ori_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_ori_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_ori_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_rlw(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlw_dot(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlw_dot_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlw_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwi_dot(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwi_dot_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwimi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwimi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwinm(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rlwinm_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rotlwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rotlwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rotrwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_rotrwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_sc(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_sc_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_slwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_slwi_dot(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_slwi_dot_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_slwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_srwi(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_srwi_dot(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_srwi_dot_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_srwi_r_r_r(rd: Register, r2: Register, r3: Register) -> Instruction
    inst_e_stb(rd: Register, mem: Memory) -> Instruction
    inst_e_stb_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_stbu(rd: Register, r2: Register) -> Instruction
    inst_e_stbu_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_sth(rd: Register, mem: Memory) -> Instruction
    inst_e_sth_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_sthu(rd: Register, r2: Register) -> Instruction
    inst_e_sthu_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmvcsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_stmvcsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmvdsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_stmvdsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmvgprw(rd: Register, r2: Register) -> Instruction
    inst_e_stmvgprw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmvmcsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_stmvmcsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmvsprw(rd: Register, r2: Register) -> Instruction
    inst_e_stmvsprw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmvsrrw(rd: Register, r2: Register) -> Instruction
    inst_e_stmvsrrw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stmw(rd: Register, r2: Register) -> Instruction
    inst_e_stmw_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_stw(rd: Register, mem: Memory) -> Instruction
    inst_e_stw_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_e_stwu(rd: Register, r2: Register) -> Instruction
    inst_e_stwu_r_r(rd: Register, r2: Register) -> Instruction
    inst_e_sub16i(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_sub16i_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_sub2i_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_sub2i_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_sub2is(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_sub2is_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subfic(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subfic_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subfic_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subfic_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subi(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subi_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subic(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subic_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subic_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_subic_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_xori(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_xori_dot(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_xori_dot_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_e_xori_r_r_imm(rd: Register, r2: Register, imm: i64) -> Instruction
    inst_i(m: Mnemonic, v: i64) -> Instruction
    inst_load(m: Mnemonic, rt: Register, mm: Memory) -> Instruction
    inst_none(m: Mnemonic) -> Instruction
    inst_r(m: Mnemonic, r: Register) -> Instruction
    inst_r_r(m: Mnemonic, rd, ra: Register) -> Instruction
    inst_r_r_i(m: Mnemonic, rd, ra: Register, v: i64) -> Instruction
    inst_r_r_r(m: Mnemonic, rd, ra, rb: Register) -> Instruction
    inst_se_add(rd: Register, r2: Register) -> Instruction
    inst_se_add_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_addi(rd: Register, imm: i64) -> Instruction
    inst_se_addi_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_and(rd: Register, r2: Register) -> Instruction
    inst_se_and_dot(rd: Register, r2: Register) -> Instruction
    inst_se_and_dot_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_and_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_andc(rd: Register, r2: Register) -> Instruction
    inst_se_andc_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_andi(rd: Register, imm: i64) -> Instruction
    inst_se_andi_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_b(target: u32) -> Instruction
    inst_se_b_rel(target: u32) -> Instruction
    inst_se_bc(imm: i64, imm2: i64, target: u32) -> Instruction
    inst_se_bc_bo_crb_rel(imm: i64, imm2: i64, target: u32) -> Instruction
    inst_se_bclri(rd: Register, imm: i64) -> Instruction
    inst_se_bclri_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_bctr() -> Instruction
    inst_se_bctr_none() -> Instruction
    inst_se_bctrl() -> Instruction
    inst_se_bctrl_none() -> Instruction
    inst_se_beq(target: u32) -> Instruction
    inst_se_beq_rel(target: u32) -> Instruction
    inst_se_bf(target: u32) -> Instruction
    inst_se_bf_rel(target: u32) -> Instruction
    inst_se_bge(target: u32) -> Instruction
    inst_se_bge_rel(target: u32) -> Instruction
    inst_se_bgeni(rd: Register, imm: i64) -> Instruction
    inst_se_bgeni_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_bgt(target: u32) -> Instruction
    inst_se_bgt_rel(target: u32) -> Instruction
    inst_se_bl(target: u32) -> Instruction
    inst_se_bl_rel(target: u32) -> Instruction
    inst_se_ble(target: u32) -> Instruction
    inst_se_ble_rel(target: u32) -> Instruction
    inst_se_blr() -> Instruction
    inst_se_blr_none() -> Instruction
    inst_se_blrl() -> Instruction
    inst_se_blrl_none() -> Instruction
    inst_se_blt(target: u32) -> Instruction
    inst_se_blt_rel(target: u32) -> Instruction
    inst_se_bmaski(rd: Register, imm: i64) -> Instruction
    inst_se_bmaski_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_bne(target: u32) -> Instruction
    inst_se_bne_rel(target: u32) -> Instruction
    inst_se_bng(target: u32) -> Instruction
    inst_se_bng_rel(target: u32) -> Instruction
    inst_se_bnl(target: u32) -> Instruction
    inst_se_bnl_rel(target: u32) -> Instruction
    inst_se_bns(target: u32) -> Instruction
    inst_se_bns_rel(target: u32) -> Instruction
    inst_se_bnu(target: u32) -> Instruction
    inst_se_bnu_rel(target: u32) -> Instruction
    inst_se_bseti(rd: Register, imm: i64) -> Instruction
    inst_se_bseti_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_bso(target: u32) -> Instruction
    inst_se_bso_rel(target: u32) -> Instruction
    inst_se_bt(target: u32) -> Instruction
    inst_se_bt_rel(target: u32) -> Instruction
    inst_se_btsti(rd: Register, imm: i64) -> Instruction
    inst_se_btsti_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_bun(target: u32) -> Instruction
    inst_se_bun_rel(target: u32) -> Instruction
    inst_se_cmp(rd: Register, r2: Register) -> Instruction
    inst_se_cmp_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_cmph(rd: Register, r2: Register) -> Instruction
    inst_se_cmph_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_cmphl(rd: Register, r2: Register) -> Instruction
    inst_se_cmphl_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_cmpi(rd: Register, imm: i64) -> Instruction
    inst_se_cmpi_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_cmpl(rd: Register, r2: Register) -> Instruction
    inst_se_cmpl_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_cmpli(rd: Register, imm: i64) -> Instruction
    inst_se_cmpli_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_extsb(rd: Register) -> Instruction
    inst_se_extsb_r(rd: Register) -> Instruction
    inst_se_extsh(rd: Register) -> Instruction
    inst_se_extsh_r(rd: Register) -> Instruction
    inst_se_extzb(rd: Register) -> Instruction
    inst_se_extzb_r(rd: Register) -> Instruction
    inst_se_extzh(rd: Register) -> Instruction
    inst_se_extzh_r(rd: Register) -> Instruction
    inst_se_illegal() -> Instruction
    inst_se_illegal_none() -> Instruction
    inst_se_isync() -> Instruction
    inst_se_isync_none() -> Instruction
    inst_se_lbz(rd: Register, mem: Memory) -> Instruction
    inst_se_lbz_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_se_lhz(rd: Register, mem: Memory) -> Instruction
    inst_se_lhz_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_se_li(rd: Register, imm: i64) -> Instruction
    inst_se_li_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_lwz(rd: Register, mem: Memory) -> Instruction
    inst_se_lwz_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_se_mfar(rd: Register, r2: Register) -> Instruction
    inst_se_mfar_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_mfctr(rd: Register) -> Instruction
    inst_se_mfctr_r(rd: Register) -> Instruction
    inst_se_mflr(rd: Register) -> Instruction
    inst_se_mflr_r(rd: Register) -> Instruction
    inst_se_mr(rd: Register, r2: Register) -> Instruction
    inst_se_mr_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_mtar(rd: Register, r2: Register) -> Instruction
    inst_se_mtar_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_mtctr(rd: Register) -> Instruction
    inst_se_mtctr_r(rd: Register) -> Instruction
    inst_se_mtlr(rd: Register) -> Instruction
    inst_se_mtlr_r(rd: Register) -> Instruction
    inst_se_mullw(rd: Register, r2: Register) -> Instruction
    inst_se_mullw_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_neg(rd: Register) -> Instruction
    inst_se_neg_r(rd: Register) -> Instruction
    inst_se_nop(rd: Register, r2: Register) -> Instruction
    inst_se_nop_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_not(rd: Register) -> Instruction
    inst_se_not_r(rd: Register) -> Instruction
    inst_se_or(rd: Register, r2: Register) -> Instruction
    inst_se_or_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_rfci() -> Instruction
    inst_se_rfci_none() -> Instruction
    inst_se_rfdi() -> Instruction
    inst_se_rfdi_none() -> Instruction
    inst_se_rfgi() -> Instruction
    inst_se_rfgi_none() -> Instruction
    inst_se_rfi() -> Instruction
    inst_se_rfi_none() -> Instruction
    inst_se_rfmci() -> Instruction
    inst_se_rfmci_none() -> Instruction
    inst_se_sc() -> Instruction
    inst_se_sc_none() -> Instruction
    inst_se_slw(rd: Register, r2: Register) -> Instruction
    inst_se_slw_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_slwi(rd: Register, imm: i64) -> Instruction
    inst_se_slwi_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_sraw(rd: Register, r2: Register) -> Instruction
    inst_se_sraw_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_srawi(rd: Register, imm: i64) -> Instruction
    inst_se_srawi_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_srw(rd: Register, r2: Register) -> Instruction
    inst_se_srw_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_srwi(rd: Register, imm: i64) -> Instruction
    inst_se_srwi_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_stb(rd: Register, mem: Memory) -> Instruction
    inst_se_stb_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_se_sth(rd: Register, mem: Memory) -> Instruction
    inst_se_sth_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_se_stw(rd: Register, mem: Memory) -> Instruction
    inst_se_stw_r_mem(rd: Register, mem: Memory) -> Instruction
    inst_se_sub(rd: Register, r2: Register) -> Instruction
    inst_se_sub_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_subf(rd: Register, r2: Register) -> Instruction
    inst_se_subf_r_r(rd: Register, r2: Register) -> Instruction
    inst_se_subi(rd: Register, imm: i64) -> Instruction
    inst_se_subi_dot(rd: Register, imm: i64) -> Instruction
    inst_se_subi_dot_r_imm(rd: Register, imm: i64) -> Instruction
    inst_se_subi_r_imm(rd: Register, imm: i64) -> Instruction
    mem_d(base: Register, disp: i64) -> Memory
    mem_x(base, index: Register) -> Memory
    mnemonic_to_stringproc(m: Mnemonic, lowercase: bool = true, allocator := context.temp_allocator) -> string
    op_imm(v: i64) -> Operand
    op_label(label_id: u32) -> Operand
    op_mem(m: Memory) -> Operand
    op_reg(r: Register) -> Operand
    op_rel_offset(off: i64) -> Operand
    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)
    reg_class(r: Register) -> u16
    reg_hw(r: Register) -> u16
    reg_is_cr(r: Register) -> bool
    reg_is_gpr(r: Register) -> bool
    reg_is_spr(r: Register) -> bool
    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)
    spr_reg(n: u16) -> Register
    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
    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_operandproc(sb: ^strings.Builder, op: ^Operand, inst_offset: u32, display: ^rexcode_isa.Label_Display, opts: ^rexcode_isa.Print_Options)
    write_registerproc(sb: ^strings.Builder, r: Register, uppercase: bool)

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

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