/* * 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) 1995, 1996, 1997, 1999, 2001 by Ralf Baechle * Copyright (C) 1999 by Silicon Graphics, Inc. * Copyright (C) 2001 MIPS Technologies, Inc. * Copyright (C) 2002 Maciej W. Rozycki * * Some useful macros for MIPS assembler code * * Some of the routines below contain useless nops that will be optimized * away by gas in -O mode. These nops are however required to fill delay * slots in noreorder mode.
*/ #ifndef __ASM_ASM_H #define __ASM_ASM_H
#ifndef __VDSO__ /* * Emit CFI data in .debug_frame sections, not .eh_frame sections. * We don't do DWARF unwinding at runtime, so only the offline DWARF * information is useful to anyone. Note we should change this if we * ever decide to enable DWARF unwinding at runtime.
*/ #define CFI_SECTIONS .cfi_sections .debug_frame #else /* * For the vDSO, emit both runtime unwind information and debug * symbols for the .dbg file.
*/ #define CFI_SECTIONS #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
/* * Using a branch-likely instruction to check the result of an sc instruction * works around a bug present in R10000 CPUs prior to revision 3.0 that could * cause ll-sc sequences to execute non-atomically.
*/ #ifdef CONFIG_WAR_R10000_LLSC # define SC_BEQZ beqzl #elif !defined(CONFIG_CC_HAS_BROKEN_INLINE_COMPAT_BRANCH) && MIPS_ISA_REV >= 6 # define SC_BEQZ beqzc #else # define SC_BEQZ beqz #endif
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.