-
Notifications
You must be signed in to change notification settings - Fork 84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Instruction Renaming #48
Comments
I think a few of the scalar names could be incorrect. For example, should ssha512.sum1r should be renamed sha512sum1r, not sha512sum0r? |
@JamesKenneyImperas - Gah, well spotted. Copy pasta on my part. I've updated the table. Thanks a lot! |
We should define all the vector commands with the appropriate "dot" extension(s): one or more of ".vv", ".vi", ".vx", ".vs" even if the assembler folks decide that dropping some of them in the assembly mnemonics is allowed. There are several in the table where the extension is missing. |
@grnewell - you mean Which should they be? I can't remember seeing anything on this in the summit slides I derived the current specs from. |
Also, besides those SHA instructions, the extension is missing on the reverse-key instructions in the table above. In the case of the SHA instructions, only .vv really makes any sense. |
@grnewell - I remember now. Thanks. I've updated the table accordingly. 👍 |
- Renamed all scalar instructions in: - Benchmarks - Spike - Binutils - Opcode descriptions. - Still do do: - Specs: Vector and Scalar - SAIL code. - Example RTL. On branch dev/instruction-renaming Changes to be committed: modified: benchmarks/aes/zscrypto_rv32/aes_128_ks.S modified: benchmarks/aes/zscrypto_rv32/aes_192_ks.S modified: benchmarks/aes/zscrypto_rv32/aes_256_ks.S modified: benchmarks/aes/zscrypto_rv32/aes_dec.S modified: benchmarks/aes/zscrypto_rv32/aes_enc.S modified: benchmarks/aes/zscrypto_rv64/aes_128_ks.S modified: benchmarks/aes/zscrypto_rv64/aes_192_ks.S modified: benchmarks/aes/zscrypto_rv64/aes_256_ks.S modified: benchmarks/aes/zscrypto_rv64/aes_dec.S modified: benchmarks/aes/zscrypto_rv64/aes_enc.S modified: benchmarks/aes/zscrypto_rv64/aes_ks_dec_invmc.S modified: benchmarks/sha256/zscrypto/sha256.c modified: benchmarks/sha512/zscrypto_rv64/sha512.c modified: benchmarks/share/riscv-crypto-intrinsics.h modified: benchmarks/sm4/zscrypto/sm4_zscrypto.c modified: tools/opcodes-crypto-scalar modified: tools/opcodes-crypto-vector modified: tools/patch-binutils.patch modified: tools/patch-spike.patch Changes not staged for commit: modified: extern/riscv-gnu-toolchain (modified content, untracked content) modified: extern/riscv-isa-sim (modified content)
This issue pulls together several others:
s
prefix.The table below lists the current mnemonic and the proposed new mnemonic. Please consider each proposal, and if you have any thoughts or suggestions for better alternatives, please discuss in the comments below.
This issue will be left alive for a week to gather feedback before being closed and the decided changes implemented.
Scalar Instructions:
Principles:
.
characters.s
for the scalar instructions.i
if the instruction contains an immediate.saes32.encs
aes32esi
saes32.encsm
aes32esmi
saes32.decs
aes32dsi
saes32.decsm
aes32dsmi
saes64.ks1
aes64ks1i
saes64.ks2
aes64ks2
saes64.imix
aes64im
saes64.encsm
aes64esm
saes64.encs
aes64es
saes64.decsm
aes64dsm
saes64.decs
aes64ds
ssha256.sig0
sha256sig0
ssha256.sig1
sha256sig1
ssha256.sum0
sha256sum0
ssha256.sum1
sha256sum1
ssha512.sum0r
sha512sum0r
ssha512.sum1r
sha512sum1r
ssha512.sig0l
sha512sig0l
ssha512.sig0h
sha512sig0h
ssha512.sig1l
sha512sig1l
ssha512.sig1h
sha512sig1h
ssha512.sum0
sha512sum0
ssha512.sum1
sha512sum1
ssha512.sig0
sha512sig0
ssha512.sig1
sha512sig1
ssm3.p0
sm3p0
ssm3.p1
sm3p1
ssm4.ed
sm4ed
ssm4.ks
sm4ks
pollentropy
pollentropyi
Vector Instructions
Principles:
.
characters used only to differentiate between source operand specifiers, in line with basevector spec.
.v*
suffixes are consistent with base vector spec.i
if the instruction contains an immediate.vaese.vs
vaese.vs
vaeselast.vs
vaeselast.vs
vaesd.vs
vaesd.vs
vaesdlast.vs
vaesdlast.vs
vaese.vv
vaese.vv
vaeselast.vv
vaeselast.vv
vaesd.vv
vaesd.vv
vaesdlast.vv
vaesdlast.vv
vaes128keyi
vaes128key.vi
vaes128invkeyi
vaes128invkey.vi
vaes192keyi
vaes192key.vi
vaes192invkeyi
vaes192invkey.vi
vaes256keyi
vaes256key.vi
vaes256invkeyi
vaes256invkey.vi
vaese128.vs
vaese128.vs
vaese192.vs
vaese192.vs
vaese256.vs
vaese256.vs
vaesd128.vs
vaesd128.vs
vaesd192.vs
vaesd192.vs
vaesd256.vs
vaesd256.vs
vaese128.vv
vaese128.vv
vaese192.vv
vaese192.vv
vaese256.vv
vaese256.vv
vaesd128.vv
vaesd128.vv
vaesd192.vv
vaesd192.vv
vaesd256.vv
vaesd256.vv
vaes128rkey
vaes128rkey.vv
vaes192rkey
vaes192rkey.vv
vaes256rkey
vaes256rkey.vv
vsha2.ws
vsha2wsi .vv
vsha2.ms
vsha2ms.vv
vsha2.hs
vsha2hs.vv
vclmul.vv
vclmul.vv
vclmul.vs
vclmul.vs
vclmulh.vv
vclmulh.vv
vclmulh.vs
vclmulh.vs
vclmacc.vv
vclmacc.vv
vclmacc.vs
vclmacc.vs
vclmacch.vv
vclmacch.vv
vclmacch.vs
vclmacch.vs
vwclmul.vv
vwclmul.vv
vwclmul.vs
vwclmul.vs
vwclmacc.vv
vwclmacc.vv
vwclmacc.vs
vwclmacc.vs
vrot.vv
vrot.vv
vrot.vs
vrot.vs
vrot.vi
vrot.vi
vrot.vx
vrot.vx
vgrev.vv
vgrev.vv
vgrev.vs
vgrev.vs
vgrev.vi
vgrev.vi
vgrev.vx
vgrev.vx
The text was updated successfully, but these errors were encountered: