VexRiscvBPluginGenerator/new_instructions_support_b.h

34 lines
846 B
C

#ifndef __NEW_INSTRUCTION_SUPPORT_B_H__
#define __NEW_INSTRUCTION_SUPPORT_B_H__
#include <rvintrin.h> // assume we're using the B toolchain
#include "new_instructions_support.h" // for support macros
// for instructions currently missing in the toolchain
ASM2MACRO(XPERM_N,0x28002033)
ASM2MACRO(XPERM_B,0x28004033)
ASM2MACRO(XPERM_H,0x28006033)
ASM2MACRO(_SH1ADD,0x20002033)
ASM2MACRO(_SH2ADD,0x20004033)
ASM2MACRO(_SH3ADD,0x20006033)
FUN2(xperm_n,XPERM_N)
FUN2(xperm_b,XPERM_B)
FUN2(xperm_h,XPERM_H)
FUN2(_sh1add,_SH1ADD)
FUN2(_sh2add,_SH2ADD)
FUN2(_sh3add,_SH3ADD)
#ifdef ENABLE_XAR
ASM3RMACRO(XAR, 0xc8000077)
FUN3R(__rv__xar, XAR)
#endif
#ifdef ENABLE_CHACHA
ASM3RMACRO(CHACHA16,0xa0000077)
ASM3RMACRO(CHACHA12,0xa8000077)
ASM3RMACRO(CHACHA8, 0xb0000077)
ASM3RMACRO(CHACHA7, 0xb8000077)
#endif
#endif // __NEW_INSTRUCTION_SUPPORT_B_H__