move SHA to v0.8 of Kscalar

This commit is contained in:
Romain Dolbeau 2020-12-06 16:03:42 +01:00
parent 219844c69c
commit c8bc50d6b6
4 changed files with 61 additions and 70 deletions

View file

@ -114,16 +114,16 @@ class CryptoZknhPlugin extends Plugin[VexRiscv] {
RS3_USE -> True,
IS_CryptoZknh -> True
)
def sha256sig0_KEY = M"000011100000-----111-----0101011"
def sha256sig1_KEY = M"000011100001-----111-----0101011"
def sha256sum0_KEY = M"000011100010-----111-----0101011"
def sha256sum1_KEY = M"000011100011-----111-----0101011"
def sha512sig0l_KEY = M"0001000----------111-----0101011"
def sha512sig0h_KEY = M"0001001----------111-----0101011"
def sha512sig1l_KEY = M"0001010----------111-----0101011"
def sha512sig1h_KEY = M"0001011----------111-----0101011"
def sha512sum0r_KEY = M"0001100----------111-----0101011"
def sha512sum1r_KEY = M"0001101----------111-----0101011"
def sha256sig0_KEY = M"000100000010-----001-----0010011"
def sha256sig1_KEY = M"000100000011-----001-----0010011"
def sha256sum0_KEY = M"000100000000-----001-----0010011"
def sha256sum1_KEY = M"000100000001-----001-----0010011"
def sha512sig0l_KEY = M"0101010----------000-----0110011"
def sha512sig0h_KEY = M"0101110----------000-----0110011"
def sha512sig1l_KEY = M"0101011----------000-----0110011"
def sha512sig1h_KEY = M"0101111----------000-----0110011"
def sha512sum0r_KEY = M"0101000----------000-----0110011"
def sha512sum1r_KEY = M"0101001----------000-----0110011"
val decoderService = pipeline.service(classOf[DecoderService])
decoderService.addDefault(IS_CryptoZknh, False)
decoderService.add(List(

View file

@ -1,61 +1,52 @@
//#define MATCH_SHA256SIG0 0xe00702b
//#define MASK_SHA256SIG0 0xfff0707f
//#define MATCH_SHA256SIG1 0xe10702b
//#define MASK_SHA256SIG1 0xfff0707f
//#define MATCH_SHA256SUM0 0xe20702b
//#define MASK_SHA256SUM0 0xfff0707f
//#define MATCH_SHA256SUM1 0xe30702b
//#define MATCH_SHA256SUM0 0x10001013
//#define MASK_SHA256SUM1 0xfff0707f
//{"sha256sig0" , 0, INSN_CLASS_I, "d,s", MATCH_SHA256SIG0, MASK_SHA256SIG0, match_opcode, 0},
//{"sha256sig1" , 0, INSN_CLASS_I, "d,s", MATCH_SHA256SIG1, MASK_SHA256SIG1, match_opcode, 0},
//{"sha256sum0" , 0, INSN_CLASS_I, "d,s", MATCH_SHA256SUM0, MASK_SHA256SUM0, match_opcode, 0},
//{"sha256sum1" , 0, INSN_CLASS_I, "d,s", MATCH_SHA256SUM1, MASK_SHA256SUM1, match_opcode, 0},
//0000111 00000 rs1 111 rd 0101011 sha256sig0
//0000111 00001 rs1 111 rd 0101011 sha256sig1
//0000111 00010 rs1 111 rd 0101011 sha256sum0
//0000111 00011 rs1 111 rd 0101011 sha256sum1
//#define MATCH_SHA256SUM1 0x10101013
//#define MASK_SHA256SIG0 0xfff0707f
//#define MATCH_SHA256SIG0 0x10201013
//#define MASK_SHA256SIG1 0xfff0707f
//#define MATCH_SHA256SIG1 0x10301013
//00 01000 00010 rs1 001 rd 0010011 sha256sig0
//00 01000 00011 rs1 001 rd 0010011 sha256sig1
//00 01000 00000 rs1 001 rd 0010011 sha256sum0
//00 01000 00001 rs1 001 rd 0010011 sha256sum1
I sha256sig0 sha256sig0 000011100000-----111-----0101011 sha256sig Zknh
I sha256sig1 sha256sig1 000011100001-----111-----0101011 sha256sig Zknh
I sha256sum0 sha256sum0 000011100010-----111-----0101011 sha256sum Zknh
I sha256sum1 sha256sum1 000011100011-----111-----0101011 sha256sum Zknh
I sha256sig0 sha256sig0 000100000010-----001-----0010011 sha256sig Zknh
I sha256sig1 sha256sig1 000100000011-----001-----0010011 sha256sig Zknh
I sha256sum0 sha256sum0 000100000000-----001-----0010011 sha256sum Zknh
I sha256sum1 sha256sum1 000100000001-----001-----0010011 sha256sum Zknh
S sha256sig0 "fun_sha256sig0(input(SRC1))"
S sha256sig1 "fun_sha256sig1(input(SRC1))"
S sha256sum0 "fun_sha256sum0(input(SRC1))"
S sha256sum1 "fun_sha256sum1(input(SRC1))"
//#define MATCH_SHA512SIG0L 0x1000702b
//#define MASK_SHA512SIG0L 0xfe00707f
//#define MATCH_SHA512SIG0H 0x1200702b
//#define MASK_SHA512SIG0H 0xfe00707f
//#define MATCH_SHA512SIG1L 0x1400702b
//#define MASK_SHA512SIG1L 0xfe00707f
//#define MATCH_SHA512SIG1H 0x1600702b
//#define MASK_SHA512SIG1H 0xfe00707f
//#define MATCH_SHA512SUM0R 0x1800702b
//#define MASK_SHA512SUM0R 0xfe00707f
//#define MATCH_SHA512SUM1R 0x1a00702b
//#define MATCH_SHA512SUM0R 0x50000033
//#define MASK_SHA512SUM1R 0xfe00707f
//{"sha512sig0l" , 0, INSN_CLASS_I, "d,s,t", MATCH_SHA512SIG0L, MASK_SHA512SIG0L, match_opcode, 0},
//{"sha512sig0h" , 0, INSN_CLASS_I, "d,s,t", MATCH_SHA512SIG0H, MASK_SHA512SIG0H, match_opcode, 0},
//{"sha512sig1l" , 0, INSN_CLASS_I, "d,s,t", MATCH_SHA512SIG1L, MASK_SHA512SIG1L, match_opcode, 0},
//{"sha512sig1h" , 0, INSN_CLASS_I, "d,s,t", MATCH_SHA512SIG1H, MASK_SHA512SIG1H, match_opcode, 0},
//{"sha512sum0r" , 0, INSN_CLASS_I, "d,s,t", MATCH_SHA512SUM0R, MASK_SHA512SUM0R, match_opcode, 0},
//{"sha512sum1r" , 0, INSN_CLASS_I, "d,s,t", MATCH_SHA512SUM1R, MASK_SHA512SUM1R, match_opcode, 0},
//0001000 rs2 rs1 111 rd 0101011 sha512sig0l
//0001001 rs2 rs1 111 rd 0101011 sha512sig0h
//0001010 rs2 rs1 111 rd 0101011 sha512sig1l
//0001011 rs2 rs1 111 rd 0101011 sha512sig1h
//0001100 rs2 rs1 111 rd 0101011 sha512sum0r
//0001101 rs2 rs1 111 rd 0101011 sha512sum1r
//#define MATCH_SHA512SUM1R 0x52000033
//#define MASK_SHA512SIG0L 0xfe00707f
//#define MATCH_SHA512SIG0L 0x54000033
//#define MASK_SHA512SIG0H 0xfe00707f
//#define MATCH_SHA512SIG0H 0x5c000033
//#define MASK_SHA512SIG1L 0xfe00707f
//#define MATCH_SHA512SIG1L 0x56000033
//#define MASK_SHA512SIG1H 0xfe00707f
//#define MATCH_SHA512SIG1H 0x5e000033
I sha512sig0l sha512sig0l 0001000----------111-----0101011 sha512sig Zknh
I sha512sig0h sha512sig0h 0001001----------111-----0101011 sha512sig Zknh
I sha512sig1l sha512sig1l 0001010----------111-----0101011 sha512sig Zknh
I sha512sig1h sha512sig1h 0001011----------111-----0101011 sha512sig Zknh
I sha512sum0r sha512sum0r 0001100----------111-----0101011 sha512sum Zknh
I sha512sum1r sha512sum1r 0001101----------111-----0101011 sha512sum Zknh
//01 01010 rs2 rs1 000 rd 0110011 sha512sig0l
//01 01110 rs2 rs1 000 rd 0110011 sha512sig0h
//01 01011 rs2 rs1 000 rd 0110011 sha512sig1l
//01 01111 rs2 rs1 000 rd 0110011 sha512sig1h
//01 01000 rs2 rs1 000 rd 0110011 sha512sum0r
//01 01001 rs2 rs1 000 rd 0110011 sha512sum1r
I sha512sig0l sha512sig0l 0101010----------000-----0110011 sha512sig Zknh
I sha512sig0h sha512sig0h 0101110----------000-----0110011 sha512sig Zknh
I sha512sig1l sha512sig1l 0101011----------000-----0110011 sha512sig Zknh
I sha512sig1h sha512sig1h 0101111----------000-----0110011 sha512sig Zknh
I sha512sum0r sha512sum0r 0101000----------000-----0110011 sha512sum Zknh
I sha512sum1r sha512sum1r 0101001----------000-----0110011 sha512sum Zknh
S sha512sig0l "fun_sha512sig0l(input(SRC1),input(SRC2))"
S sha512sig0h "fun_sha512sig0h(input(SRC1),input(SRC2))"

View file

@ -60,10 +60,10 @@ asm("#define reg_t6 31\n");
return r; \
}
ASM1MACRO(SHA256SIG0,0x0e00702b)
ASM1MACRO(SHA256SIG1,0x0e10702b)
ASM1MACRO(SHA256SUM0,0x0e20702b)
ASM1MACRO(SHA256SUM1,0x0e30702b)
ASM1MACRO(SHA256SIG0,0x10201013)
ASM1MACRO(SHA256SIG1,0x10301013)
ASM1MACRO(SHA256SUM0,0x10001013)
ASM1MACRO(SHA256SUM1,0x10101013)
FUN1(sha256sig0,SHA256SIG0)
FUN1(sha256sig1,SHA256SIG1)
FUN1(sha256sum0,SHA256SUM0)

View file

@ -61,12 +61,12 @@ asm("#define reg_t6 31\n");
return r; \
}
ASM2MACRO(SHA512SIG0L,0x1000702b)
ASM2MACRO(SHA512SIG0H,0x1200702b)
ASM2MACRO(SHA512SIG1L,0x1400702b)
ASM2MACRO(SHA512SIG1H,0x1600702b)
ASM2MACRO(SHA512SUM0R,0x1800702b)
ASM2MACRO(SHA512SUM1R,0x1a00702b)
ASM2MACRO(SHA512SIG0L,0x54000033)
ASM2MACRO(SHA512SIG0H,0x5c000033)
ASM2MACRO(SHA512SIG1L,0x56000033)
ASM2MACRO(SHA512SIG1H,0x5e000033)
ASM2MACRO(SHA512SUM0R,0x50000033)
ASM2MACRO(SHA512SUM1R,0x52000033)
FUN2(sha512sig0l, SHA512SIG0L)
FUN2(sha512sig0h, SHA512SIG0H)
FUN2(sha512sig1l, SHA512SIG1L)