endianness annotations: rndis
[safe/jmp/linux-2.6] / include / asm-mips / asmmacro.h
index 40ceedc..7a88175 100644 (file)
@@ -7,17 +7,35 @@
  */
 #ifndef _ASM_ASMMACRO_H
 #define _ASM_ASMMACRO_H
-#include <linux/config.h>
+
 #include <asm/hazards.h>
+
 #ifdef CONFIG_32BIT
 #include <asm/asmmacro-32.h>
 #endif
 #ifdef CONFIG_64BIT
 #include <asm/asmmacro-64.h>
 #endif
+#ifdef CONFIG_MIPS_MT_SMTC
+#include <asm/mipsmtregs.h>
+#endif
 
+#ifdef CONFIG_MIPS_MT_SMTC
+       .macro  local_irq_enable reg=t0
+       mfc0    \reg, CP0_TCSTATUS
+       ori     \reg, \reg, TCSTATUS_IXMT
+       xori    \reg, \reg, TCSTATUS_IXMT
+       mtc0    \reg, CP0_TCSTATUS
+       _ehb
+       .endm
+
+       .macro  local_irq_disable reg=t0
+       mfc0    \reg, CP0_TCSTATUS
+       ori     \reg, \reg, TCSTATUS_IXMT
+       mtc0    \reg, CP0_TCSTATUS
+       _ehb
+       .endm
+#else
        .macro  local_irq_enable reg=t0
        mfc0    \reg, CP0_STATUS
        ori     \reg, \reg, 1
        mtc0    \reg, CP0_STATUS
        irq_disable_hazard
        .endm
+#endif /* CONFIG_MIPS_MT_SMTC */
+
+/*
+ * Temporary until all gas have MT ASE support
+ */
+       .macro  DMT     reg=0
+       .word   0x41600bc1 | (\reg << 16)
+       .endm
 
-#ifdef CONFIG_CPU_SB1
-       .macro  fpu_enable_hazard
-       .set    push
-       .set    noreorder
-       .set    mips2
-       SSNOP
-       bnezl   $0, .+4
-        SSNOP
-       .set    pop
+       .macro  EMT     reg=0
+       .word   0x41600be1 | (\reg << 16)
        .endm
-#else
-       .macro  fpu_enable_hazard
+
+       .macro  DVPE    reg=0
+       .word   0x41600001 | (\reg << 16)
+       .endm
+
+       .macro  EVPE    reg=0
+       .word   0x41600021 | (\reg << 16)
+       .endm
+
+       .macro  MFTR    rt=0, rd=0, u=0, sel=0
+        .word  0x41000000 | (\rt << 16) | (\rd << 11) | (\u << 5) | (\sel)
+       .endm
+
+       .macro  MTTR    rt=0, rd=0, u=0, sel=0
+        .word  0x41800000 | (\rt << 16) | (\rd << 11) | (\u << 5) | (\sel)
        .endm
-#endif
 
 #endif /* _ASM_ASMMACRO_H */