From e4747b998a04025ea409316ff23cf3b464fd99e8 Mon Sep 17 00:00:00 2001 From: James Jones Date: Sun, 12 Jun 2022 20:54:39 -0700 Subject: [PATCH] Fix pack/unpack instructions The GPU-specific PACK and UNPACK instructions share opcode 63. PACK is chosen by encoding '0' in the source operand, and UNPACK is chosen by encoding '1' in the source operand. RMAC had the magic source operand values reversed. --- riscasm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/riscasm.c b/riscasm.c index e31c104..c3bd88f 100644 --- a/riscasm.c +++ b/riscasm.c @@ -128,8 +128,8 @@ static const struct opcoderecord roptbl[] = { { MR_NORMI, RI_TWO, 56 }, { MR_NOP, RI_NONE, 57 }, { MR_SAT24, RI_ONE, 62 }, - { MR_UNPACK, RI_ONE, 63 + GPUONLY | (0 << 6) }, - { MR_PACK, RI_ONE, 63 + GPUONLY | (1 << 6) }, + { MR_UNPACK, RI_ONE, 63 + GPUONLY | (1 << 6) }, + { MR_PACK, RI_ONE, 63 + GPUONLY | (0 << 6) }, { MR_ADDQMOD, RI_NUM_32, 63 + DSPONLY }, { MR_MOVE, RI_MOVE, 0 }, { MR_LOAD, RI_LOAD, 0 }, -- 2.37.2