From: lkcl Date: Fri, 13 Nov 2020 02:19:25 +0000 (+0000) Subject: (no commit message) X-Git-Tag: convert-csv-opcode-to-binary~1838 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7c29fe5abbd9b78f5b572b6d7fe502e90fbe2316;p=libreriscv.git --- diff --git a/openpower/sv/major_opcode_allocation.mdwn b/openpower/sv/major_opcode_allocation.mdwn index 2dc253b8c..132a93e9a 100644 --- a/openpower/sv/major_opcode_allocation.mdwn +++ b/openpower/sv/major_opcode_allocation.mdwn @@ -56,4 +56,14 @@ This latter would be useful in the Vector context to have an alternative meaning |16 bit opcode alt vec. mode ^ | | extra vector prefix if alt set| +Using a major opcode to enter 16 bit mode, leaves 10 bits to find something to use them for: + 0 1 2 3 4 5 6 7 8 9 a b c d e f | + |major op | what to do here 1 | + |16 bit stay in 16bit mode 1 | + |16 bit stay in 16bit mode 1 | + |16 bit exit 16bit mode 0 | + +One possibility is that the 10 bits are used for bank selection, with some room for additional context such as altering the registers used for the 16 bit operations (bank selection of which scalar regs) + +Another is to use the 10 bits for only the utmost commonly used instructions. That being the case then even one of those 10 bits would also need to be dedicated to saying if 16 bit mode is to be continued. 9 bits remain for actual opcodes!