From: Luke Kenneth Casson Leighton Date: Sun, 4 Aug 2019 08:09:13 +0000 (+0100) Subject: add empty brownfield funct5 X-Git-Tag: convert-csv-opcode-to-binary~4286 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4cf7745c86c9894b98f585ef6e3d70e7fbb76ee3;p=libreriscv.git add empty brownfield funct5 --- diff --git a/rv_major_opcode_1010011.mdwn b/rv_major_opcode_1010011.mdwn index d2154da80..66defcf71 100644 --- a/rv_major_opcode_1010011.mdwn +++ b/rv_major_opcode_1010011.mdwn @@ -13,6 +13,8 @@ Publicly-known FP proposals: * (Add new entries here: Zextname - Description and URL) +[[!toc levels=2]] + # Main FP opcode 1010011 table Notes: @@ -34,7 +36,7 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 00001 | xx | rs2 | rs1 | rm | rd | 1010011 | FSUB.xx | 00010 | xx | rs2 | rs1 | rm | rd | 1010011 | FMUL.xx | 00011 | xx | rs2 | rs1 | rm | rd | 1010011 | FDIV.xx | -00100 | xx | rs2 | rs1 | yyy | rd | 1010011 | tb=00100 | +00100 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? | 00101 | xx | rs2 | rs1 | yyy | rd | 1010011 | tb=00101 | 00110 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? | 00111 | xx | rs2 | rs1 | yyy | rd | 1010011 | ? | @@ -81,7 +83,27 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 00100 | xx | rs2 | rs1 | 111 | rd | 1010011 | ?f3=111 | """]] -# funct5 = 00101 +## funct5 = 00000 - FADD + +No brownfield encodings available. + +## funct5 = 00001 - FSUB + +No brownfield encodings available. + +## funct5 = 00010 - FMUL + +No brownfield encodings available. + +## funct5 = 00011 - FDIV + +No brownfield encodings available. + +## funct5 = 00100 - unused + +Brownfield encodings available. + +## funct5 = 00101 This table uses funct3 for encoding 2-operand FP operations where the result register is a **floating-point** value. @@ -100,7 +122,15 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 00101 | xx | rs2 | rs1 | 111 | rd | 1010011 | ?f3=111 | """]] -# funct5 = 01000 +## funct5 = 00110 - unused + +Brownfield encodings available. + +## funct5 = 00111 - unused + +Brownfield encodings available. + +## funct5 = 01000 This table uses rs2 for encoding 1-operand FP operations that require "rounding" @@ -126,7 +156,15 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 01000 | 11 | xxxxx | rs1 | rm | rd | 1010011 | rs2? | """]] -# funct5 = 01011 +## funct5 = 01001 - unused + +Brownfield encodings available. + +## funct5 = 01010 - unused + +Brownfield encodings available. + +## funct5 = 01011 This table uses rs2 for encoding 1-operand FP operations that require "rounding" @@ -168,7 +206,39 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 01011 | xx | 11111 | rs1 | rm | rd | 1010011 | ? | """]] -# funct5 = 10100 +## funct5 = 01100 - unused + +Brownfield encodings available. + +## funct5 = 01101 - unused + +Brownfield encodings available. + +## funct5 = 01110 - unused + +Brownfield encodings available. + +## funct5 = 01111 - **FPOW** + +Proposed for Zftrans - FPOW: "FP rs2 to the power of rs1" + +## funct5 = 10000 - unused + +Brownfield encodings available. + +## funct5 = 10001 - unused + +Brownfield encodings available. + +## funct5 = 10010 - unused + +Brownfield encodings available. + +## funct5 = 10011 - unused + +Brownfield encodings available. + +## funct5 = 10100 This table uses funct3 for encoding 2-operand FP "comparison" operations where the result register is an **integer** @@ -191,7 +261,19 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 10100 | xx | rs2 | rs1 | 111 | rd | 1010011 | ?f3=111 | """]] -# funct5 = 11000 +## funct5 = 10101 - unused + +Brownfield encodings available. + +## funct5 = 10110 - unused + +Brownfield encodings available. + +## funct5 = 10111 - unused + +Brownfield encodings available. + +## funct5 = 11000 This table uses rs2 for encoding 1-operand FP operations that require "rounding" @@ -222,7 +304,11 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 11000 | 11 | xxxxx | rs1 | rm | rd | 1010011 | rs2? | """]] -# funct5 = 11010 +## funct5 = 11001 - unused + +Brownfield encodings available. + +## funct5 = 11010 This table uses rs2 for encoding 1-operand FP operations that require "rounding" @@ -249,7 +335,7 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 11010 | 11 | xxxxx | rs1 | rm | rd | 1010011 | rs2? | """]] -# funct5 = 11100 +## funct5 = 11100 This table uses *both* rs2 *and* funct3 for encoding 1-operand FP operations. @@ -276,7 +362,11 @@ funct5| SDHQ | rs2 | rs1 |funct3 | rd | opcode | name | 11100 | xx | xxxxx | rs1 | yyy | rd | 1010011 | rs2? f3? | """]] -# funct5 = 11110 +## funct5 = 11101 - unused + +Brownfield encodings available. + +## funct5 = 11110 This table uses *both* rs2 *and* funct3 for encoding 1-operand FP operations. @@ -301,7 +391,11 @@ funct5 | SDHQ | rs2 | rs1 | funct3 | rd | opcode | name | 11110 | 11 | xxxxx | rs1 | yyy | rd | 1010011 | rs2? f3? | """]] -# funct5 = ????? +## funct5 = 11111 - unused + +Brownfield encodings available. + +## funct5 = ????? [[!table data=""" 31..27 | 26..25 | 24..20 |19..15| 14...12| 11..7 | 6....0 | function |