1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-12-25 12:33:42 +01:00
Commit graph

1688 commits

Author SHA1 Message Date
mostang.com!davidm
96c6250626 Include <memory.h>.
(MB): New macro.
(big): New array.
(measure_unwind): Don't try to measure "init" step---it's too fast.
(f1): Likewise.
(doit): Likewise.
(sum): New function.
(measure_init): Measure unw_getcontext() and unw_local_init() here.
(main): Call measure_init(), adjust labels for doit() calls.

(Logical change 1.190)
2004-03-27 09:25:58 +00:00
mostang.com!davidm
a77f17b0b7 (GR): New macro.
(BR): Likewise.
(FR): Likewise.
(_Uia64_getcontext): Tweak for slightly better cold-cache performance.

(Logical change 1.190)
2004-03-27 09:25:58 +00:00
mostang.com!davidm
1fdf615440 ia64: Fix _Uia64_get_kernel_table() so it makes some sense again.
BKrev: 406520dfMyS2Sh2WRYl_kJ19YUUVXA
2004-03-27 06:36:15 +00:00
mostang.com!davidm
cb9fde199b (_Uia64_get_kernel_table): Fix it so it actually makes some sense
again.

(Logical change 1.189)
2004-03-27 06:36:15 +00:00
hp.com!davidm
62e1a936e7 ia64: Fix memory-leak in _Uia64_get_kernel_table(). Found by Todd Miller.
BKrev: 4064d824Y5ClYKU2K71nDBr-fBeunw
2004-03-27 01:25:56 +00:00
hp.com!davidm
53a56cb759 (_Uia64_get_kernel_table): Only call get_kernel_table() if we do not already
have the kernel table.

(Logical change 1.188)
2004-03-27 01:25:56 +00:00
hp.com!davidm
e8be590f3d Regenerate.
(Logical change 1.187)
2004-03-20 09:57:46 +00:00
hp.com!davidm
2f6778284c Regenerate tests/Makefile.in.
BKrev: 405c159aP_r69LsKn0PwJjcCmpN6wA
2004-03-20 09:57:46 +00:00
mostang.com!davidm
f258588d43 ia64: Fix a typo in dynamic unwind info parsing.
Tune unw_getcontext() & unw_init_local() performance a bit.

BKrev: 405c14d4qPrk41JhHWuZ5C-boL7wyA
2004-03-20 09:54:28 +00:00
mostang.com!davidm
81570a9980 Update.
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
2a302e5148 Regenerate.
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
c7fdc72fd6 Make number of iterations controllable via the second command-line
argument.
(gettime): Use clock_gettime() instead of gettimeofday() to get
	(potentially) better resolution.

