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

1847 commits

Author SHA1 Message Date
mostang.com!davidm
1c00cf562e (unw_tdep_save_loc): Add new member "nat_bitnr". Define the
other 7 bytes (which were always there in unw_save_loc_t due
	to padding) as reserved for future use.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
7c7bcebcc0 (unw_get_save_loc): New variable "nat_bitnr".
Adjust NaT-bit handling.  Much simpler now.
	Pass NULL as new third argument to ia64_scratch_loc().
	Set save_loc->extra.nat_bitnr to the NaT bit number (or 0
	when not accessing a NaT bit).

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
ebe6b21c93 (uc_addr): Add "nat_bitnr"-pointer argument. Handle preserved
NaT-bit registers.
(tdep_uc_addr): Add "nat_bitnr"-pointer argument.
(access_reg): Pass NULL as third argument to uc_addr().
(access_fpreg): Likewise.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
7356cf80a5 (struct cursor): Add member "nat_bitnr".
(tdep_uc_addr): Add (optional) nat_bitnr pointer argument.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
5de460718c (remote_install_cursor): Pass NULL to third argument of
tdep_uc_addr().

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
41db5ace19 (rbs_find): Delete---it's no longer needed.
(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
50488aece3 (linux_scratch_loc): Add "nat_bitnr"-pointer argument.
Handle NaT-bit registers by returning not just the
	NaT-word address, but also the NaT-bit number.
(hpux_scratch_loc): Add "nat_bitnr"-pointer argument.
(ia64_scratch_loc): Likewise.
(access_nat): Add "nat_bitnr" argument.  Rename "loc" to "nat_loc".
	Greatly simplify now that we have the NaT-word and the
	NaT bit-number readily available.
(access_reg): Pass NaT-bit number to access_nat().
	Handle scratch NaT-bit registers in a more generic fashion,
	now that we can.  Adjust all calls to ia64_scratch_loc() for
	third argument.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
9316bbb8f4 (enum ia64_script_insn_opcode): Moved to here from script.h.
Added operations IA64_INSN_ADD_PSP_NAT, IA64_INSN_ADD_SP_NAT,
	IA64_INSN_MOVE_NAT, IA64_INSN_MOVE_NO_NAT,
	IA64_INSN_MOVE_STACKED_NAT, IA64_INSN_MOVE_STACKED_NAT,
	IA64_INSN_MOVE_SCRATCH_NAT, and IA64_INSN_MOVE_SCRATCH_NO_NAT.
(emit_nat_info): Remove---it's no longer needed.
(compile_reg): Emit special op-codes when compiling a preserved
	static register, such that it's NaT-info can be updated.
(set_nat_info): New function.
(run_script): Implement new script instructions.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
50f7edcce5 (enum ia64_script_insn_opcode): Move Gscript-ia64.c.
(IA64_MAX_SCRIPT_LEN): Lower it by 4 since we no longer need separate
	instructions to update the NaT locations.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
fcb151f6ec (common_init): Initialize NaT-bit locations via IA64_REG_NAT_LOC()
macros.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
mostang.com!davidm
be1d46b41c (IA64_REG_LOC): Pass NULL as third argument to tdep_uc_addr().
(IA64_FPREG_LOC): Likewise.
(IA64_REG_NAT_LOC): New macro to describe a NaT-bit register location.
(rbs_find): Remove declaration.

(Logical change 1.181)
2004-02-27 08:54:25 +00:00
hp.com!davidm
253fabee2c ia64: Fix minor typo and delete extraneous macro.
BKrev: 403e96bakn0TpEq4xcJpmeOzsDwHbQ
2004-02-27 01:00:42 +00:00
hp.com!davidm
a0f46f2a2b Fix typo in comment.
(IA64_LOC_UC_REG): Remove from the UNW_LOCAL_ONLY case.

(Logical change 1.180)
2004-02-27 01:00:42 +00:00
hp.com!davidm
daaa6b34da ia64: Add a new check which tests the handling of NaT bits in scratch registers.
BKrev: 403e967d1c8IoeBBOgMrslF99FJbHw
2004-02-27 00:59:41 +00:00
hp.com!davidm
ad73ee3a77 Add include of <errno.h>, <string.h>, and <asm/rse.h>.
(save_static_to_scratch): New declaration.
(sighandler): New function.
(check_static_to_scratch): Likewise.
(enable_sighandler): Likewise.
(disable_sighandler): Likewise.
(check-static_to_stacked): Fix missing newline in error message.
(start_checks): Call disable_sighandler().
	Fix missing newline error messages.
(run_check): Call enable_sighandler() right before starting the checks.
(main): Fix missing newline in message.

(Logical change 1.179)
2004-02-27 00:59:41 +00:00
hp.com!davidm
1f3439fc5d (save_static_to_scratch): New routine.
(Logical change 1.179)
2004-02-27 00:59:41 +00:00
hp.com!davidm
af8e32060d ia64: Fix primary-UNaT handling.
BKrev: 403e95432t13LFJ3IBmgnj7yz-bsVg
2004-02-27 00:54:27 +00:00
hp.com!davidm
d83276cb80 (compile_reg): Take extra ia64_reg_info-pointer argument.
(build_script): Adjust for extra argument to compile_reg().
	Fix the primary-NaT compilation such that it always
	updates IA64_REGPRI_UNAT_MEM.
(run_script): For IA64_INSN_SETNET_MEMSTK, set the location based on
	IA64_REG_PRI_UNAT_MEM and don't forget to turn on the
	MEMSTK_NAT bit.

(Logical change 1.178)
2004-02-27 00:54:27 +00:00
hp.com!davidm
c4d1b80bfe (access_nat): Fix that NaT-location calculation for the case where the NaT
is on the memory stack.

(Logical change 1.178)
2004-02-27 00:54:27 +00:00
hp.com!davidm
8d735e0c76 ia64: Fix typo which caused bad floating-point NaTVal constant and
bad integer-values inside floating-point registers.

BKrev: 403e9349svM_lIBxzyOsvz-gwyhZ7Q
2004-02-27 00:46:01 +00:00
hp.com!davidm
6702d1059c (tdep_init): Fix typo in nat_val_bytes[] (too much cut & paste).
Likewise for int_val_bytes[].

(Logical change 1.177)
2004-02-27 00:46:01 +00:00
hp.com!davidm
09a59ec368 ia64: Fix bug where chains of saves/spills got updated in the wrong order.
This fixes failures observed in Gia64-test-nat.c:check_static_to_mem().

BKrev: 40355cfaFrIUB5TqttoCC9BtNyPniQ
2004-02-20 01:03:54 +00:00
hp.com!davidm
3e5b6ecf0d (sort_regs): New function.
(build_script): Compile the registers in decreasing order of WHEN values, so
	we can properly handle chains of spills/saves.

(Logical change 1.176)
2004-02-20 01:03:54 +00:00
mostang.com!davidm
d2db9d02a9 ia64: Add two NaT-bit checks: saving to branch registers and memory.
BKrev: 40346e47RyrlUAzPMSHLAVu5eimeTg
2004-02-19 08:05:27 +00:00
mostang.com!davidm
a2a1325c9f Fix copyright year and update file-comment.
(save_static_to_fr): Rename from save_static_to_fpreg().
(check_static_to_fr): Rename from check_static_to_fpreg().
(save_static_to_br): Declare.
(check_static_to_br): New function.
(save_static_to_mem): Declare.
(check_static_to_mem): New function.
(all_funcs): Mention new save/checks.

(Logical change 1.175)
2004-02-19 08:05:27 +00:00
mostang.com!davidm
a5ed5ae3b7 (LOAD_VAL): New macro.
(save_static_to_stacked): Use LOAD_VAL.
(save_static_to_fr): Rename from save_static_to_fpreg().
(save_static_to_br): New function.
(save_static_to_mem): Likewise.

(Logical change 1.175)
2004-02-19 08:05:27 +00:00
mostang.com!davidm
d2a5a239aa (ptrace): Fix Debug() typo in _UPT_access_mem().
BKrev: 40346d70MBpuSr58I_9R9ajLbakHrA
2004-02-19 08:01:52 +00:00
mostang.com!davidm
84109794bd (_UPT_access_mem): Fix typo in Debug() macro calls.
(Logical change 1.174)
2004-02-19 08:01:52 +00:00
hp.com!davidm
37e3f4fb50 ia64: Fix a bug which caused the NaT bit failures when a static register got
saved in a stacked register.  This fixes failures observed in
	Gia64-test-nat.c:check_static_stacked() .

BKrev: 403413570MEjRvwKAH0J3d7iQoUVcg
2004-02-19 01:37:27 +00:00
hp.com!davidm
8b96f6ef11 (rbs_find): New function.
(Logical change 1.173)
2004-02-19 01:37:27 +00:00
hp.com!davidm
57b8d6d7eb (rbs_find): Declare.
(Logical change 1.173)
2004-02-19 01:37:27 +00:00
hp.com!davidm
4a0d7bd478 (access_nat): Correct the case where a static general register got saved
to a stacked register.  We can't use ia64_get_stacked() here because
	c->rbs will, in general, be different from the frame in which the
	register was saved.

(Logical change 1.173)
2004-02-19 01:37:27 +00:00
hp.com!davidm
7aa9c37cc1 ia64: Fix off-by-1 error which caused fp-register access failures.
BKrev: 40341290goIcuIC9tcle6dhz1xqXQg
2004-02-19 01:34:08 +00:00
hp.com!davidm
90a9f62a8c (compile_reg): Fix off-by-1 error for case IA64_WHERE_FR. This makes
Gia64-test-nat.c:check_static_to_fpreg() work.

(Logical change 1.172)
2004-02-19 01:34:08 +00:00
hp.com!davidm
f2273f5463 ia64: Add a new NaT test-case which checks that static registers saved
into fp-registers get handled properly.

BKrev: 4034122btwIvJLpSfEXoPuEtxhKt5w
2004-02-19 01:32:27 +00:00
hp.com!davidm
330d2b5129 (all_funcs): Mention static_to_fpreg test & check.
(check_static_to_fpreg): New function.
(run_check): In verbose mode, print the run number.

(Logical change 1.171)
2004-02-19 01:32:27 +00:00
hp.com!davidm
c5b3064c05 (CALL_NEXT): New macro.
(save_static_to_fpreg): New function.

(Logical change 1.171)
2004-02-19 01:32:27 +00:00
hp.com!davidm
a2b6982cfd ia64: Adjust debug level for access_mem() and regenerate Makefile.in.
BKrev: 403411a5EsJukND9UYr_zvwl2dZJFQ
2004-02-19 01:30:13 +00:00
hp.com!davidm
907bac3434 Regenerate.
(Logical change 1.170)
2004-02-19 01:30:13 +00:00
hp.com!davidm
5216609e29 (access_mem): Lower the debug level to 12, to be in sync with access_reg().
(Logical change 1.170)
2004-02-19 01:30:13 +00:00
mostang.com!davidm
12a941b1ba ia64: Yesterday's fix for emit_nat_info() wasn't quite correct. Fix
it.

BKrev: 402ea98bNuI0HnTke9QLnb6rH0_7tg
2004-02-14 23:04:43 +00:00
mostang.com!davidm
d3a82ba5e8 (emit_nat_info): i is a preserved register number.
Correct accordingly.

(Logical change 1.169)
2004-02-14 23:04:43 +00:00
mostang.com!davidm
1ac893cbab ia64: Initial prototype of a test-program that checks correctness
of NaT-bit handling.

BKrev: 402dd3fbK4gRw6Fq4A5Cs03-iGW8Rg
2004-02-14 07:53:31 +00:00
mostang.com!davidm
05a9101485 (Logical change 1.168) 2004-02-14 07:53:31 +00:00
mostang.com!davidm
a49786f031 Initial revision 2004-02-14 07:53:31 +00:00
mostang.com!davidm
66482c4494 Add copyright message.
(Logical change 1.168)
2004-02-14 07:53:31 +00:00
mostang.com!davidm
899323c996 (check_PROGRAMS_arch): Mention Gia64-test-nat and Lia64-test-nat.
(Lia64_test_nat_SOURCES): New macro.
(Gia64_test_nat_SOURCES): Likewise.

(Logical change 1.168)
2004-02-14 07:53:31 +00:00
mostang.com!davidm
321094feff ia64: Fix a typo which could cause a segv when a general register
got spilled into memory.  Reported by Jerry Harrow.

BKrev: 402dd38f7oamRp0odWsVm7yPa6xnAg
2004-02-14 07:51:43 +00:00
mostang.com!davidm
7b23d69a26 (emit_nat_info): Fix a typo: the destination must be a NaT-register!
(Logical change 1.167)
2004-02-14 07:51:43 +00:00
mostang.com!davidm
7956b79d8a ia64: Add some Debug() statements for easier tracing.
BKrev: 402dd31es7Kot28JwKhBQhD1Wrn0zQ
2004-02-14 07:49:50 +00:00