|
@@ -266,3 +266,144 @@ symbol = value
|
|
|
#define INT_SRA sra
|
|
|
#define INT_SRAV srav
|
|
|
#endif
|
|
|
+
|
|
|
+#if (_MIPS_SZINT == 64)
|
|
|
+#define INT_ADD dadd
|
|
|
+#define INT_ADDU daddu
|
|
|
+#define INT_ADDI daddi
|
|
|
+#define INT_ADDIU daddiu
|
|
|
+#define INT_SUB dsub
|
|
|
+#define INT_SUBU dsubu
|
|
|
+#define INT_L ld
|
|
|
+#define INT_S sd
|
|
|
+#define INT_SLL dsll
|
|
|
+#define INT_SLLV dsllv
|
|
|
+#define INT_SRL dsrl
|
|
|
+#define INT_SRLV dsrlv
|
|
|
+#define INT_SRA dsra
|
|
|
+#define INT_SRAV dsrav
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * How to add/sub/load/store/shift C long variables.
|
|
|
+ */
|
|
|
+#if (_MIPS_SZLONG == 32)
|
|
|
+#define LONG_ADD add
|
|
|
+#define LONG_ADDU addu
|
|
|
+#define LONG_ADDI addi
|
|
|
+#define LONG_ADDIU addiu
|
|
|
+#define LONG_SUB sub
|
|
|
+#define LONG_SUBU subu
|
|
|
+#define LONG_L lw
|
|
|
+#define LONG_S sw
|
|
|
+#define LONG_SLL sll
|
|
|
+#define LONG_SLLV sllv
|
|
|
+#define LONG_SRL srl
|
|
|
+#define LONG_SRLV srlv
|
|
|
+#define LONG_SRA sra
|
|
|
+#define LONG_SRAV srav
|
|
|
+
|
|
|
+#define LONG .word
|
|
|
+#define LONGSIZE 4
|
|
|
+#define LONGMASK 3
|
|
|
+#define LONGLOG 2
|
|
|
+#endif
|
|
|
+
|
|
|
+#if (_MIPS_SZLONG == 64)
|
|
|
+#define LONG_ADD dadd
|
|
|
+#define LONG_ADDU daddu
|
|
|
+#define LONG_ADDI daddi
|
|
|
+#define LONG_ADDIU daddiu
|
|
|
+#define LONG_SUB dsub
|
|
|
+#define LONG_SUBU dsubu
|
|
|
+#define LONG_L ld
|
|
|
+#define LONG_S sd
|
|
|
+#define LONG_SLL dsll
|
|
|
+#define LONG_SLLV dsllv
|
|
|
+#define LONG_SRL dsrl
|
|
|
+#define LONG_SRLV dsrlv
|
|
|
+#define LONG_SRA dsra
|
|
|
+#define LONG_SRAV dsrav
|
|
|
+
|
|
|
+#define LONG .dword
|
|
|
+#define LONGSIZE 8
|
|
|
+#define LONGMASK 7
|
|
|
+#define LONGLOG 3
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * How to add/sub/load/store/shift pointers.
|
|
|
+ */
|
|
|
+#if (_MIPS_SZPTR == 32)
|
|
|
+#define PTR_ADD add
|
|
|
+#define PTR_ADDU addu
|
|
|
+#define PTR_ADDI addi
|
|
|
+#define PTR_ADDIU addiu
|
|
|
+#define PTR_SUB sub
|
|
|
+#define PTR_SUBU subu
|
|
|
+#define PTR_L lw
|
|
|
+#define PTR_S sw
|
|
|
+#define PTR_LA la
|
|
|
+#define PTR_LI li
|
|
|
+#define PTR_SLL sll
|
|
|
+#define PTR_SLLV sllv
|
|
|
+#define PTR_SRL srl
|
|
|
+#define PTR_SRLV srlv
|
|
|
+#define PTR_SRA sra
|
|
|
+#define PTR_SRAV srav
|
|
|
+
|
|
|
+#define PTR_SCALESHIFT 2
|
|
|
+
|
|
|
+#define PTR .word
|
|
|
+#define PTRSIZE 4
|
|
|
+#define PTRLOG 2
|
|
|
+#endif
|
|
|
+
|
|
|
+#if (_MIPS_SZPTR == 64)
|
|
|
+#define PTR_ADD dadd
|
|
|
+#define PTR_ADDU daddu
|
|
|
+#define PTR_ADDI daddi
|
|
|
+#define PTR_ADDIU daddiu
|
|
|
+#define PTR_SUB dsub
|
|
|
+#define PTR_SUBU dsubu
|
|
|
+#define PTR_L ld
|
|
|
+#define PTR_S sd
|
|
|
+#define PTR_LA dla
|
|
|
+#define PTR_LI dli
|
|
|
+#define PTR_SLL dsll
|
|
|
+#define PTR_SLLV dsllv
|
|
|
+#define PTR_SRL dsrl
|
|
|
+#define PTR_SRLV dsrlv
|
|
|
+#define PTR_SRA dsra
|
|
|
+#define PTR_SRAV dsrav
|
|
|
+
|
|
|
+#define PTR_SCALESHIFT 3
|
|
|
+
|
|
|
+#define PTR .dword
|
|
|
+#define PTRSIZE 8
|
|
|
+#define PTRLOG 3
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * Some cp0 registers were extended to 64bit for MIPS III.
|
|
|
+ */
|
|
|
+#if (_MIPS_SIM == _MIPS_SIM_ABI32)
|
|
|
+#define MFC0 mfc0
|
|
|
+#define MTC0 mtc0
|
|
|
+#endif
|
|
|
+#if (_MIPS_SIM == _MIPS_SIM_NABI32) || (_MIPS_SIM == _MIPS_SIM_ABI64)
|
|
|
+#define MFC0 dmfc0
|
|
|
+#define MTC0 dmtc0
|
|
|
+#endif
|
|
|
+
|
|
|
+#define SSNOP sll zero, zero, 1
|
|
|
+
|
|
|
+#ifdef CONFIG_SGI_IP28
|
|
|
+/* Inhibit speculative stores to volatile (e.g.DMA) or invalid addresses. */
|
|
|
+#include <asm/cacheops.h>
|
|
|
+#define R10KCBARRIER(addr) cache Cache_Barrier, addr;
|
|
|
+#else
|
|
|
+#define R10KCBARRIER(addr)
|
|
|
+#endif
|
|
|
+
|
|
|
+#endif /* __ASM_ASM_H */
|