18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _OPCODES_H 38c2ecf20Sopenharmony_ci#define _OPCODES_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#define SPARC_CR_OPCODE_PRIORITY 300 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#define F3F(x,y,z) (((x)<<30)|((y)<<19)|((z)<<5)) 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#define FPD_ENCODE(x) (((x) >> 5) | ((x) & ~(0x20))) 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#define RS1(x) (FPD_ENCODE(x) << 14) 128c2ecf20Sopenharmony_ci#define RS2(x) (FPD_ENCODE(x) << 0) 138c2ecf20Sopenharmony_ci#define RS3(x) (FPD_ENCODE(x) << 9) 148c2ecf20Sopenharmony_ci#define RD(x) (FPD_ENCODE(x) << 25) 158c2ecf20Sopenharmony_ci#define IMM5_0(x) ((x) << 0) 168c2ecf20Sopenharmony_ci#define IMM5_9(x) ((x) << 9) 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci#define CRC32C(a,b,c) \ 198c2ecf20Sopenharmony_ci .word (F3F(2,0x36,0x147)|RS1(a)|RS2(b)|RD(c)); 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#define MD5 \ 228c2ecf20Sopenharmony_ci .word 0x81b02800; 238c2ecf20Sopenharmony_ci#define SHA1 \ 248c2ecf20Sopenharmony_ci .word 0x81b02820; 258c2ecf20Sopenharmony_ci#define SHA256 \ 268c2ecf20Sopenharmony_ci .word 0x81b02840; 278c2ecf20Sopenharmony_ci#define SHA512 \ 288c2ecf20Sopenharmony_ci .word 0x81b02860; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#define AES_EROUND01(a,b,c,d) \ 318c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 0)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 328c2ecf20Sopenharmony_ci#define AES_EROUND23(a,b,c,d) \ 338c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 1)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 348c2ecf20Sopenharmony_ci#define AES_DROUND01(a,b,c,d) \ 358c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 2)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 368c2ecf20Sopenharmony_ci#define AES_DROUND23(a,b,c,d) \ 378c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 3)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 388c2ecf20Sopenharmony_ci#define AES_EROUND01_L(a,b,c,d) \ 398c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 4)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 408c2ecf20Sopenharmony_ci#define AES_EROUND23_L(a,b,c,d) \ 418c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 5)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 428c2ecf20Sopenharmony_ci#define AES_DROUND01_L(a,b,c,d) \ 438c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 6)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 448c2ecf20Sopenharmony_ci#define AES_DROUND23_L(a,b,c,d) \ 458c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 7)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 468c2ecf20Sopenharmony_ci#define AES_KEXPAND1(a,b,c,d) \ 478c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 8)|RS1(a)|RS2(b)|IMM5_9(c)|RD(d)); 488c2ecf20Sopenharmony_ci#define AES_KEXPAND0(a,b,c) \ 498c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x130)|RS1(a)|RS2(b)|RD(c)); 508c2ecf20Sopenharmony_ci#define AES_KEXPAND2(a,b,c) \ 518c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x131)|RS1(a)|RS2(b)|RD(c)); 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci#define DES_IP(a,b) \ 548c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x134)|RS1(a)|RD(b)); 558c2ecf20Sopenharmony_ci#define DES_IIP(a,b) \ 568c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x135)|RS1(a)|RD(b)); 578c2ecf20Sopenharmony_ci#define DES_KEXPAND(a,b,c) \ 588c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x136)|RS1(a)|IMM5_0(b)|RD(c)); 598c2ecf20Sopenharmony_ci#define DES_ROUND(a,b,c,d) \ 608c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 0x009)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci#define CAMELLIA_F(a,b,c,d) \ 638c2ecf20Sopenharmony_ci .word (F3F(2, 0x19, 0x00c)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 648c2ecf20Sopenharmony_ci#define CAMELLIA_FL(a,b,c) \ 658c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x13c)|RS1(a)|RS2(b)|RD(c)); 668c2ecf20Sopenharmony_ci#define CAMELLIA_FLI(a,b,c) \ 678c2ecf20Sopenharmony_ci .word (F3F(2, 0x36, 0x13d)|RS1(a)|RS2(b)|RD(c)); 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci#define MOVDTOX_F0_O4 \ 708c2ecf20Sopenharmony_ci .word 0x99b02200 718c2ecf20Sopenharmony_ci#define MOVDTOX_F2_O5 \ 728c2ecf20Sopenharmony_ci .word 0x9bb02202 738c2ecf20Sopenharmony_ci#define MOVXTOD_G1_F60 \ 748c2ecf20Sopenharmony_ci .word 0xbbb02301 758c2ecf20Sopenharmony_ci#define MOVXTOD_G1_F62 \ 768c2ecf20Sopenharmony_ci .word 0xbfb02301 778c2ecf20Sopenharmony_ci#define MOVXTOD_G3_F4 \ 788c2ecf20Sopenharmony_ci .word 0x89b02303; 798c2ecf20Sopenharmony_ci#define MOVXTOD_G7_F6 \ 808c2ecf20Sopenharmony_ci .word 0x8db02307; 818c2ecf20Sopenharmony_ci#define MOVXTOD_G3_F0 \ 828c2ecf20Sopenharmony_ci .word 0x81b02303; 838c2ecf20Sopenharmony_ci#define MOVXTOD_G7_F2 \ 848c2ecf20Sopenharmony_ci .word 0x85b02307; 858c2ecf20Sopenharmony_ci#define MOVXTOD_O0_F0 \ 868c2ecf20Sopenharmony_ci .word 0x81b02308; 878c2ecf20Sopenharmony_ci#define MOVXTOD_O5_F0 \ 888c2ecf20Sopenharmony_ci .word 0x81b0230d; 898c2ecf20Sopenharmony_ci#define MOVXTOD_O5_F2 \ 908c2ecf20Sopenharmony_ci .word 0x85b0230d; 918c2ecf20Sopenharmony_ci#define MOVXTOD_O5_F4 \ 928c2ecf20Sopenharmony_ci .word 0x89b0230d; 938c2ecf20Sopenharmony_ci#define MOVXTOD_O5_F6 \ 948c2ecf20Sopenharmony_ci .word 0x8db0230d; 958c2ecf20Sopenharmony_ci#define MOVXTOD_G3_F60 \ 968c2ecf20Sopenharmony_ci .word 0xbbb02303; 978c2ecf20Sopenharmony_ci#define MOVXTOD_G7_F62 \ 988c2ecf20Sopenharmony_ci .word 0xbfb02307; 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci#endif /* _OPCODES_H */ 101