Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/mips/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  mips-r2-to-r6-emul.h   Sprache: C

 
/*
 * 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) 2014 Imagination Technologies Ltd.
 * Author: Markos Chandras <markos.chandras@imgtec.com>
 */


#ifndef __ASM_MIPS_R2_TO_R6_EMUL_H
#define __ASM_MIPS_R2_TO_R6_EMUL_H

struct mips_r2_emulator_stats {
 u64 movs;
 u64 hilo;
 u64 muls;
 u64 divs;
 u64 dsps;
 u64 bops;
 u64 traps;
 u64 fpus;
 u64 loads;
 u64 stores;
 u64 llsc;
 u64 dsemul;
};

struct mips_r2br_emulator_stats {
 u64 jrs;
 u64 bltzl;
 u64 bgezl;
 u64 bltzll;
 u64 bgezll;
 u64 bltzall;
 u64 bgezall;
 u64 bltzal;
 u64 bgezal;
 u64 beql;
 u64 bnel;
 u64 blezl;
 u64 bgtzl;
};

#ifdef CONFIG_DEBUG_FS

#define MIPS_R2_STATS(M)      \
do {         \
 u32 nir;       \
 int err;       \
         \
 preempt_disable();      \
 __this_cpu_inc(mipsr2emustats.M);    \
 err = __get_user(nir, (u32 __user *)regs->cp0_epc);  \
 if (!err) {       \
  if (nir == BREAK_MATH(0))    \
   __this_cpu_inc(mipsr2bdemustats.M);  \
 }        \
 preempt_enable();      \
while (0)

#define MIPS_R2BR_STATS(M)     \
do {        \
 preempt_disable();     \
 __this_cpu_inc(mipsr2bremustats.M);   \
 preempt_enable();     \
while (0)

#else

#define MIPS_R2_STATS(M)          do { } while (0)
#define MIPS_R2BR_STATS(M)        do { } while (0)

#endif /* CONFIG_DEBUG_FS */

struct r2_decoder_table {
 u32     mask;
 u32     code;
 int     (*func)(struct pt_regs *regs, u32 inst);
};


extern void do_trap_or_bp(struct pt_regs *regs, unsigned int code, int si_code,
     const char *str);

#ifndef CONFIG_MIPSR2_TO_R6_EMULATOR
static int mipsr2_emulation;
static inline int mipsr2_decoder(struct pt_regs *regs, u32 inst,
     unsigned long *fcr31)
{
 return 0;
};
#else
/* MIPS R2 Emulator ON/OFF */
extern int mipsr2_emulation;
extern int mipsr2_decoder(struct pt_regs *regs, u32 inst,
     unsigned long *fcr31);
#endif /* CONFIG_MIPSR2_TO_R6_EMULATOR */

#define NO_R6EMU (cpu_has_mips_r6 && !mipsr2_emulation)

#endif /* __ASM_MIPS_R2_TO_R6_EMUL_H */

Messung V0.5
C=87 H=64 G=75

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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.