pub const fn rsr(opcode: u32, rs: u8, t: u8) -> u32 {
opcode | ((rs as u32) << 8) | ((t as u32 & 0x0F) << 4)
}
pub const fn rrr(opcode: u32, r: u8, s: u8, t: u8) -> u32 {
(opcode & 0xFF000F)
| ((r as u32 & 0x0F) << 12)
| ((s as u32 & 0x0F) << 8)
| ((t as u32 & 0x0F) << 4)
}
pub const fn rri8(opcode: u32, s: u8, t: u8, imm8: u8) -> u32 {
(opcode & 0x00FFFF)
| ((imm8 as u32) << 16)
| ((s as u32 & 0x0F) << 8)
| ((t as u32 & 0x0F) << 4)
}
pub const fn callx(window: u32, s: u8) -> u32 {
0x0000C0 | ((window & 0x03) << 4) | ((s as u32 & 0x0F) << 8)
}