From 6c363190a9e2c81272512427458c2518b5994bd8 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 5681f35..41fbce0 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.34.1