diff options
author | Lassi Tuura <lat@cern.ch> | 2011-03-31 23:47:20 -0700 |
---|---|---|
committer | Arun Sharma <asharma@fb.com> | 2011-04-01 00:00:39 -0700 |
commit | 5f38f35d5d6c78aafa6da20845d9ceff74af00f8 (patch) | |
tree | f2d1f0dd3ad2bc2fdb21bc981fe9e6b3c6f44e7e /include/tdep-mips | |
parent | 50bc12afba900c478d5d760966ef5b6f32229c99 (diff) | |
download | libunwind-5f38f35d5d6c78aafa6da20845d9ceff74af00f8.tar.gz |
Drop a call frame in tdep_trace and avoid a call to unw_step.
Dropping the extra frame for unw_backtrace itself using unw_step is
approximately 15% slower than skipping the frame in tdep_trace. So
drop the frame in the latter, and make the function a private
implementation detail for libunwind, not an exported interface.
Also moves unw_getcontext call back into unw_backtrace to avoid an
extra call frame in case slow_backtrace does not get inlined into
unw_backtrace.
Diffstat (limited to 'include/tdep-mips')
-rw-r--r-- | include/tdep-mips/libunwind_i.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/tdep-mips/libunwind_i.h b/include/tdep-mips/libunwind_i.h index 2e6fc4fd..17876d54 100644 --- a/include/tdep-mips/libunwind_i.h +++ b/include/tdep-mips/libunwind_i.h @@ -39,6 +39,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "mempool.h" #include "dwarf.h" +typedef struct + { + /* no mips-specific fast trace */ + } +unw_tdep_frame_t; + struct unw_addr_space { struct unw_accessors acc; @@ -283,6 +289,7 @@ dwarf_put (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t val) #define tdep_cache_frame(c,rs) do {} while(0) #define tdep_reuse_frame(c,rs) do {} while(0) #define tdep_stash_frame(c,rs) do {} while(0) +#define tdep_trace(cur,addr,n) (-UNW_ENOINFO) #ifdef UNW_LOCAL_ONLY # define tdep_find_proc_info(c,ip,n) \ |