1#ifndef _OPCODES_H 2#define _OPCODES_H 3 4#define SPARC_CR_OPCODE_PRIORITY 300 5 6#define F3F(x,y,z) (((x)<<30)|((y)<<19)|((z)<<5)) 7 8#define FPD_ENCODE(x) (((x) >> 5) | ((x) & ~(0x20))) 9 10#define RS1(x) (FPD_ENCODE(x) << 14) 11#define RS2(x) (FPD_ENCODE(x) << 0) 12#define RS3(x) (FPD_ENCODE(x) << 9) 13#define RD(x) (FPD_ENCODE(x) << 25) 14#define IMM5_0(x) ((x) << 0) 15#define IMM5_9(x) ((x) << 9) 16 17#define CRC32C(a,b,c) \ 18 .word (F3F(2,0x36,0x147)|RS1(a)|RS2(b)|RD(c)); 19 20#define MD5 \ 21 .word 0x81b02800; 22#define SHA1 \ 23 .word 0x81b02820; 24#define SHA256 \ 25 .word 0x81b02840; 26#define SHA512 \ 27 .word 0x81b02860; 28 29#define AES_EROUND01(a,b,c,d) \ 30 .word (F3F(2, 0x19, 0)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 31#define AES_EROUND23(a,b,c,d) \ 32 .word (F3F(2, 0x19, 1)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 33#define AES_DROUND01(a,b,c,d) \ 34 .word (F3F(2, 0x19, 2)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 35#define AES_DROUND23(a,b,c,d) \ 36 .word (F3F(2, 0x19, 3)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 37#define AES_EROUND01_L(a,b,c,d) \ 38 .word (F3F(2, 0x19, 4)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 39#define AES_EROUND23_L(a,b,c,d) \ 40 .word (F3F(2, 0x19, 5)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 41#define AES_DROUND01_L(a,b,c,d) \ 42 .word (F3F(2, 0x19, 6)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 43#define AES_DROUND23_L(a,b,c,d) \ 44 .word (F3F(2, 0x19, 7)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 45#define AES_KEXPAND1(a,b,c,d) \ 46 .word (F3F(2, 0x19, 8)|RS1(a)|RS2(b)|IMM5_9(c)|RD(d)); 47#define AES_KEXPAND0(a,b,c) \ 48 .word (F3F(2, 0x36, 0x130)|RS1(a)|RS2(b)|RD(c)); 49#define AES_KEXPAND2(a,b,c) \ 50 .word (F3F(2, 0x36, 0x131)|RS1(a)|RS2(b)|RD(c)); 51 52#define DES_IP(a,b) \ 53 .word (F3F(2, 0x36, 0x134)|RS1(a)|RD(b)); 54#define DES_IIP(a,b) \ 55 .word (F3F(2, 0x36, 0x135)|RS1(a)|RD(b)); 56#define DES_KEXPAND(a,b,c) \ 57 .word (F3F(2, 0x36, 0x136)|RS1(a)|IMM5_0(b)|RD(c)); 58#define DES_ROUND(a,b,c,d) \ 59 .word (F3F(2, 0x19, 0x009)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 60 61#define CAMELLIA_F(a,b,c,d) \ 62 .word (F3F(2, 0x19, 0x00c)|RS1(a)|RS2(b)|RS3(c)|RD(d)); 63#define CAMELLIA_FL(a,b,c) \ 64 .word (F3F(2, 0x36, 0x13c)|RS1(a)|RS2(b)|RD(c)); 65#define CAMELLIA_FLI(a,b,c) \ 66 .word (F3F(2, 0x36, 0x13d)|RS1(a)|RS2(b)|RD(c)); 67 68#define MOVDTOX_F0_O4 \ 69 .word 0x99b02200 70#define MOVDTOX_F2_O5 \ 71 .word 0x9bb02202 72#define MOVXTOD_G1_F60 \ 73 .word 0xbbb02301 74#define MOVXTOD_G1_F62 \ 75 .word 0xbfb02301 76#define MOVXTOD_G3_F4 \ 77 .word 0x89b02303; 78#define MOVXTOD_G7_F6 \ 79 .word 0x8db02307; 80#define MOVXTOD_G3_F0 \ 81 .word 0x81b02303; 82#define MOVXTOD_G7_F2 \ 83 .word 0x85b02307; 84#define MOVXTOD_O0_F0 \ 85 .word 0x81b02308; 86#define MOVXTOD_O5_F0 \ 87 .word 0x81b0230d; 88#define MOVXTOD_O5_F2 \ 89 .word 0x85b0230d; 90#define MOVXTOD_O5_F4 \ 91 .word 0x89b0230d; 92#define MOVXTOD_O5_F6 \ 93 .word 0x8db0230d; 94#define MOVXTOD_G3_F60 \ 95 .word 0xbbb02303; 96#define MOVXTOD_G7_F62 \ 97 .word 0xbfb02307; 98 99#endif /* _OPCODES_H */ 100