openhwgroup / corev-binutils-gdb

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

[CV32E40Pv2] Some multiplication instructions not existing anymore #69

Closed pascalgouedo closed 1 year ago

pascalgouedo commented 1 year ago

Hi,

During the PULP instructions re-encoding, it appeared that some instructions were redundant and have been removed.

They are cv.mulu, cv.muls, cv.mulhhu and cv.mulhhs.

Toolchain should generate an error when trying to use them or assembler pseudo-instruction should be added to emulate them (cv.mul ... => cv.mulN ... , 0).

NandniJamnadas commented 1 year ago

@pascalgouedo I think it's best we implement puesdo-instructions for these four instructions. The assembler will already generate an error if you try and use the four instructions above. Also implementing four puesdo-instruction is much easier than adding a custom error message for the specific instructions.

pascalgouedo commented 1 year ago

Hi @NandniJamnadas

Pseudo-instructions is my preferred solution as well.

NandniJamnadas commented 1 year ago

This issue is now fixed with pull request #92 CV32E40Pv2 MAC pseudo-instructions.