Changeset View
Changeset View
Standalone View
Standalone View
head/sys/i386/include/profile.h
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | __asm __volatile("pushl %0; call __mcount; popl %%ecx" \ | ||||
: "i" (label) \ | : "i" (label) \ | ||||
: "ax", "dx", "cx", "memory") | : "ax", "dx", "cx", "memory") | ||||
#define MEXITCOUNT_OVERHEAD() \ | #define MEXITCOUNT_OVERHEAD() \ | ||||
__asm __volatile("call .mexitcount; 1:" \ | __asm __volatile("call .mexitcount; 1:" \ | ||||
: : \ | : : \ | ||||
: "ax", "dx", "cx", "memory") | : "ax", "dx", "cx", "memory") | ||||
#define MEXITCOUNT_OVERHEAD_GETLABEL(labelp) \ | #define MEXITCOUNT_OVERHEAD_GETLABEL(labelp) \ | ||||
__asm __volatile("movl $1b,%0" : "=rm" (labelp)) | __asm __volatile("movl $1b,%0" : "=rm" (labelp)) | ||||
#elif defined(lint) | |||||
#define MCOUNT_OVERHEAD(label) | |||||
#define MEXITCOUNT_OVERHEAD() | |||||
#define MEXITCOUNT_OVERHEAD_GETLABEL() | |||||
#else | #else | ||||
#error | #error | ||||
#endif /* !__GNUCLIKE_ASM */ | #endif /* !__GNUCLIKE_ASM */ | ||||
#else /* !GUPROF */ | #else /* !GUPROF */ | ||||
#define MCOUNT_DECL(s) register_t s; | #define MCOUNT_DECL(s) register_t s; | ||||
#ifdef SMP | #ifdef SMP | ||||
extern int mcount_lock; | extern int mcount_lock; | ||||
#define MCOUNT_ENTER(s) { s = intr_disable(); \ | #define MCOUNT_ENTER(s) { s = intr_disable(); \ | ||||
▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines |