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

    Index

    Procedures (935)
    Procedure Groups (0)

    This section is empty.

    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,
    }

    Error ¶

    Error :: rexcode_isa.Error

    Error_Code ¶

    Error_Code :: rexcode_isa.Error_Code

    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,
    }
    Related Procedures With Returns

    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,
    }

    Label_Definition ¶

    Label_Definition :: rexcode_isa.Label_Definition
    Related Constants

    Label_Map ¶

    Label_Map :: rexcode_isa.Label_Map

    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 Parameters
    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)
    }
    Print_Result :: rexcode_isa.Print_Result

    Register ¶

    Register :: distinct u16
    Related Procedures With Parameters
    Related Procedures With Returns
    Related Constants

    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)
    }
    Related Procedures With Parameters

    Token ¶

    Token :: rexcode_isa.Token

    Token_Kind ¶

    Token_Kind :: rexcode_isa.Token_Kind

    Constants

    CR0 ¶

    CR0 :: Register(REG_CR | 0)

    CR1 ¶

    CR1 :: Register(REG_CR | 1)

    CR2 ¶

    CR2 :: Register(REG_CR | 2)

    CR3 ¶

    CR3 :: Register(REG_CR | 3)

    CSRR0 ¶

    CSRR0 :: Register(REG_SPR | 58)

    CSRR1 ¶

    CSRR1 :: Register(REG_SPR | 59)

    CTR ¶

    CTR :: Register(REG_SPR | 9)

    DAC1 ¶

    DAC1 :: Register(REG_SPR | 316)

    DAC2 ¶

    DAC2 :: Register(REG_SPR | 317)

    DBCR0 ¶

    DBCR0 :: Register(REG_SPR | 308)

    DBCR1 ¶

    DBCR1 :: Register(REG_SPR | 309)

    DBCR2 ¶

    DBCR2 :: Register(REG_SPR | 310)

    DBSR ¶

    DBSR :: Register(REG_SPR | 304)
     

    Debug

    DEAR ¶

    DEAR :: Register(REG_SPR | 61)

    DEC ¶

    DEC :: Register(REG_SPR | 22)

    DEFAULT_PRINT_OPTIONS ¶

    DEFAULT_PRINT_OPTIONS: rexcode_isa.Print_Options : isa.DEFAULT_PRINT_OPTIONS

    ESR ¶

    ESR :: Register(REG_SPR | 62)

    IAC1 ¶

    IAC1 :: Register(REG_SPR | 312)

    IAC2 ¶

    IAC2 :: Register(REG_SPR | 313)

    IAC3 ¶

    IAC3 :: Register(REG_SPR | 314)

    IAC4 ¶

    IAC4 :: Register(REG_SPR | 315)

    IVPR ¶

    IVPR :: Register(REG_SPR | 63)

    LABEL_UNDEFINED ¶

    LABEL_UNDEFINED: rexcode_isa.Label_Definition : isa.LABEL_UNDEFINED

    LR ¶

    LR :: Register(REG_SPR | 8)

    MAX_INST_SIZE ¶

    MAX_INST_SIZE :: 4

    NONE ¶

    NONE :: Register(0xFFFF)

    PID ¶

    PID :: Register(REG_SPR | 48)

    PIR ¶

    PIR :: Register(REG_SPR | 286)

    PVR ¶

    PVR :: Register(REG_SPR | 287)

    R0 ¶

    R0 :: Register(REG_GPR | 0)

    R1 ¶

    R1 :: Register(REG_GPR | 1)

    R10 ¶

    R10 :: Register(REG_GPR | 10)

    R11 ¶

    R11 :: Register(REG_GPR | 11)

    R12 ¶

    R12 :: Register(REG_GPR | 12)

    R13 ¶

    R13 :: Register(REG_GPR | 13)

    R14 ¶

    R14 :: Register(REG_GPR | 14)

    R15 ¶

    R15 :: Register(REG_GPR | 15)

    R16 ¶

    R16 :: Register(REG_GPR | 16)

    R17 ¶

    R17 :: Register(REG_GPR | 17)

    R18 ¶

    R18 :: Register(REG_GPR | 18)

    R19 ¶

    R19 :: Register(REG_GPR | 19)

    R2 ¶

    R2 :: Register(REG_GPR | 2)

    R20 ¶

    R20 :: Register(REG_GPR | 20)

    R21 ¶

    R21 :: Register(REG_GPR | 21)

    R22 ¶

    R22 :: Register(REG_GPR | 22)

    R23 ¶

    R23 :: Register(REG_GPR | 23)

    R24 ¶

    R24 :: Register(REG_GPR | 24)

    R25 ¶

    R25 :: Register(REG_GPR | 25)

    R26 ¶

    R26 :: Register(REG_GPR | 26)

    R27 ¶

    R27 :: Register(REG_GPR | 27)

    R28 ¶

    R28 :: Register(REG_GPR | 28)

    R29 ¶

    R29 :: Register(REG_GPR | 29)

    R3 ¶

    R3 :: Register(REG_GPR | 3)

    R30 ¶

    R30 :: Register(REG_GPR | 30)

    R31 ¶

    R31 :: Register(REG_GPR | 31)

    R4 ¶

    R4 :: Register(REG_GPR | 4)

    R5 ¶

    R5 :: Register(REG_GPR | 5)

    R6 ¶

    R6 :: Register(REG_GPR | 6)

    R7 ¶

    R7 :: Register(REG_GPR | 7)

    R8 ¶

    R8 :: Register(REG_GPR | 8)

    R9 ¶

    R9 :: Register(REG_GPR | 9)

    REG_CR ¶

    REG_CR :: 0x5000

    REG_GPR ¶

    REG_GPR :: 0x1000

    REG_NONE ¶

    REG_NONE :: 0x0000
     

    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 ¶

    REG_SPR :: 0x6000

    SPEFSCR ¶

    SPEFSCR :: Register(REG_SPR | 512)
     

    SPE FP control

    SPRG0 ¶

    SPRG0 :: Register(REG_SPR | 272)
     

    SPRGs 0..7

    SPRG1 ¶

    SPRG1 :: Register(REG_SPR | 273)

    SPRG2 ¶

    SPRG2 :: Register(REG_SPR | 274)

    SPRG3 ¶

    SPRG3 :: Register(REG_SPR | 275)

    SPRG4 ¶

    SPRG4 :: Register(REG_SPR | 276)

    SPRG5 ¶

    SPRG5 :: Register(REG_SPR | 277)

    SPRG6 ¶

    SPRG6 :: Register(REG_SPR | 278)

    SPRG7 ¶

    SPRG7 :: Register(REG_SPR | 279)

    SRR0 ¶

    SRR0 :: Register(REG_SPR | 26)

    SRR1 ¶

    SRR1 :: Register(REG_SPR | 27)

    TBL ¶

    TBL :: Register(REG_SPR | 284)

    TBU ¶

    TBU :: Register(REG_SPR | 285)

    XER ¶

    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

    aprint ¶

    aprint :: proc(
    	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[u32]string = nil, 
    	allocator := context.allocator, 
    ) -> string {…}

    aprintln ¶

    aprintln :: proc(
    	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[u32]string = nil, 
    	allocator := context.allocator, 
    ) -> string {…}

    bprint ¶

    bprint :: proc(
    	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[u32]string = nil, 
    ) -> string {…}

    bprintln ¶

    bprintln :: proc(
    	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[u32]string = nil, 
    ) -> string {…}

    decode ¶

    decode :: proc(
    	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 ¶

    decode_estimate_instruction_count :: proc "contextless" (data: []u8) -> int {…}
     

    Typical-case estimate of the instruction count for data.

    decode_max_instruction_count ¶

    decode_max_instruction_count :: proc "contextless" (data: []u8) -> int {…}
     

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

    decode_reserve ¶

    decode_reserve :: proc(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).

    elf_reloc_number ¶

    elf_reloc_number :: proc(t: Relocation_Type) -> u32 {…}
     

    Mapping table — each VLE reloc's official ELF number.

    emit_e_add16i_r_r_imm ¶

    emit_e_add16i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_add2i_dot_r_r_imm ¶

    emit_e_add2i_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_add2is_r_r_imm ¶

    emit_e_add2is_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_addi_dot_r_r_imm ¶

    emit_e_addi_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_addi_r_r_imm ¶

    emit_e_addi_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_addic_dot_r_r_imm ¶

    emit_e_addic_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_addic_r_r_imm ¶

    emit_e_addic_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_and2i_dot_r_imm ¶

    emit_e_and2i_dot_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_e_and2is_dot_r_imm ¶

    emit_e_and2is_dot_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_e_andi_dot_r_r_imm ¶

    emit_e_andi_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_andi_r_r_imm ¶

    emit_e_andi_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_b_rel ¶

    emit_e_b_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bc_bo_crb_rel ¶

    emit_e_bc_bo_crb_rel :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32) {…}

    emit_e_bcl_bo_crb_rel ¶

    emit_e_bcl_bo_crb_rel :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32) {…}

    emit_e_bdnz_rel ¶

    emit_e_bdnz_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bdnzl_rel ¶

    emit_e_bdnzl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bdz_rel ¶

    emit_e_bdz_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bdzl_rel ¶

    emit_e_bdzl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_beq_rel ¶

    emit_e_beq_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_beql_rel ¶

    emit_e_beql_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bf_rel ¶

    emit_e_bf_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bfl_rel ¶

    emit_e_bfl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bge_rel ¶

    emit_e_bge_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bgel_rel ¶

    emit_e_bgel_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bgt_rel ¶

    emit_e_bgt_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bgtl_rel ¶

    emit_e_bgtl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bl_rel ¶

    emit_e_bl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_ble_rel ¶

    emit_e_ble_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_blel_rel ¶

    emit_e_blel_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_blt_rel ¶

    emit_e_blt_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bltl_rel ¶

    emit_e_bltl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bne_rel ¶

    emit_e_bne_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bnel_rel ¶

    emit_e_bnel_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bng_rel ¶

    emit_e_bng_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bngl_rel ¶

    emit_e_bngl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bnl_rel ¶

    emit_e_bnl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bnll_rel ¶

    emit_e_bnll_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bns_rel ¶

    emit_e_bns_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bnsl_rel ¶

    emit_e_bnsl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bnu_rel ¶

    emit_e_bnu_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bnul_rel ¶

    emit_e_bnul_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bso_rel ¶

    emit_e_bso_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bsol_rel ¶

    emit_e_bsol_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bt_rel ¶

    emit_e_bt_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_btl_rel ¶

    emit_e_btl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bun_rel ¶

    emit_e_bun_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_bunl_rel ¶

    emit_e_bunl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_e_clrlslwi_r_r_r ¶

    emit_e_clrlslwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_clrlwi_r_r_r ¶

    emit_e_clrlwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_clrrwi_r_r_r ¶

    emit_e_clrrwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_cmp16i_r_r_imm ¶

    emit_e_cmp16i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmph16i_r_r_imm ¶

    emit_e_cmph16i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmph_r_r_r ¶

    emit_e_cmph_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_cmphl16i_r_r_imm ¶

    emit_e_cmphl16i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmphl_r_r_r ¶

    emit_e_cmphl_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_cmpi_crf_r_imm ¶

    emit_e_cmpi_crf_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmpl16i_r_r_imm ¶

    emit_e_cmpl16i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmpli_crf_r_imm ¶

    emit_e_cmpli_crf_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmplwi_crf_r_imm ¶

    emit_e_cmplwi_crf_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_cmpwi_crf_r_imm ¶

    emit_e_cmpwi_crf_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_crand_bo_crb ¶

    emit_e_crand_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crandc_bo_crb ¶

    emit_e_crandc_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crclr_bo_crb ¶

    emit_e_crclr_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_creqv_bo_crb ¶

    emit_e_creqv_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crmove_bo_crb ¶

    emit_e_crmove_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crnand_bo_crb ¶

    emit_e_crnand_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crnor_bo_crb ¶

    emit_e_crnor_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crnot_bo_crb ¶

    emit_e_crnot_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_cror_bo_crb ¶

    emit_e_cror_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crorc_bo_crb ¶

    emit_e_crorc_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crset_bo_crb ¶

    emit_e_crset_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_crxor_bo_crb ¶

    emit_e_crxor_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_extlwi_r_r_r ¶

    emit_e_extlwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_extrwi_r_r_r ¶

    emit_e_extrwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_inslwi_r_r_r ¶

    emit_e_inslwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_insrwi_r_r_r ¶

    emit_e_insrwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_la_r_mem ¶

    emit_e_la_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_lbz_r_mem ¶

    emit_e_lbz_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_lbzu_r_r ¶

    emit_e_lbzu_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_ldmvcsrrw_r_r ¶

    emit_e_ldmvcsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_ldmvdsrrw_r_r ¶

    emit_e_ldmvdsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_ldmvgprw_r_r ¶

    emit_e_ldmvgprw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_ldmvsprw_r_r ¶

    emit_e_ldmvsprw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_ldmvsrrw_r_r ¶

    emit_e_ldmvsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lha_r_mem ¶

    emit_e_lha_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_lhau_r_r ¶

    emit_e_lhau_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lhz_r_mem ¶

    emit_e_lhz_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_lhzu_r_r ¶

    emit_e_lhzu_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_li_r_imm ¶

    emit_e_li_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_e_lis_r_imm ¶

    emit_e_lis_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_e_lmvcsrrw_r_r ¶

    emit_e_lmvcsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lmvdsrrw_r_r ¶

    emit_e_lmvdsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lmvgprw_r_r ¶

    emit_e_lmvgprw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lmvmcsrrw_r_r ¶

    emit_e_lmvmcsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lmvsprw_r_r ¶

    emit_e_lmvsprw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lmvsrrw_r_r ¶

    emit_e_lmvsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lmw_r_r ¶

    emit_e_lmw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_lwz_r_mem ¶

    emit_e_lwz_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_lwzu_r_r ¶

    emit_e_lwzu_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_mcrf_bo_crb ¶

    emit_e_mcrf_bo_crb :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) {…}

    emit_e_mull2i_r_r_imm ¶

    emit_e_mull2i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_mulli_r_r_imm ¶

    emit_e_mulli_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_nop_r_r_imm ¶

    emit_e_nop_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_or2i_r_imm ¶

    emit_e_or2i_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_e_or2is_r_imm ¶

    emit_e_or2is_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_e_ori_dot_r_r_imm ¶

    emit_e_ori_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_ori_r_r_imm ¶

    emit_e_ori_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_rlw_dot_r_r_r ¶

    emit_e_rlw_dot_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rlw_r_r_r ¶

    emit_e_rlw_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rlwi_dot_r_r_r ¶

    emit_e_rlwi_dot_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rlwi_r_r_r ¶

    emit_e_rlwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rlwimi_r_r_r ¶

    emit_e_rlwimi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rlwinm_r_r_r ¶

    emit_e_rlwinm_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rotlwi_r_r_r ¶

    emit_e_rotlwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_rotrwi_r_r_r ¶

    emit_e_rotrwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_sc_r_r_r ¶

    emit_e_sc_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_slwi_dot_r_r_r ¶

    emit_e_slwi_dot_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_slwi_r_r_r ¶

    emit_e_slwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_srwi_dot_r_r_r ¶

    emit_e_srwi_dot_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_srwi_r_r_r ¶

    emit_e_srwi_r_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, r3: Register) {…}

    emit_e_stb_r_mem ¶

    emit_e_stb_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_stbu_r_r ¶

    emit_e_stbu_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_sth_r_mem ¶

    emit_e_sth_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_sthu_r_r ¶

    emit_e_sthu_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmvcsrrw_r_r ¶

    emit_e_stmvcsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmvdsrrw_r_r ¶

    emit_e_stmvdsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmvgprw_r_r ¶

    emit_e_stmvgprw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmvmcsrrw_r_r ¶

    emit_e_stmvmcsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmvsprw_r_r ¶

    emit_e_stmvsprw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmvsrrw_r_r ¶

    emit_e_stmvsrrw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stmw_r_r ¶

    emit_e_stmw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_stw_r_mem ¶

    emit_e_stw_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_e_stwu_r_r ¶

    emit_e_stwu_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_e_sub16i_r_r_imm ¶

    emit_e_sub16i_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_sub2i_dot_r_r_imm ¶

    emit_e_sub2i_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_sub2is_r_r_imm ¶

    emit_e_sub2is_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_subfic_dot_r_r_imm ¶

    emit_e_subfic_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_subfic_r_r_imm ¶

    emit_e_subfic_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_subi_r_r_imm ¶

    emit_e_subi_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_subic_dot_r_r_imm ¶

    emit_e_subic_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_subic_r_r_imm ¶

    emit_e_subic_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_xori_dot_r_r_imm ¶

    emit_e_xori_dot_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_e_xori_r_r_imm ¶

    emit_e_xori_r_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register, imm: i64) {…}

    emit_se_add_r_r ¶

    emit_se_add_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_addi_r_imm ¶

    emit_se_addi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_and_dot_r_r ¶

    emit_se_and_dot_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_and_r_r ¶

    emit_se_and_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_andc_r_r ¶

    emit_se_andc_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_andi_r_imm ¶

    emit_se_andi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_b_rel ¶

    emit_se_b_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bc_bo_crb_rel ¶

    emit_se_bc_bo_crb_rel :: proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, target: u32) {…}

    emit_se_bclri_r_imm ¶

    emit_se_bclri_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_bctr_none ¶

    emit_se_bctr_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_bctrl_none ¶

    emit_se_bctrl_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_beq_rel ¶

    emit_se_beq_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bf_rel ¶

    emit_se_bf_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bge_rel ¶

    emit_se_bge_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bgeni_r_imm ¶

    emit_se_bgeni_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_bgt_rel ¶

    emit_se_bgt_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bl_rel ¶

    emit_se_bl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_ble_rel ¶

    emit_se_ble_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_blr_none ¶

    emit_se_blr_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_blrl_none ¶

    emit_se_blrl_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_blt_rel ¶

    emit_se_blt_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bmaski_r_imm ¶

    emit_se_bmaski_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_bne_rel ¶

    emit_se_bne_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bng_rel ¶

    emit_se_bng_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bnl_rel ¶

    emit_se_bnl_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bns_rel ¶

    emit_se_bns_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bnu_rel ¶

    emit_se_bnu_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bseti_r_imm ¶

    emit_se_bseti_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_bso_rel ¶

    emit_se_bso_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_bt_rel ¶

    emit_se_bt_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_btsti_r_imm ¶

    emit_se_btsti_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_bun_rel ¶

    emit_se_bun_rel :: proc(instructions: ^[dynamic]Instruction, target: u32) {…}

    emit_se_cmp_r_r ¶

    emit_se_cmp_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_cmph_r_r ¶

    emit_se_cmph_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_cmphl_r_r ¶

    emit_se_cmphl_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_cmpi_r_imm ¶

    emit_se_cmpi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_cmpl_r_r ¶

    emit_se_cmpl_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_cmpli_r_imm ¶

    emit_se_cmpli_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_extsb_r ¶

    emit_se_extsb_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_extsh_r ¶

    emit_se_extsh_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_extzb_r ¶

    emit_se_extzb_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_extzh_r ¶

    emit_se_extzh_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_illegal_none ¶

    emit_se_illegal_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_isync_none ¶

    emit_se_isync_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_lbz_r_mem ¶

    emit_se_lbz_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_se_lhz_r_mem ¶

    emit_se_lhz_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_se_li_r_imm ¶

    emit_se_li_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_lwz_r_mem ¶

    emit_se_lwz_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_se_mfar_r_r ¶

    emit_se_mfar_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_mfctr_r ¶

    emit_se_mfctr_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_mflr_r ¶

    emit_se_mflr_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_mr_r_r ¶

    emit_se_mr_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_mtar_r_r ¶

    emit_se_mtar_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_mtctr_r ¶

    emit_se_mtctr_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_mtlr_r ¶

    emit_se_mtlr_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_mullw_r_r ¶

    emit_se_mullw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_neg_r ¶

    emit_se_neg_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_nop_r_r ¶

    emit_se_nop_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_not_r ¶

    emit_se_not_r :: proc(instructions: ^[dynamic]Instruction, rd: Register) {…}

    emit_se_or_r_r ¶

    emit_se_or_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_rfci_none ¶

    emit_se_rfci_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_rfdi_none ¶

    emit_se_rfdi_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_rfgi_none ¶

    emit_se_rfgi_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_rfi_none ¶

    emit_se_rfi_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_rfmci_none ¶

    emit_se_rfmci_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_sc_none ¶

    emit_se_sc_none :: proc(instructions: ^[dynamic]Instruction) {…}

    emit_se_slw_r_r ¶

    emit_se_slw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_slwi_r_imm ¶

    emit_se_slwi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_sraw_r_r ¶

    emit_se_sraw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_srawi_r_imm ¶

    emit_se_srawi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_srw_r_r ¶

    emit_se_srw_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_srwi_r_imm ¶

    emit_se_srwi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_stb_r_mem ¶

    emit_se_stb_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_se_sth_r_mem ¶

    emit_se_sth_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_se_stw_r_mem ¶

    emit_se_stw_r_mem :: proc(instructions: ^[dynamic]Instruction, rd: Register, mem: Memory) {…}

    emit_se_sub_r_r ¶

    emit_se_sub_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_subf_r_r ¶

    emit_se_subf_r_r :: proc(instructions: ^[dynamic]Instruction, rd: Register, r2: Register) {…}

    emit_se_subi_dot_r_imm ¶

    emit_se_subi_dot_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    emit_se_subi_r_imm ¶

    emit_se_subi_r_imm :: proc(instructions: ^[dynamic]Instruction, rd: Register, imm: i64) {…}

    encode ¶

    encode :: proc(
    	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 ¶

    encode_max_code_size :: proc "contextless" (instructions: []Instruction) -> int {…}

    encode_max_relocation_count ¶

    encode_max_relocation_count :: proc "contextless" (instructions: []Instruction) -> int {…}

    encode_reserve ¶

    encode_reserve :: proc(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 reallocates. Allocates no new buffers; pass nil to skip either array.

    fprint ¶

    fprint :: proc(
    	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[u32]string = nil, 
    ) {…}

    fprintln ¶

    fprintln :: proc(
    	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[u32]string = nil, 
    ) {…}

    inst_branch ¶

    inst_branch :: proc "contextless" (m: Mnemonic, label_id: u32) -> Instruction {…}

    inst_e_add16i_r_r_imm ¶

    inst_e_add16i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_add2i_dot_r_r_imm ¶

    inst_e_add2i_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_add2is_r_r_imm ¶

    inst_e_add2is_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_addi_dot_r_r_imm ¶

    inst_e_addi_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_addi_r_r_imm ¶

    inst_e_addi_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_addic_dot_r_r_imm ¶

    inst_e_addic_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_addic_r_r_imm ¶

    inst_e_addic_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_and2i_dot_r_imm ¶

    inst_e_and2i_dot_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_e_and2is_dot_r_imm ¶

    inst_e_and2is_dot_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_e_andi_dot_r_r_imm ¶

    inst_e_andi_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_andi_r_r_imm ¶

    inst_e_andi_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_b_rel ¶

    inst_e_b_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bc_bo_crb_rel ¶

    inst_e_bc_bo_crb_rel :: proc "contextless" (imm: i64, imm2: i64, target: u32) -> Instruction {…}

    inst_e_bcl_bo_crb_rel ¶

    inst_e_bcl_bo_crb_rel :: proc "contextless" (imm: i64, imm2: i64, target: u32) -> Instruction {…}

    inst_e_bdnz_rel ¶

    inst_e_bdnz_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bdnzl_rel ¶

    inst_e_bdnzl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bdz_rel ¶

    inst_e_bdz_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bdzl_rel ¶

    inst_e_bdzl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_beq_rel ¶

    inst_e_beq_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_beql_rel ¶

    inst_e_beql_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bf_rel ¶

    inst_e_bf_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bfl_rel ¶

    inst_e_bfl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bge_rel ¶

    inst_e_bge_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bgel_rel ¶

    inst_e_bgel_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bgt_rel ¶

    inst_e_bgt_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bgtl_rel ¶

    inst_e_bgtl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bl_rel ¶

    inst_e_bl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_ble_rel ¶

    inst_e_ble_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_blel_rel ¶

    inst_e_blel_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_blt_rel ¶

    inst_e_blt_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bltl_rel ¶

    inst_e_bltl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bne_rel ¶

    inst_e_bne_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bnel_rel ¶

    inst_e_bnel_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bng_rel ¶

    inst_e_bng_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bngl_rel ¶

    inst_e_bngl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bnl_rel ¶

    inst_e_bnl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bnll_rel ¶

    inst_e_bnll_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bns_rel ¶

    inst_e_bns_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bnsl_rel ¶

    inst_e_bnsl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bnu_rel ¶

    inst_e_bnu_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bnul_rel ¶

    inst_e_bnul_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bso_rel ¶

    inst_e_bso_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bsol_rel ¶

    inst_e_bsol_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bt_rel ¶

    inst_e_bt_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_btl_rel ¶

    inst_e_btl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bun_rel ¶

    inst_e_bun_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_bunl_rel ¶

    inst_e_bunl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_e_clrlslwi_r_r_r ¶

    inst_e_clrlslwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_clrlwi_r_r_r ¶

    inst_e_clrlwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_clrrwi_r_r_r ¶

    inst_e_clrrwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_cmp16i_r_r_imm ¶

    inst_e_cmp16i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmph16i_r_r_imm ¶

    inst_e_cmph16i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmph_r_r_r ¶

    inst_e_cmph_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_cmphl16i_r_r_imm ¶

    inst_e_cmphl16i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmphl_r_r_r ¶

    inst_e_cmphl_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_cmpi_crf_r_imm ¶

    inst_e_cmpi_crf_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmpl16i_r_r_imm ¶

    inst_e_cmpl16i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmpli_crf_r_imm ¶

    inst_e_cmpli_crf_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmplwi_crf_r_imm ¶

    inst_e_cmplwi_crf_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_cmpwi_crf_r_imm ¶

    inst_e_cmpwi_crf_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_crand_bo_crb ¶

    inst_e_crand_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crandc_bo_crb ¶

    inst_e_crandc_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crclr_bo_crb ¶

    inst_e_crclr_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_creqv_bo_crb ¶

    inst_e_creqv_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crmove_bo_crb ¶

    inst_e_crmove_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crnand_bo_crb ¶

    inst_e_crnand_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crnor_bo_crb ¶

    inst_e_crnor_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crnot_bo_crb ¶

    inst_e_crnot_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_cror_bo_crb ¶

    inst_e_cror_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crorc_bo_crb ¶

    inst_e_crorc_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crset_bo_crb ¶

    inst_e_crset_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_crxor_bo_crb ¶

    inst_e_crxor_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_extlwi_r_r_r ¶

    inst_e_extlwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_extrwi_r_r_r ¶

    inst_e_extrwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_inslwi_r_r_r ¶

    inst_e_inslwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_insrwi_r_r_r ¶

    inst_e_insrwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_la_r_mem ¶

    inst_e_la_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_lbz_r_mem ¶

    inst_e_lbz_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_lbzu_r_r ¶

    inst_e_lbzu_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_ldmvcsrrw_r_r ¶

    inst_e_ldmvcsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_ldmvdsrrw_r_r ¶

    inst_e_ldmvdsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_ldmvgprw_r_r ¶

    inst_e_ldmvgprw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_ldmvsprw_r_r ¶

    inst_e_ldmvsprw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_ldmvsrrw_r_r ¶

    inst_e_ldmvsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lha_r_mem ¶

    inst_e_lha_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_lhau_r_r ¶

    inst_e_lhau_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lhz_r_mem ¶

    inst_e_lhz_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_lhzu_r_r ¶

    inst_e_lhzu_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_li_r_imm ¶

    inst_e_li_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_e_lis_r_imm ¶

    inst_e_lis_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_e_lmvcsrrw_r_r ¶

    inst_e_lmvcsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lmvdsrrw_r_r ¶

    inst_e_lmvdsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lmvgprw_r_r ¶

    inst_e_lmvgprw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lmvmcsrrw_r_r ¶

    inst_e_lmvmcsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lmvsprw_r_r ¶

    inst_e_lmvsprw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lmvsrrw_r_r ¶

    inst_e_lmvsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lmw_r_r ¶

    inst_e_lmw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_lwz_r_mem ¶

    inst_e_lwz_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_lwzu_r_r ¶

    inst_e_lwzu_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_mcrf_bo_crb ¶

    inst_e_mcrf_bo_crb :: proc "contextless" (imm: i64, imm2: i64) -> Instruction {…}

    inst_e_mull2i_r_r_imm ¶

    inst_e_mull2i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_mulli_r_r_imm ¶

    inst_e_mulli_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_nop_r_r_imm ¶

    inst_e_nop_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_or2i_r_imm ¶

    inst_e_or2i_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_e_or2is_r_imm ¶

    inst_e_or2is_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_e_ori_dot_r_r_imm ¶

    inst_e_ori_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_ori_r_r_imm ¶

    inst_e_ori_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_rlw_dot_r_r_r ¶

    inst_e_rlw_dot_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rlw_r_r_r ¶

    inst_e_rlw_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rlwi_dot_r_r_r ¶

    inst_e_rlwi_dot_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rlwi_r_r_r ¶

    inst_e_rlwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rlwimi_r_r_r ¶

    inst_e_rlwimi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rlwinm_r_r_r ¶

    inst_e_rlwinm_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rotlwi_r_r_r ¶

    inst_e_rotlwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_rotrwi_r_r_r ¶

    inst_e_rotrwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_sc_r_r_r ¶

    inst_e_sc_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_slwi_dot_r_r_r ¶

    inst_e_slwi_dot_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_slwi_r_r_r ¶

    inst_e_slwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_srwi_dot_r_r_r ¶

    inst_e_srwi_dot_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_srwi_r_r_r ¶

    inst_e_srwi_r_r_r :: proc "contextless" (rd: Register, r2: Register, r3: Register) -> Instruction {…}

    inst_e_stb_r_mem ¶

    inst_e_stb_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_stbu_r_r ¶

    inst_e_stbu_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_sth_r_mem ¶

    inst_e_sth_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_sthu_r_r ¶

    inst_e_sthu_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmvcsrrw_r_r ¶

    inst_e_stmvcsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmvdsrrw_r_r ¶

    inst_e_stmvdsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmvgprw_r_r ¶

    inst_e_stmvgprw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmvmcsrrw_r_r ¶

    inst_e_stmvmcsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmvsprw_r_r ¶

    inst_e_stmvsprw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmvsrrw_r_r ¶

    inst_e_stmvsrrw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stmw_r_r ¶

    inst_e_stmw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_stw_r_mem ¶

    inst_e_stw_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_e_stwu_r_r ¶

    inst_e_stwu_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_e_sub16i_r_r_imm ¶

    inst_e_sub16i_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_sub2i_dot_r_r_imm ¶

    inst_e_sub2i_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_sub2is_r_r_imm ¶

    inst_e_sub2is_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_subfic_dot_r_r_imm ¶

    inst_e_subfic_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_subfic_r_r_imm ¶

    inst_e_subfic_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_subi_r_r_imm ¶

    inst_e_subi_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_subic_dot_r_r_imm ¶

    inst_e_subic_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_subic_r_r_imm ¶

    inst_e_subic_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_xori_dot_r_r_imm ¶

    inst_e_xori_dot_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_e_xori_r_r_imm ¶

    inst_e_xori_r_r_imm :: proc "contextless" (rd: Register, r2: Register, imm: i64) -> Instruction {…}

    inst_i ¶

    inst_i :: proc "contextless" (m: Mnemonic, v: i64) -> Instruction {…}

    inst_load ¶

    inst_load :: proc "contextless" (m: Mnemonic, rt: Register, mm: Memory) -> Instruction {…}

    inst_none ¶

    inst_none :: proc "contextless" (m: Mnemonic) -> Instruction {…}

    inst_r ¶

    inst_r :: proc "contextless" (m: Mnemonic, r: Register) -> Instruction {…}

    inst_r_r ¶

    inst_r_r :: proc "contextless" (m: Mnemonic, rd, ra: Register) -> Instruction {…}

    inst_r_r_i ¶

    inst_r_r_i :: proc "contextless" (m: Mnemonic, rd, ra: Register, v: i64) -> Instruction {…}

    inst_r_r_r ¶

    inst_r_r_r :: proc "contextless" (m: Mnemonic, rd, ra, rb: Register) -> Instruction {…}

    inst_se_add_r_r ¶

    inst_se_add_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_addi_r_imm ¶

    inst_se_addi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_and_dot_r_r ¶

    inst_se_and_dot_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_and_r_r ¶

    inst_se_and_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_andc_r_r ¶

    inst_se_andc_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_andi_r_imm ¶

    inst_se_andi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_b_rel ¶

    inst_se_b_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bc_bo_crb_rel ¶

    inst_se_bc_bo_crb_rel :: proc "contextless" (imm: i64, imm2: i64, target: u32) -> Instruction {…}

    inst_se_bclri_r_imm ¶

    inst_se_bclri_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_bctr_none ¶

    inst_se_bctr_none :: proc "contextless" () -> Instruction {…}

    inst_se_bctrl_none ¶

    inst_se_bctrl_none :: proc "contextless" () -> Instruction {…}

    inst_se_beq_rel ¶

    inst_se_beq_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bf_rel ¶

    inst_se_bf_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bge_rel ¶

    inst_se_bge_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bgeni_r_imm ¶

    inst_se_bgeni_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_bgt_rel ¶

    inst_se_bgt_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bl_rel ¶

    inst_se_bl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_ble_rel ¶

    inst_se_ble_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_blr_none ¶

    inst_se_blr_none :: proc "contextless" () -> Instruction {…}

    inst_se_blrl_none ¶

    inst_se_blrl_none :: proc "contextless" () -> Instruction {…}

    inst_se_blt_rel ¶

    inst_se_blt_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bmaski_r_imm ¶

    inst_se_bmaski_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_bne_rel ¶

    inst_se_bne_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bng_rel ¶

    inst_se_bng_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bnl_rel ¶

    inst_se_bnl_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bns_rel ¶

    inst_se_bns_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bnu_rel ¶

    inst_se_bnu_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bseti_r_imm ¶

    inst_se_bseti_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_bso_rel ¶

    inst_se_bso_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_bt_rel ¶

    inst_se_bt_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_btsti_r_imm ¶

    inst_se_btsti_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_bun_rel ¶

    inst_se_bun_rel :: proc "contextless" (target: u32) -> Instruction {…}

    inst_se_cmp_r_r ¶

    inst_se_cmp_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_cmph_r_r ¶

    inst_se_cmph_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_cmphl_r_r ¶

    inst_se_cmphl_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_cmpi_r_imm ¶

    inst_se_cmpi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_cmpl_r_r ¶

    inst_se_cmpl_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_cmpli_r_imm ¶

    inst_se_cmpli_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_extsb_r ¶

    inst_se_extsb_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_extsh_r ¶

    inst_se_extsh_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_extzb_r ¶

    inst_se_extzb_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_extzh_r ¶

    inst_se_extzh_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_illegal_none ¶

    inst_se_illegal_none :: proc "contextless" () -> Instruction {…}

    inst_se_isync_none ¶

    inst_se_isync_none :: proc "contextless" () -> Instruction {…}

    inst_se_lbz_r_mem ¶

    inst_se_lbz_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_se_lhz_r_mem ¶

    inst_se_lhz_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_se_li_r_imm ¶

    inst_se_li_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_lwz_r_mem ¶

    inst_se_lwz_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_se_mfar_r_r ¶

    inst_se_mfar_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_mfctr_r ¶

    inst_se_mfctr_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_mflr_r ¶

    inst_se_mflr_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_mr_r_r ¶

    inst_se_mr_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_mtar_r_r ¶

    inst_se_mtar_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_mtctr_r ¶

    inst_se_mtctr_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_mtlr_r ¶

    inst_se_mtlr_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_mullw_r_r ¶

    inst_se_mullw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_neg_r ¶

    inst_se_neg_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_nop_r_r ¶

    inst_se_nop_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_not_r ¶

    inst_se_not_r :: proc "contextless" (rd: Register) -> Instruction {…}

    inst_se_or_r_r ¶

    inst_se_or_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_rfci_none ¶

    inst_se_rfci_none :: proc "contextless" () -> Instruction {…}

    inst_se_rfdi_none ¶

    inst_se_rfdi_none :: proc "contextless" () -> Instruction {…}

    inst_se_rfgi_none ¶

    inst_se_rfgi_none :: proc "contextless" () -> Instruction {…}

    inst_se_rfi_none ¶

    inst_se_rfi_none :: proc "contextless" () -> Instruction {…}

    inst_se_rfmci_none ¶

    inst_se_rfmci_none :: proc "contextless" () -> Instruction {…}

    inst_se_sc_none ¶

    inst_se_sc_none :: proc "contextless" () -> Instruction {…}

    inst_se_slw_r_r ¶

    inst_se_slw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_slwi_r_imm ¶

    inst_se_slwi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_sraw_r_r ¶

    inst_se_sraw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_srawi_r_imm ¶

    inst_se_srawi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_srw_r_r ¶

    inst_se_srw_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_srwi_r_imm ¶

    inst_se_srwi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_stb_r_mem ¶

    inst_se_stb_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_se_sth_r_mem ¶

    inst_se_sth_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_se_stw_r_mem ¶

    inst_se_stw_r_mem :: proc "contextless" (rd: Register, mem: Memory) -> Instruction {…}

    inst_se_sub_r_r ¶

    inst_se_sub_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_subf_r_r ¶

    inst_se_subf_r_r :: proc "contextless" (rd: Register, r2: Register) -> Instruction {…}

    inst_se_subi_dot_r_imm ¶

    inst_se_subi_dot_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    inst_se_subi_r_imm ¶

    inst_se_subi_r_imm :: proc "contextless" (rd: Register, imm: i64) -> Instruction {…}

    mem_d ¶

    mem_d :: proc "contextless" (base: Register, disp: i64) -> Memory {…}

    mem_x ¶

    mem_x :: proc "contextless" (base, index: Register) -> Memory {…}

    mnemonic_to_string ¶

    mnemonic_to_string :: proc(m: Mnemonic, lowercase: bool = true, allocator := context.temp_allocator) -> string {…}

    op_imm ¶

    op_imm :: proc "contextless" (v: i64) -> Operand {…}

    op_label ¶

    op_label :: proc "contextless" (label_id: u32) -> Operand {…}

    op_mem ¶

    op_mem :: proc "contextless" (m: Memory) -> Operand {…}

    op_reg ¶

    op_reg :: proc "contextless" (r: Register) -> Operand {…}

    op_rel_offset ¶

    op_rel_offset :: proc "contextless" (off: i64) -> Operand {…}

    print ¶

    print :: proc(
    	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[u32]string = nil, 
    ) {…}

    println ¶

    println :: proc(
    	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[u32]string = nil, 
    ) {…}

    reg_class ¶

    reg_class :: proc "contextless" (r: Register) -> u16 {…}

    reg_hw ¶

    reg_hw :: proc "contextless" (r: Register) -> u16 {…}

    reg_is_cr ¶

    reg_is_cr :: proc "contextless" (r: Register) -> bool {…}

    reg_is_gpr ¶

    reg_is_gpr :: proc "contextless" (r: Register) -> bool {…}

    reg_is_spr ¶

    reg_is_spr :: proc "contextless" (r: Register) -> bool {…}

    sbprint ¶

    sbprint :: proc(
    	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[u32]string = nil, 
    ) {…}

    sbprintln ¶

    sbprintln :: proc(
    	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[u32]string = nil, 
    ) {…}

    spr_reg ¶

    spr_reg :: proc "contextless" (n: u16) -> Register {…}

    tprint ¶

    tprint :: proc(
    	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[u32]string = nil, 
    ) -> string {…}

    tprintln ¶

    tprintln :: proc(
    	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[u32]string = nil, 
    ) -> string {…}

    wprint ¶

    wprint :: proc(
    	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[u32]string = nil, 
    ) {…}

    wprintln ¶

    wprintln :: proc(
    	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[u32]string = nil, 
    ) {…}

    write_operand ¶

    write_operand :: proc(
    	sb:              ^strings.Builder, 
    	op:              ^Operand, 
    	inst_offset:     u32, 
    	offset_to_label: ^map[u32]u32, 
    	label_names:     ^map[u32]string, 
    	opts:            ^rexcode_isa.Print_Options, 
    ) {…}

    write_register ¶

    write_register :: proc(sb: ^strings.Builder, r: Register, uppercase: bool) {…}

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2026-07 (vendor "odin") Windows_amd64 @ 2026-07-20 21:55:41.416066500 +0000 UTC