(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
89b3ee87a9 (Logical change 1.186) 2004-03-20 09:54:28 +00:00
mostang.com!davidm
412615853d Initial revision 2004-03-20 09:54:28 +00:00
mostang.com!davidm
a1ce4c307e (unw_tdep_getcontext): Direct it to UNW_ARCH_OBJ(getcontext).
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
70b89e24f3 (uc_addr): Move to unwind_i.h.
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
c8dfaca5a0 (par_dynamic): Fix typo in call to ia64_free_state_record().
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
0c923f12b0 (libunwind_la_SOURCES_ia64): Mention getcontext-ia64.S.
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
76b4736bde (inlined_uc_addr): New function.
(uc_addr): Moved to here from Ginit-ia64.c and added a special
	case when the register is constant.
(IA64_REG_LOC): Use uc_addr() instead of tdep_uc_addr().
(IA64_REG_NAT_LOC): Likewise.
(IA64_FPREG_LOC): Likewise.

(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
bd286e3260 (ia64_install_cursor): Correct NEW_SYSCALL-stub.
(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
756aefe909 (common_init): Mark it as ALWAYS_INLINE. Spell out initialization
of F16-F31 so they can be inlined in the local case.

(Logical change 1.186)
2004-03-20 09:54:28 +00:00
mostang.com!davidm
8e8fe50029 (Lperf_simple_LDADD): Mention -lrt.
(Gperf_simple_LDADD): Likewise.

(Logical change 1.186)
2004-03-20 09:54:28 +00:00
hp.com!davidm
ab5eac6c8b ia64: Fix a typo which caused the case to fail in which primary UNaT
got saved in a register only.

BKrev: 405be46bD2GM2Sn0MbuRw6UVLgQzMg
2004-03-20 06:27:55 +00:00
hp.com!davidm
fc7cd7c4bc Whitespace fix.
(Logical change 1.185)
2004-03-20 06:27:55 +00:00
hp.com!davidm
5071803e5d (save_static_to_mem2): New function.
(save_static_to_mem3): Likewise.
(save_static_to_mem4): Likewise.
(save_static_to_mem5): Likewise.
(save_static_to_scratch): Save f4 to f6 to improve test coverage.

(Logical change 1.185)
2004-03-20 06:27:55 +00:00
hp.com!davidm
61d42ccf66 (check_static_to_memN): New function.
(check_static_to_mem2): Likewise.
(check_static_to_mem3): Likewise.
(check_static_to_mem4): Likewise.
(check_static_to_mem5): Likewise.

(Logical change 1.185)
2004-03-20 06:27:55 +00:00
hp.com!davidm
d8715c0e28 (build_script): Fix typo which caused case to fail where primary UNaT
was saved in a register only.

(Logical change 1.185)
2004-03-20 06:27:55 +00:00
mostang.com!davidm
a2b8866fb3 ia64: Remove erroneous calls to rotate_gr() during script-execution.
Fix NaT-bit handling test-case involving rotated regs.

BKrev: 405aace43GdnidC9YEnxvj_7mchwFg
2004-03-19 08:18:44 +00:00
mostang.com!davidm
eed0c54d28 (run_script): Remove erroneous calls to rotate_gr(). The unwind
directives specify physical stacked register numbers and
	the register-backing store always represents physical
	registers, so it was wrong to rotate here.

(Logical change 1.184)
2004-03-19 08:18:44 +00:00
mostang.com!davidm
18d33f37d5 (check_rotate_regs): Return adjust "vals"; add a printf() in verbose
mode.

(Logical change 1.184)
2004-03-19 08:18:44 +00:00
mostang.com!davidm
96d2898321 (CALL_NEXT_PTR): Like CALL_NEXT(), except that the two argument
registers are passed via macro args.
(CALL_NEXT): Define in terms of CALL_NEXT_PTR().
(rotate_regs): Fix it so it doesn't overwrite any local registers
	once they are rotated.  Note: it's OK to write the output
	registers, since those are outside of the rotating partition.

(Logical change 1.184)
2004-03-19 08:18:44 +00:00
hp.com!davidm
d5dc7dc613 ia64: Fix another NaT-bit handling bug and add another NaT-bit test.
BKrev: 405a5d2fyigOPpAdJoNUeFVEnihufQ
2004-03-19 02:38:39 +00:00
hp.com!davidm
77a27f0baf Update with rotation-test.
(Logical change 1.183)
2004-03-19 02:38:39 +00:00
hp.com!davidm
f59f60f9ce Tweak debug-levels a bit.
(Logical change 1.183)
2004-03-19 02:38:39 +00:00
hp.com!davidm
43db353753 (access_nat): Check for fp-location first and also do a direct get/put if
the NaT-location is a NaT-register.

(Logical change 1.183)
2004-03-19 02:38:39 +00:00
hp.com!davidm
94b71a1cd8 (LOAD_VAL): Use p15 instead of p6 so we don't step on save_static_to_scratch().
(flushrs): New function.
(rotate_regs): Likewise.


(Logical change 1.183)
2004-03-19 02:38:39 +00:00
hp.com!davidm
f46a44b1f9 ia64: Plug nasty memory leak: neither unw_is_signal_frame() nor
the dynamic unwind info parser freed the state-record after
	they were done using it.

BKrev: 405a5c6flXEaxgjCMPAVGCDU-bSg2Q
2004-03-19 02:35:27 +00:00
hp.com!davidm
e2b1175c3c (unw_is_signal_frame): Don't forget to call ia64_free_state_record() after
we're done with the state-record.

(Logical change 1.182)
2004-03-19 02:35:27 +00:00
hp.com!davidm
2cdea99143 (parse_dynamic): Free old state-record before creating new one.
(Logical change 1.182)
2004-03-19 02:35:27 +00:00
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