[libre-riscv-dev] Instruction sorta-prefixes for easier high-register access
Jacob Lifshay
programmerjake at gmail.com
Mon Jan 21 06:08:29 GMT 2019
Working on a much more fleshed-out prefix proposal that supports using
32-bit instructions for common operations and expanding to bigger
instructions for the less common ones, allowing us to retain the
space/energy savings of the C extension.
On Sun, Jan 20, 2019 at 10:04 PM Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:
> better at https://libre-riscv.org/3d_gpu/microarchitecture/#prefixes
>
> <pre>
> | 3 | 2 | 1 | 0
> |
> | ---------------- | ---------------- | ---------------- |
> ---------------- |
> | | xxxxxxxxxxxxxxaa | xxxxxxxxxxxxxxaa |
> XXXXXXXXXX011111 |
> | | xxxxxxxxxxxxxxxx | xxxxxxxxxxxbbb11 |
> XXXXXXXXXX011111 |
> | | xxxxxxxxxxxxxxaa | XXXXXXXXXX011111 |
> XXXXXXXXXX011111 |
> | xxxxxxxxxxxxxxaa | xxxxxxxxxxxxxxaa | XXXXXXXXXXXXXXXX |
> XXXXXXXXX0111111 |
> | xxxxxxxxxxxxxxxx | xxxxxxxxxxxbbb11 | XXXXXXXXXXXXXXXX |
> XXXXXXXXX0111111 |
> </pre>
>
> bits available for different uses, and instructions that fit them:
>
> * 48b: 10 C C
> * 48b: 10 32-bit
> * 48b: 20 C
> * 64b: 25 C C
> * 64b: 25 32-bit
>
> 64-bit with 3 C instructions or 1C plus a 32 or a 32 plus 1C... too
> complicated.
>
>
>
> still thinking about these:
>
> 2x16-bit / 32-bit:
>
> <pre>
> | 9 8 | 7 6 5 | 4 3 | 2 1 | 0 |
> | ----- | ----- | ------- | ------- | - |
> | elwid | VL | rs[6:5] | rd[6:5] | 0 |
>
> | 9 8 7 6 5 | 4 3 | 2 | 1 | 0 |
> | --------- | -------- | --- | --- | - |
> | predicate | predtarg | end | inv | 1 |
> </pre>
>
>
> y'know... we _could_ take over the entire RVV opcode space, to do a
> more compact way to set up the CSRs...
>
> _______________________________________________
> libre-riscv-dev mailing list
> libre-riscv-dev at lists.libre-riscv.org
> http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
>
More information about the libre-riscv-dev
mailing list