• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

修订版9dacea90b2a61b4a84d3379ec523e82b5c18f184 (tree)
时间2008-09-05 20:45:37
作者Ulrich Weigand <uweigand@de.i...>
CommiterUlrich Weigand

Log Message

* mep-tdep.c (struct mep_prologue): Add gdbarch member.
(check_for_saved): Use it instead of current_gdbarch.
(is_arg_spill): Add gdbarch paramter. Use it instead
of current_gdbarch.
(mep_analyze_prologue): Add gdbarch parameter. Pass it
to is_arg_spill and check_for_saved.
(mep_skip_prologue, mep_analyze_frame_prologue): Update calls.

更改概述

差异

--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,15 @@
11 2008-09-05 Ulrich Weigand <uweigand@de.ibm.com>
22
3+ * mep-tdep.c (struct mep_prologue): Add gdbarch member.
4+ (check_for_saved): Use it instead of current_gdbarch.
5+ (is_arg_spill): Add gdbarch paramter. Use it instead
6+ of current_gdbarch.
7+ (mep_analyze_prologue): Add gdbarch parameter. Pass it
8+ to is_arg_spill and check_for_saved.
9+ (mep_skip_prologue, mep_analyze_frame_prologue): Update calls.
10+
11+2008-09-05 Ulrich Weigand <uweigand@de.ibm.com>
12+
313 * hppa-tdep.c (internalize_unwinds): Use objfile architecture
414 instead of current_gdbarch.
515
--- a/gdb/mep-tdep.c
+++ b/gdb/mep-tdep.c
@@ -1584,6 +1584,9 @@ mep_get_insn (CORE_ADDR pc, long *insn)
15841584 /* This structure holds the results of a prologue analysis. */
15851585 struct mep_prologue
15861586 {
1587+ /* The architecture for which we generated this prologue info. */
1588+ struct gdbarch *gdbarch;
1589+
15871590 /* The offset from the frame base to the stack pointer --- always
15881591 zero or negative.
15891592
@@ -1635,11 +1638,12 @@ is_arg_reg (pv_t value)
16351638 - ADDR is a stack slot's address (e.g., relative to the original
16361639 value of the SP). */
16371640 static int
1638-is_arg_spill (pv_t value, pv_t addr, struct pv_area *stack)
1641+is_arg_spill (struct gdbarch *gdbarch, pv_t value, pv_t addr,
1642+ struct pv_area *stack)
16391643 {
16401644 return (is_arg_reg (value)
16411645 && pv_is_register (addr, MEP_SP_REGNUM)
1642- && ! pv_area_find_reg (stack, current_gdbarch, value.reg, 0));
1646+ && ! pv_area_find_reg (stack, gdbarch, value.reg, 0));
16431647 }
16441648
16451649
@@ -1657,7 +1661,7 @@ check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value)
16571661 if (value.kind == pvk_register
16581662 && value.k == 0
16591663 && pv_is_register (addr, MEP_SP_REGNUM)
1660- && size == register_size (current_gdbarch, value.reg))
1664+ && size == register_size (result->gdbarch, value.reg))
16611665 result->reg_offset[value.reg] = addr.k;
16621666 }
16631667
@@ -1665,7 +1669,8 @@ check_for_saved (void *result_untyped, pv_t addr, CORE_ADDR size, pv_t value)
16651669 /* Analyze a prologue starting at START_PC, going no further than
16661670 LIMIT_PC. Fill in RESULT as appropriate. */
16671671 static void
1668-mep_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
1672+mep_analyze_prologue (struct gdbarch *gdbarch,
1673+ CORE_ADDR start_pc, CORE_ADDR limit_pc,
16691674 struct mep_prologue *result)
16701675 {
16711676 CORE_ADDR pc;
@@ -1678,6 +1683,7 @@ mep_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
16781683 CORE_ADDR after_last_frame_setup_insn = start_pc;
16791684
16801685 memset (result, 0, sizeof (*result));
1686+ result->gdbarch = gdbarch;
16811687
16821688 for (rn = 0; rn < MEP_NUM_REGS; rn++)
16831689 {
@@ -1741,7 +1747,7 @@ mep_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
17411747 if (pv_area_store_would_trash (stack, reg[rm]))
17421748 break;
17431749
1744- if (is_arg_spill (reg[rn], reg[rm], stack))
1750+ if (is_arg_spill (gdbarch, reg[rn], reg[rm], stack))
17451751 after_last_frame_setup_insn = next_pc;
17461752
17471753 pv_area_store (stack, reg[rm], 4, reg[rn]);
@@ -1758,7 +1764,7 @@ mep_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
17581764 if (pv_area_store_would_trash (stack, addr))
17591765 break;
17601766
1761- if (is_arg_spill (reg[rn], addr, stack))
1767+ if (is_arg_spill (gdbarch, reg[rn], addr, stack))
17621768 after_last_frame_setup_insn = next_pc;
17631769
17641770 pv_area_store (stack, addr, 4, reg[rn]);
@@ -1787,7 +1793,7 @@ mep_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
17871793 if (pv_area_store_would_trash (stack, addr))
17881794 break;
17891795
1790- if (is_arg_spill (reg[rn], addr, stack))
1796+ if (is_arg_spill (gdbarch, reg[rn], addr, stack))
17911797 after_last_frame_setup_insn = next_pc;
17921798
17931799 pv_area_store (stack, addr, size, reg[rn]);
@@ -1904,7 +1910,7 @@ mep_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
19041910 if (! find_pc_partial_function (pc, &name, &func_addr, &func_end))
19051911 return pc;
19061912
1907- mep_analyze_prologue (pc, func_end, &p);
1913+ mep_analyze_prologue (gdbarch, pc, func_end, &p);
19081914 return p.prologue_end;
19091915 }
19101916
@@ -1944,7 +1950,8 @@ mep_analyze_frame_prologue (struct frame_info *this_frame,
19441950 if (! func_start)
19451951 stop_addr = func_start;
19461952
1947- mep_analyze_prologue (func_start, stop_addr, *this_prologue_cache);
1953+ mep_analyze_prologue (get_frame_arch (this_frame),
1954+ func_start, stop_addr, *this_prologue_cache);
19481955 }
19491956
19501957 return *this_prologue_cache;