From: James Jones Date: Mon, 13 Jun 2022 03:54:39 +0000 (-0700) Subject: Fix pack/unpack instructions X-Git-Tag: v2.2.4~2 X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=commitdiff_plain;h=e4747b998a04025ea409316ff23cf3b464fd99e8 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. --- 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 },