1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-05 17:24:30 +01:00
Commit graph

1361 commits

Author SHA1 Message Date
hp.com!davidm
37d99c0c9f Initial revision 2003-02-22 03:08:22 +00:00
hp.com!davidm
ea34cc2bee (uc_off): Remove (it wasn't used anymore).
(Logical change 1.53)
2003-02-22 03:08:22 +00:00
hp.com!davidm
2b0b48fd8a (remote_install_cursor): Implement it.
(Logical change 1.53)
2003-02-22 03:08:22 +00:00
hp.com!davidm
1d36e97333 (TESTS_arch): Replace ia64-test-rbs with Gia64-test-rbs and
Lia64-test-rbs.
(TESTS_cdep): Replace test-exc, test-resume-sig, and test-dyn1 with
	G (generic) and L (local-only) variants.
(Lia64_test_rbs_SOURCES): Rename from ia64_test_rbs_SOURCES.
(Gia64_test_rbs_SOURCES): New macro.
(Lia64_test_stack_SOURCES): Rename from ia64_test_stack_SOURCES.
(Gia64_test_stack_SOURCES): New macro.

(Logical change 1.53)
2003-02-22 03:08:22 +00:00
mostang.com!davidm
b49a5f35e1 Regenerate.
(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
84bdbf814d Fix ia64 code to use the same modular-arithmetic based test to determine whether
or not a given address is part of a register-backing store.  This test is implemented
by rbs_contains().

Fix and greatly simplify ia64 rbs-switching code.  ia64-test-rbs now passes
100,000 iterations of random testing.

BKrev: 3e55d6farvnB-gMiDPTFoO1XVBzEtA
2003-02-21 07:36:26 +00:00
mostang.com!davidm
88c6bcd794 Add note that unw_resume() does NOT execute unwind-handlers (personality-routines).
(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
f0c37e1652 (unwind_and_resume): Correct argument printing.
(run_check): Limit unwind_count to range 1..(nfuncs+RECURSION_DEPTH).
	Fix off-by-one but that counter-acted a bug in ia64-test-rbs-asm.S.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
c341225693 (struct cursor): Remove rbs_right_edge.
(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
cb4fb05032 (rotate_gr): Only print debug info if size-of-rotating-partition is non-zero.
(rotate_fr): Only print debug info if rotation-base is non-zero.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
749cd25529 (rbs_underflow): Remove.
(rbs_contains): New function.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
0d0c84f63c (rbs_switch): Rename from rbs_record_switch() and greatly simplify it because
we now switch to the new backing-store immediately.
(rbs_underflow): Remove.
(rbs_find_stacked): No longer assume that c->bsp is contained in the current
	rbs.  If it is not, first find the backing-store that's backing c->bsp.
(rbs_cover_and_flush): Use rbs_contains() instead of (broken) open code.
	Handle the case where the initial bsp points to an RNaT slot.

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
8a621f78ff (common_init): Drop initialization of c->rbs_right_edge.
Initialize size of first rbs_area[] to 1<<63 so that we can maintain
	a notion of "above" and "below".

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
77821808ab (check_rbs_switch): Mark it as "inline". Make rbs_record_switch() the last call.
(update_frame_state): Remove conditional call to rbs_underflow().

(Logical change 1.52)
2003-02-21 07:36:26 +00:00
mostang.com!davidm
4d5c375d34 Fix an off-by-one bug in ia64-test-rbs-asm.S.
BKrev: 3e5518c3r3fTJWpLxBVdJoya8Mkm2g
2003-02-20 18:04:51 +00:00
mostang.com!davidm
0d89914d4e (rbs_spill_N): Fix off-by-one bug in indexing into next_func[].
(Logical change 1.51)
2003-02-20 18:04:51 +00:00
mostang.com!davidm
6af90d0df4 Regenerate.
(Logical change 1.50)
2003-02-15 08:53:55 +00:00
mostang.com!davidm
80866c48fd Regenerate built files.
BKrev: 3e4e0023Hp_Z9ojofV3zSlDNXv7gvg
2003-02-15 08:53:55 +00:00
mostang.com!davidm
edf42f2db5 Up version number to 0.3.
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm
ff7880fde8 Merge bk://unwind@bkbits.net/libunwind
into panda.mostang.com:/data/home/davidm/src/unwind/libunwind

2003/02/15 00:49:49-08:00 mostang.com!davidm
Fix unw_resume() some more.  Getting there, slowly.  tests/ia64-test-rbs doesn't
pass fully yet, but it's getting quite far already.


BKrev: 3e4dff33_NzEt_iH9gpn6Sexm7Fngg
2003-02-15 08:49:55 +00:00
mostang.com!davidm
fb1997ff0a Add include of "ia64-test-rbs.h".
(NELEMS): New macro.
(RECURSION_DEPTH): Fix definition: loadup() allocates 93 local regs, not 95.
(spill_func_t): Make it return an "int".
(DCL): Adjust accordingly.
(verbose): New variable.
(nerrors): Make it an "int".
(unwind_count): Ditto.
(unwind_and_resume): Make it return an int.  Print info-output only if verbose is
	set.  After unwinding to the desired point, redirect IP to
	resumption_point_label and store return value in EH_ARG0 and original
	IP in EH_ARG1.
(run_check): New function.
(main): Remove open test code and call run_check() instead.

(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm
d8023cf208 (unw_set_caching_policy): Call ia64_init() first if necessary.
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm
71ab0b2a3c (rbs_spill_NN): If r8 is non-negative on return from subroutine-call, increment it
by one.  Take care of restoring the dirty partition before switching back
	to original backing store.
(LD_LOC): Load only 4 bytes, not 8 bytes.
(CK_LOC): New macro.
(loadup): ar.pfs is saved in r36, not r34.  After returning from subroutine call,
	check local variables to make sure they still contain the correct values.
(resumption_point): New function.

(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm
d55a7f7dd4 (rbs_cover_and_flush): Also update c->rnat_loc as needed.
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm
b8c178177a (ia64_local_resume): Remove unused variable "loadrs".
(Logical change 1.49)
2003-02-15 08:49:55 +00:00
mostang.com!davidm
44a825a3d5 (TEST_arch): Put ia64-test-stack first.
(TESTS): Put $(TESTS_arch) first.

(Logical change 1.49)
2003-02-15 08:49:55 +00:00
hp.com!davidm
eb44c3a6d5 Move include of ia64intrin.h after include of "unwind_i.h".
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm
0cf429d971 More cross-compile bugfixes.
BKrev: 3e4dafa6l-AS3Rzo_-mJZQTszUp8rQ
2003-02-15 03:10:30 +00:00
hp.com!davidm
ad066d35b7 Do nothing of UNW_REMOTE_ONLY is defined.
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm
cd6b1537ce (unwi_get_proc_name): If UNW_REMOTE_ONLY is defined and the procedure
isn't a dynamically generated one, just punt and return
	-UNW_ENOINFO.

(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm
89344cf672 (local_find_proc_info): Define only if not UNW_REMOTE_ONLY.
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm
a45c88823a (likely): Make them work even for non-GCC (or old GCC) compilers.
(unlikely): Ditto.
(debug): Print to stderr.
(dprintf): Ditto.

(Logical change 1.48)
2003-02-15 03:10:30 +00:00
hp.com!davidm
7fd45d122c (create_state_record_for): Use dprintf(), not printf().
(Logical change 1.48)
2003-02-15 03:10:30 +00:00
mostang.com!davidm
70ee73612e Minor reformatting to make it fit in 80 cols.
(get_rnat): New function.
(rbs_cover_and_flush): Ditto.


(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm
b05848b2aa Merge bk://unwind@bkbits.net/libunwind
into panda.mostang.com:/data/home/davidm/src/unwind/libunwind

2003/02/13 22:22:00-08:00 mostang.com!davidm
Make unw_resume() work on ia64 even when the register backing store of the frame
being resumed is scattered across multiple backing store areas.

BKrev: 3e4c8be0eOFftTsWIstwNwHfb0wKdQ
2003-02-14 06:25:36 +00:00
mostang.com!davidm
894b96b95a (Logical change 1.47) 2003-02-14 06:25:36 +00:00
mostang.com!davidm
9b16424457 Initial revision 2003-02-14 06:25:36 +00:00
mostang.com!davidm
5cef5934e8 Auto merged
2003/02/13 22:21:59-08:00 mostang.com!davidm
(libunwind_la_SOURCES_ia64): Mention elf64.h.

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm
32a1dc6be5 (rbs_cover_and_flush): Declare.
(_Uia64_install_context): Drop loadrs argument from declaration.

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm
02c8c0cdae (ia64_local_resume): Use rbs_cover_and_flush() to linearize the contents of the
current register frame before resuming execution.  Drop loadrs argument
	from call to _Uia64_install_context().

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm
03f6e9b004 (_Uia64_install_context): Drop "loadrs" argument and adjust code accordingly.
(Logical change 1.47)
2003-02-14 06:25:36 +00:00
mostang.com!davidm
508348e693 (TESTS_arch): Mention ia64-test-rbs.
(ia64_test_rbs_SOURCES): New macro.

(Logical change 1.47)
2003-02-14 06:25:36 +00:00
hp.com!davidm
4dca76319d [REMOTE_ONLY]: Mention dummy "install-exec-hook".
(libunwind_la_SOURCES_cdep): Mention dyn-cancel.c and dyn-register.c.
(libunwind_la_SOURCES_common): Remove dyn-cancel.c and dyn-register.c

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm
74f568c602 Regenerate.
(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm
49f992ac07 Mention !UNW_REMOTE_ONLY on #else branch.
(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm
0aa53387e3 Fix cross-building (UNW_REMOTE_ONLY).
BKrev: 3e4c5de7AVRE9jFQVcwdQSDsiTq5rw
2003-02-14 03:09:27 +00:00
hp.com!davidm
7372c6cc43 (unw_flush_cache): Only uses __sync_fetch_and_add() if
HAVE_IA64INTRIN_H is defined.  Otherwise, do non-atomic
	increment (and issue compile-time warning about it).

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm
3980b80e26 (is_local_addr_space): Always return 0 for UNW_REMOTE_ONLY.
(_Uia64_search_unwind_table): Add a cast to avoid compiler-warning
	when cross-compiling from a 32-bit platform.

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm
d7c5192ef8 (ia64_init): Don't call _Uia64_local_addr_space_init() or
_ULia64_local_addr_space_init() for UNW_REMOTE_ONLY.

(Logical change 1.46)
2003-02-14 03:09:27 +00:00
hp.com!davidm
ec91b0fce5 (get_unwind_info): Remove unused arguments "pi" and "need_unwind_info".
(__UPT_find_proc_info): Adjust get_unwind_info() call accordingly.

(Logical change 1.46)
2003-02-14 03:09:27 +00:00