diff options
Diffstat (limited to 'arch/mips/include')
| -rw-r--r-- | arch/mips/include/asm/fpu_emulator.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/arch/mips/include/asm/fpu_emulator.h b/arch/mips/include/asm/fpu_emulator.h index e5189572956c..aecada6f6117 100644 --- a/arch/mips/include/asm/fpu_emulator.h +++ b/arch/mips/include/asm/fpu_emulator.h | |||
| @@ -25,17 +25,27 @@ | |||
| 25 | 25 | ||
| 26 | #include <asm/break.h> | 26 | #include <asm/break.h> |
| 27 | #include <asm/inst.h> | 27 | #include <asm/inst.h> |
| 28 | #include <asm/local.h> | ||
| 29 | |||
| 30 | #ifdef CONFIG_DEBUG_FS | ||
| 28 | 31 | ||
| 29 | struct mips_fpu_emulator_stats { | 32 | struct mips_fpu_emulator_stats { |
| 30 | unsigned int emulated; | 33 | local_t emulated; |
| 31 | unsigned int loads; | 34 | local_t loads; |
| 32 | unsigned int stores; | 35 | local_t stores; |
| 33 | unsigned int cp1ops; | 36 | local_t cp1ops; |
| 34 | unsigned int cp1xops; | 37 | local_t cp1xops; |
| 35 | unsigned int errors; | 38 | local_t errors; |
| 36 | }; | 39 | }; |
| 37 | 40 | ||
| 38 | extern struct mips_fpu_emulator_stats fpuemustats; | 41 | DECLARE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats); |
| 42 | |||
| 43 | #define MIPS_FPU_EMU_INC_STATS(M) \ | ||
| 44 | cpu_local_wrap(__local_inc(&__get_cpu_var(fpuemustats).M)) | ||
| 45 | |||
| 46 | #else | ||
| 47 | #define MIPS_FPU_EMU_INC_STATS(M) do { } while (0) | ||
| 48 | #endif /* CONFIG_DEBUG_FS */ | ||
| 39 | 49 | ||
| 40 | extern int mips_dsemul(struct pt_regs *regs, mips_instruction ir, | 50 | extern int mips_dsemul(struct pt_regs *regs, mips_instruction ir, |
| 41 | unsigned long cpc); | 51 | unsigned long cpc); |
