Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _OPCODES_H
0003 #define _OPCODES_H
0004 
0005 #define SPARC_CR_OPCODE_PRIORITY    300
0006 
0007 #define F3F(x,y,z)  (((x)<<30)|((y)<<19)|((z)<<5))
0008 
0009 #define FPD_ENCODE(x)   (((x) >> 5) | ((x) & ~(0x20)))
0010 
0011 #define RS1(x)      (FPD_ENCODE(x) << 14)
0012 #define RS2(x)      (FPD_ENCODE(x) <<  0)
0013 #define RS3(x)      (FPD_ENCODE(x) <<  9)
0014 #define RD(x)       (FPD_ENCODE(x) << 25)
0015 #define IMM5_0(x)   ((x)           <<  0)
0016 #define IMM5_9(x)   ((x)           <<  9)
0017 
0018 #define CRC32C(a,b,c)   \
0019     .word       (F3F(2,0x36,0x147)|RS1(a)|RS2(b)|RD(c));
0020 
0021 #define MD5     \
0022     .word   0x81b02800;
0023 #define SHA1        \
0024     .word   0x81b02820;
0025 #define SHA256      \
0026     .word   0x81b02840;
0027 #define SHA512      \
0028     .word   0x81b02860;
0029 
0030 #define AES_EROUND01(a,b,c,d)   \
0031     .word   (F3F(2, 0x19, 0)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0032 #define AES_EROUND23(a,b,c,d)   \
0033     .word   (F3F(2, 0x19, 1)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0034 #define AES_DROUND01(a,b,c,d)   \
0035     .word   (F3F(2, 0x19, 2)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0036 #define AES_DROUND23(a,b,c,d)   \
0037     .word   (F3F(2, 0x19, 3)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0038 #define AES_EROUND01_L(a,b,c,d) \
0039     .word   (F3F(2, 0x19, 4)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0040 #define AES_EROUND23_L(a,b,c,d) \
0041     .word   (F3F(2, 0x19, 5)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0042 #define AES_DROUND01_L(a,b,c,d) \
0043     .word   (F3F(2, 0x19, 6)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0044 #define AES_DROUND23_L(a,b,c,d) \
0045     .word   (F3F(2, 0x19, 7)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0046 #define AES_KEXPAND1(a,b,c,d)   \
0047     .word   (F3F(2, 0x19, 8)|RS1(a)|RS2(b)|IMM5_9(c)|RD(d));
0048 #define AES_KEXPAND0(a,b,c) \
0049     .word   (F3F(2, 0x36, 0x130)|RS1(a)|RS2(b)|RD(c));
0050 #define AES_KEXPAND2(a,b,c) \
0051     .word   (F3F(2, 0x36, 0x131)|RS1(a)|RS2(b)|RD(c));
0052 
0053 #define DES_IP(a,b)     \
0054     .word       (F3F(2, 0x36, 0x134)|RS1(a)|RD(b));
0055 #define DES_IIP(a,b)        \
0056     .word       (F3F(2, 0x36, 0x135)|RS1(a)|RD(b));
0057 #define DES_KEXPAND(a,b,c)  \
0058     .word       (F3F(2, 0x36, 0x136)|RS1(a)|IMM5_0(b)|RD(c));
0059 #define DES_ROUND(a,b,c,d)  \
0060     .word       (F3F(2, 0x19, 0x009)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0061 
0062 #define CAMELLIA_F(a,b,c,d)     \
0063     .word       (F3F(2, 0x19, 0x00c)|RS1(a)|RS2(b)|RS3(c)|RD(d));
0064 #define CAMELLIA_FL(a,b,c)      \
0065     .word       (F3F(2, 0x36, 0x13c)|RS1(a)|RS2(b)|RD(c));
0066 #define CAMELLIA_FLI(a,b,c)     \
0067     .word       (F3F(2, 0x36, 0x13d)|RS1(a)|RS2(b)|RD(c));
0068 
0069 #define MOVDTOX_F0_O4       \
0070     .word   0x99b02200
0071 #define MOVDTOX_F2_O5       \
0072     .word   0x9bb02202
0073 #define MOVXTOD_G1_F60      \
0074     .word   0xbbb02301
0075 #define MOVXTOD_G1_F62      \
0076     .word   0xbfb02301
0077 #define MOVXTOD_G3_F4       \
0078     .word   0x89b02303;
0079 #define MOVXTOD_G7_F6       \
0080     .word   0x8db02307;
0081 #define MOVXTOD_G3_F0       \
0082     .word   0x81b02303;
0083 #define MOVXTOD_G7_F2       \
0084     .word   0x85b02307;
0085 #define MOVXTOD_O0_F0       \
0086     .word   0x81b02308;
0087 #define MOVXTOD_O5_F0       \
0088     .word   0x81b0230d;
0089 #define MOVXTOD_O5_F2       \
0090     .word   0x85b0230d;
0091 #define MOVXTOD_O5_F4       \
0092     .word   0x89b0230d;
0093 #define MOVXTOD_O5_F6       \
0094     .word   0x8db0230d;
0095 #define MOVXTOD_G3_F60      \
0096     .word   0xbbb02303;
0097 #define MOVXTOD_G7_F62      \
0098     .word   0xbfb02307;
0099 
0100 #endif /* _OPCODES_H */