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

30 commits

Author SHA1 Message Date
hp.com!davidm 32dd2e2218 (compile_reg): Fix typo: treat f0 and f1 like scratch registers.
(Logical change 1.230)
2004-05-06 20:25:09 +00:00
mostang.com!davidm 513e7159bd Drop unnecessary include of "rse.h" (already included via unwind_i.h).
(Logical change 1.221)
2004-05-04 22:16:57 +00:00
(none)!davidm 1218cf85e3 (hash): Define magic constant as unsigned long long and then cast it to the
right type.  Avoids compiler warnings when cross-compiling from a
	32-bit platform.

(Logical change 1.214)
2004-04-23 01:31:47 +00:00
mostang.com!davidm 72e5a3bc17 (ia64_validate_cache): Call ia64_local_validate_cache() only if
we're really dealing with the local address space.  Duh.

(Logical change 1.209)
2004-04-21 07:24:35 +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 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 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
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 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
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
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 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
hp.com!davidm c67d345c33 Convert from debug() to Debug().
(Logical change 1.162)
2004-01-30 00:01:24 +00:00
hp.com!davidm 641b12427d (ia64_validate_cache): New function.
(Logical change 1.153)
2004-01-20 01:51:17 +00:00
mostang.com!davidm 47c25b753c (run_script): Drop left-over __builtin_expect() call.
(Logical change 1.138)
2003-12-05 06:42:28 +00:00
hp.com!davidm c7d965a9dc (put_script_cache): Replace "caching" with "as->caching" and delete
the former to avoid compiler-warnings.
(run_script): Before doing the big switch, check for most common
	case (IA64_INSN_MOVE_STACKED).

(Logical change 1.130)
2003-11-27 06:52:54 +00:00
hp.com!davidm 629d7d3263 (ia64_per_thread_cache): Initialize busy/lock member.
(get_script_cache): Return NULL if caching is disabled.  If
	HAVE_ATOMIC_OPS_H is defined, set the busy flag and if
	the script cache is busy already, return NULL.
(put_script_cache): Don't allow it to be called for UNW_CACHE_NONE case.
	If HAVE_ATOMIC_OPS_H is defined, clear the "busy" flag via
	AO_CLEAR.
(ia64_get_cached_proc_info): If we're unable to acquire the cache,
	return -UNW_ENOINFO.
(script_init): New function.
(script_new): Replace open code with call to script_init().
(uncached_find_save_locs): New function.
(ia64_find_save_locs): Move code for uncached case to
	uncached_find_save_locs().  If get_script_cache() is unable to
	lock the script-cache, fall back to uncached_find_save_locs().
(ia64_script_cache_init): Delete.

(Logical change 1.124)
2003-11-24 23:53:25 +00:00
hp.com!davidm ffb9c88e0a (ia64_find_save_locs): Separate out the no-cache case so we don't
acquire the script-cache lock needlessly.

(Logical change 1.122)
2003-11-24 18:35:43 +00:00
hp.com!davidm 2245be9d9b (get_script_cache): Need to disable signal-delivery even for per-thread
caching.
(put_script_cache): Need to re-enable signal-delivery even for
	per-thread caching.

(Logical change 1.118)
2003-11-22 06:21:26 +00:00
hp.com!davidm d0fddf5de8 (ia64_find_save_locs): Only call ia64_fetch_proc_info() when we really
have to (i.e., if we don't have cached info).  Otherwise,
	the unnecessary calls cause a performance regression.

(Logical change 1.102)
2003-09-24 21:56:42 +00:00
mostang.com!davidm b3c1bf3f75 (flush_script_cache): Drop addr_space_t argument. Initialize
hash-table, collision-chains, and hash-table in addition
	to clearing the script's IP value.  The latter wasn't nearly
	sufficient because it could cause loops on the collision
	chain...
(get_script_cache): Also lock the cache if global caching is in
	effect.  Take additional "saved_sigmaskp" argument.
	After flushing the cache, update the cache generation
	here.
(put_script_cache): New function.
(ia64_get_cached_proc_info): Adjust for get_script_cache() and
	put_script_cache() changes.
(ia64_find_save_locs): Ditto.
(ia64_script_cache_init): Call flush_script_cache() instead of
	opening-coding the equivalent code.

(Logical change 1.96)
2003-09-19 06:56:12 +00:00
mostang.com!davidm 46f5783f5d (ia64_find_save_locs): Call ia64_fetch_proc_info() early on and
bug out if it fails (before creating a new script).

(Logical change 1.95)
2003-09-18 06:09:22 +00:00
mostang.com!davidm 0b65016a37 (ia64_find_save_locs): Fix typo: check for -UNW_ESTOPUNWIND.
(Logical change 1.93)
2003-08-20 18:02:30 +00:00
mostang.com!davidm 8bf1568dbf (script_new): Clear abi_marker to 0.
(emit_nat_info): For registers saved in a general-register, use IA64_INSN_SET_REG
	instead of IA64_INSN_SET.
	Set insn.dst to register number, instead of unw.preg_index[i].
(compile_reg): Set val directly to register number, instead of unw.preg_index[i].
	Use IA64_INSN_INC_PSP instead of IA64_INSN_ADD to pop a fixed stack frame.
(build_script): Handle signal-frames by directly copying abi_marker, rather than
	emitting an IA64_INSN_SET instruction.
(run_script): Copy abi_marker into cursor.  Rather than updating a word, update
	a save-location.  Only exceptions are IA64_INSN_INC_PSP and
	IA64_INSN_LOAD_PSP.

(Logical change 1.84)
2003-04-23 05:56:59 +00:00
mostang.com!davidm d3ec5e94aa (cache_match): Remove locking comments.
(ia64_get_cached_proc_info): Rename from ia64_script_lookup() and modify it so
	it directly updates the proc-info if the necessary script is in the cache.
(script_new): Remove locking comments and adjust formatting.
(ia64_find_save_locs): If global caching is enabled, mask signal delivery and
	hold the cache lock while accessing the cache.
(ia64_script_cache_init): Initialize the cache lock.


(Logical change 1.59)
2003-03-06 06:14:36 +00:00
mostang.com!davidm 8bd0572f34 (build_script): Document the fact that we need IA64_REG_PSP to get compiled first.
(Logical change 1.56)
2003-02-27 09:58:57 +00:00
mostang.com!davidm 73fd3a8d4a (compile_reg): store register number for MOVE_STACKED.
(Logical change 1.41)
2003-01-23 10:04:09 +00:00
mostang.com!davidm 7c6f9ccd2c (run_script): Use ia64_get_stacked() to access stacked register & don't forget to
rotate stacked registers.


(Logical change 1.40)
2003-01-21 17:41:20 +00:00
mostang.com!davidm 469215c497 Rename ia64_cursor -> cursor.
2002/12/18 15:52:24-08:00 mostang.com!davidm
Rename: src/ia64/Gscript.c -> src/ia64/Gscript-ia64.c

(Logical change 1.32)
2002-12-19 07:16:50 +00:00
mostang.com!davidm 9f32da41c3 Initial revision 2002-12-19 07:16:50 +00:00