diff options
Diffstat (limited to 'sys/sparc64/sparc64/support.s')
-rw-r--r-- | sys/sparc64/sparc64/support.s | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/sys/sparc64/sparc64/support.s b/sys/sparc64/sparc64/support.s index 405d813..68cf714 100644 --- a/sys/sparc64/sparc64/support.s +++ b/sys/sparc64/sparc64/support.s @@ -585,7 +585,23 @@ ENTRY(openfirmware_exit) ! never to return END(openfirmware_exit) -#ifdef GUPROF +#ifdef GPROF + +ENTRY(user) + nop + +ENTRY(btrap) + nop + +ENTRY(etrap) + nop + +ENTRY(bintr) + nop + +ENTRY(eintr) + nop + /* * XXX including sys/gmon.h in genassym.c is not possible due to uintfptr_t @@ -595,10 +611,10 @@ END(openfirmware_exit) #define GMON_PROF_OFF 3 #define GMON_PROF_HIRES 4 - _ALIGN_TEXT - .globl __cyg_profile_func_enter - .type __cyg_profile_func_enter,@function -__cyg_profile_func_enter: + .globl _mcount + .set _mcount, __cyg_profile_func_enter + +ENTRY(__cyg_profile_func_enter) SET(_gmonparam, %o3, %o2) lduw [%o2 + GM_STATE], %o3 cmp %o3, GMON_PROF_OFF @@ -609,12 +625,11 @@ __cyg_profile_func_enter: nop 1: retl nop - .size __cyg_profile_func_enter, . - __cyg_profile_func_enter +END(__cyg_profile_func_enter) - _ALIGN_TEXT - .globl __cyg_profile_func_exit - .type __cyg_profile_func_exit,@function -__cyg_profile_func_exit: +#ifdef GUPROF + +ENTRY(__cyg_profile_func_exit) SET(_gmonparam, %o3, %o2) lduw [%o2 + GM_STATE], %o3 cmp %o3, GMON_PROF_HIRES @@ -625,21 +640,8 @@ __cyg_profile_func_exit: nop 1: retl nop - .size __cyg_profile_func_exit, . - __cyg_profile_func_exit - -ENTRY(user) - nop - -ENTRY(btrap) - nop +END(__cyg_profile_func_exit) -ENTRY(etrap) - nop - -ENTRY(bintr) - nop - -ENTRY(eintr) - nop +#endif /* GUPROF */ -#endif +#endif /* GPROF */ |