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

1122 commits

Author SHA1 Message Date
(none)!davidm
cfdd6ece84 Include architecture-specific header file first and then define
various other types and constants based on it.
(unw_error_t): A UNW_EINVAL, UNW_EBADVERSION, and UNW_ENOINFO.
(unw_frame_regnum_t): Instead of hardcoding the numbers for the
	well-known frame registers, use the architecture-specific
	(target-dependent) values instead.

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
7820abd977 Include "offsets.h" to get offsets for various structures (such
as sigcontext).  Adjust for the fact that the RSE arithmetic
is now done on values of type unw_word_t rather than long pointers.

(ia64_scratch_loc): Rename from ia64_get_sigcontext() and expand
	it such that it returns a scratch register location if
	the current frame is not a sigcontext frame.
(ia64_access_reg): Read the address of the personality routine with
	ia64_get() rather than trying to dereference the address
	directly.  When writing the IP or the PR, update the cached
	values, too.

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
3790561497 Include "offsets.h" instead of <signal.h> to enable cross-compilation.
Use offsets defined in this file instead of calculating the offsets
from sigcontext structure.

(update_frame_state): Rename from ia64_get_frame_state() and make it
static and inlined.

(unw_step): Call update_frame_state() instead of ia64_get_frame_state().

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
172cc2ba9b If UNW_REMOTE_ONLY is defined, make unw_init_local() a stub that
unconditionally returns -UNW_EINVAL.

(access_reg): IP is now read via UNW_IA64_IP (instead of
	UNW_IA64_BR+0).  CFM is now read via UNW_IA64_CFM
	instead of UNW_IA64_AR_PFS.  For UNW_IA64_AR_BSP
	(and UNW_IA64_AR_BSPSTORE), adjust the pointer so
	that it points to the first stacked register in
	the current frame.
(resume): "rp_loc" has been renamed to "ip_loc".
(unw_init_local): Add an #error directive to prevent compilation
	with UNW_LOCAL_ONLY until this case has been implemented.

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
7c934e9308 For now, add #error directive to ensure compilation fails when
attempting to compile with UNW_LOCAL_ONLY.

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
79106f9923 Fine-tune the API for remote-unwinding support. Fix up the
implementation to support cross-compilation (e.g., to build the
IA-64 unwinder on x86).

BKrev: 3c76bf1dI_YzKWI7-5-E3JJ_fhW7mg
2002-02-22 21:58:53 +00:00
(none)!davidm
fb5ed0d939 Compile only if UNW_REMOTE_ONLY is not defined.
(get_kernel_table): Return -UNW_ENOMEM if unable to allocate buffer
	for kernel's unwind info.  Initialize the start and end
	members in unw_ia64_table_t.
(callback): Initialize the start and end members.

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
4588bf926d Build only if UNW_REMOTE_ONLY is not defined.
(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
fcb6a7d272 Build bt and exc programs only during native builds.
(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
f275c38236 Added src/Makefile.bak src/ia64/init.o src/ia64/offsets.h~ src/ia64/parser.o src/ia64/regs.o src/ia64/script.o src/ia64/unw_get_reg.o src/ia64/unw_init_local.o src/ia64/unw_init_remote.o src/ia64/unw_resume.o src/ia64/unw_set_reg.o src/ia64/unw_step.o src/libunwind.a to the ignore list
(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
cd66944a2c (unw_tdep_word_t): New type.
(ia64_regnum_t): Define well-known frame registers here and add
	TDEP-aliases for use by libunwind.h.
(unw_ia64_table_t): Use unw_tdep_word_t instead of unw_word_t so this
	file can be included by libunwind.h.
	Change type of "array" member to void *.  On OSes that support
	ILP32, it may point to a 32-bit unwind table.

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
5cdb197f44 (unw_init_remote): Rename from ia64_init_remote(). Initialize
cfm_loc with UNW_IA64_CFM.  Initialize bspstore_loc with
	UNW_IA64_AR_BSPSTORE.  Renamem rp_loc to ip_loc and initialize
	with UNW_IA64_IP.  Initialized the cached values of
	PR and IP.  Initialize sp and psp to value in UNW_IA64_SP.
	Initialize exception handling args by reading the corresponding
	scratch registers (r15-r18).  If the read fails, initialize
	with 0.  Finish by calling ia64_get_proc_info() instead of
	ia64_get_frame_state().

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
dffc24cb9f (compile_reg): Use IA64_INSN_MOVE_SCRATCH instead of
IA64_INSN_MOVE_SIGCONTEXT.
(run_script): Drop IA64_INSN_MOVE_SIGCONTEXT.  Implement
	IA64_INSN_MOVE_SCRATCH by calling ia64_scratch_loc().

(Logical change 1.5)
2002-02-22 21:58:53 +00:00
(none)!davidm
73c10de341 (Logical change 1.5) 2002-02-22 21:58:53 +00:00
mostang.com!davidm
0e254786c6 Update ia64 specific NOTES.
BKrev: 3c6d9f009AHscjNje1WJ1Ui9FdJtsQ
2002-02-15 23:51:28 +00:00
mostang.com!davidm
444b815950 Clarify comment about proc_info.
(Logical change 1.4)
2002-02-15 23:51:28 +00:00
mostang.com!davidm
7fbfe0a255 (Logical change 1.3) 2002-02-15 23:22:05 +00:00
mostang.com!davidm
63669f7ad4 Initial revision 2002-02-15 23:22:05 +00:00
mostang.com!davidm
6d8fc3bc30 Initial checkin into bitkeeper.
BKrev: 3c6d981dR_x2wQyXJUe60wYU-j17Aw
2002-02-15 23:22:05 +00:00
mostang.com!davidm
5de8126b0d Initial repository create
BKrev: 3c6d515aBUQMglrIzL_V-dcSBCH1Hw
2002-02-15 18:20:10 +00:00
mostang.com!davidm
eafd2dddcc (Logical change 1.2) 2002-02-15 18:20:10 +00:00
mostang.com!davidm
42b1c29373 Initial revision 2002-02-15 18:20:10 +00:00