1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-06-29 04:31:45 +02:00
Commit graph

1749 commits

Author SHA1 Message Date
mostang.com!davidm 2fc4fd6e48 ia64: Rewrite NaT-bit handling for the 3rd time (must be a charm!).
The previous version was OK for all but one corner case.
	The new version uses slightly more space in the cursor
	(4 extra bytes) but on the other hand, the final result is
	both much more easier to understand and likely faster.
	It also seems more correct, which is always a bonus.

BKrev: 403f05c1TMcVYiNdYmb4S5hSOVJkfw
2004-02-27 08:54:25 +00:00
mostang.com!davidm 23dd2c4c4a Update.
(Logical change 1.181)
2004-02-27 08:54:25 +00:00
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