openhwgroup / corev-binutils-gdb

GNU General Public License v2.0
9 stars 26 forks source link

CV32E40Pv2 Update SIMD Instructions and Test #91

Closed NandniJamnadas closed 1 year ago

NandniJamnadas commented 1 year ago
* opcodes/riscv-opc.c: Corrected SIMD instructions to unsigned.
* gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.l: Modified SIMD tests to match unsigned specifcation.
* gas/testsuite/gas/riscv/cv-simd-and-sci-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-and-sci-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-and-sci-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-and-sci-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extract-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-extractu-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-insert-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-or-sci-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sll-sci-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-sra-sci-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-srl-sci-h-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-b-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-b-pass.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.l: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-h-fail.s: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.d: Likewise.
* gas/testsuite/gas/riscv/cv-simd-xor-sci-h-pass.s: Likewise.
NandniJamnadas commented 1 year ago

This pull request fixes issue https://github.com/openhwgroup/corev-binutils-gdb/issues/89: The immediate field of shift instructions should be unsigned.

melonedo commented 1 year ago

Should extract/extractu/insert be unsigned? The spec only uses the lowest one or two bits, which is not affected by sign extension or zero extension.

jeremybennett commented 1 year ago

This looks to be the definitive implementation of the documented instructions. Good to merge.