From: Luke Kenneth Casson Leighton Date: Wed, 26 Jun 2019 03:52:50 +0000 (+0100) Subject: add potential MV.X and swizzle-mv X-Git-Tag: convert-csv-opcode-to-binary~4407 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7685fc2b98fd45c5304837bdd1c317ba6f40ba96;p=libreriscv.git add potential MV.X and swizzle-mv --- diff --git a/simple_v_extension/specification/discussion.mdwn b/simple_v_extension/specification/discussion.mdwn index 99a8ac254..53c9b053a 100644 --- a/simple_v_extension/specification/discussion.mdwn +++ b/simple_v_extension/specification/discussion.mdwn @@ -90,11 +90,14 @@ swizzle needs a MV. see below for a potential way to use the funct7 to do a swi +---------------+-------------+-------+----------+----------+--------+----------+--------+--------+ | RV32-I-type + imm[11:0] + rs1[4:0] + funct3 | rd[4:0] + opcode + 0b11 | +---------------+-------------+-------+----------+----------+--------+----------+--------+--------+ -| RV32-I-type + rsv[11:8] swizzle[7:0] + rs1[4:0] + 0b000 | rd[4:0] + OP-V + 0b11 | +| RV32-I-type + fn4[11:8] swizzle[7:0] + rs1[4:0] + 0b000 | rd[4:0] + OP-V + 0b11 | +---------------+-------------+-------+----------+----------+--------+----------+--------+--------+ * funct3 = MV * OP-V = 0b1010111 +* fn4 = 4 bit function. +* fn4 = 0b0000 - INT MV-SWIZZLE ? +* fn4 = 0b0001 - FP MV-SWIZZLE ? swizzle (only active on SV or P48/P64 when SUBVL!=0): @@ -122,9 +125,10 @@ potential MV.X? register-version of MV-swizzle? * funct3 = MV.X * OP-V = 0b1010111 -* funct7 = 0b0000000 - -potential funct7 = 0b0000001 to say that rs2 is a swizzle argument? +* funct7 = 0b0000000 - INT MV.X +* funct7 = 0b0000001 - FP MV.X +* funct7 = 0b0000010 - INT MV.swizzle to say that rs2 is a swizzle argument? +* funct7 = 0b0000011 - FP MV.swizzle to say that rs2 is a swizzle argument? question: do we need a swizzle MV.X as well?