Signed-off-by: Dmitry Chestnykh dm.chestnykh@gmail.com --- test/tls/tls-macros-mips.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+)
diff --git a/test/tls/tls-macros-mips.h b/test/tls/tls-macros-mips.h index eed0938..bd4c5c4 100644 --- a/test/tls/tls-macros-mips.h +++ b/test/tls/tls-macros-mips.h @@ -1,7 +1,40 @@ /* Macros to support TLS testing in times of missing compiler support. */
#include <sys/cdefs.h> +#if defined(__has_include) && __has_include(<sys/asm.h>) #include <sys/asm.h> +#else + +#define __STRING(x) #x + +#if ((_MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _ABI32) && _MIPS_SZPTR == 32) +#define PTR_ADDIU addiu +#define PTR_L lw +#endif + +#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _NABI32 + +#if !defined __mips_isa_rev || __mips_isa_rev < 6 +#define PTR_ADDU add +#define PTR_ADDIU addi +#else +#define PTR_ADDU addu +#define PTR_ADDIU addiu +#endif + +#define PTR_L lw +#endif + +#if ((_MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _ABI32) && _MIPS_SZPTR == 64) \ + || _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _ABIN32 + +#define PTR_ADDU daddu +#define PTR_ADDIU daddiu +#define PTR_L ld + +#endif + +#endif
#define __STRING2(X) __STRING(X) #define ADDU __STRING2(PTR_ADDU)