add empty brownfield funct5
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 4 Aug 2019 08:09:13 +0000 (09:09 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sun, 4 Aug 2019 08:09:13 +0000 (09:09 +0100)
rv_major_opcode_1010011.mdwn

index d2154da80172fffd3f329e80a3e4aba48cf22bd5..66defcf71c7f613a65a99dae2f4e06f083b883c4 100644 (file)
@@ -13,6 +13,8 @@ Publicly-known FP proposals:
   <https://groups.google.com/a/groups.riscv.org/forum/m/#!topic/isa-dev/kXgfFqgBv-c>
 * (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    |