Logo Search packages:      
Sourcecode: linux version File versions

asmmacro.h

/*
 * 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 */

Generated by  Doxygen 1.6.0   Back to index