]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/linux-26-headers/include/asm-mips/asmmacro.h
Inital import
[l4.git] / l4 / pkg / linux-26-headers / include / asm-mips / asmmacro.h
diff --git a/l4/pkg/linux-26-headers/include/asm-mips/asmmacro.h b/l4/pkg/linux-26-headers/include/asm-mips/asmmacro.h
new file mode 100644 (file)
index 0000000..7a88175
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 2003 Ralf Baechle
+ */
+#ifndef _ASM_ASMMACRO_H
+#define _ASM_ASMMACRO_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_enable_hazard
+       .endm
+
+       .macro  local_irq_disable reg=t0
+       mfc0    \reg, CP0_STATUS
+       ori     \reg, \reg, 1
+       xori    \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
+
+       .macro  EMT     reg=0
+       .word   0x41600be1 | (\reg << 16)
+       .endm
+
+       .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 /* _ASM_ASMMACRO_H */