#ifndef _BITS_COMPILER_H #define _BITS_COMPILER_H FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); /** Dummy relocation type */ #define RELOC_TYPE_NONE R_RISCV_NONE /* Determine load/store instructions for natural bit width */ #if __riscv_xlen == 128 #define NATURAL_SUFFIX q #elif __riscv_xlen == 64 #define NATURAL_SUFFIX d #elif __riscv_xlen == 32 #define NATURAL_SUFFIX w #else #error "Unsupported bit width" #endif #ifdef ASSEMBLY #define LOADN _C2 ( L, NATURAL_SUFFIX ) #define STOREN _C2 ( S, NATURAL_SUFFIX ) #else #define LOADN "L" _S2 ( NATURAL_SUFFIX ) #define STOREN "S" _S2 ( NATURAL_SUFFIX ) #endif #ifndef ASSEMBLY /** Unprefixed constant operand modifier */ #define ASM_NO_PREFIX "" /** Declare a function with standard calling conventions */ #define __asmcall /** Declare a function with libgcc implicit linkage */ #define __libgcc #endif /* ASSEMBLY */ #endif /* _BITS_COMPILER_H */