• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

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

Commit MetaInfo

Revisióncad324ad2b83fa4ad90a684919d9f1b5262e620c (tree)
Tiempo2023-01-06 18:39:37
AutorYoshinori Sato <ysato@user...>
CommiterYoshinori Sato

Log Message

RX: update frame analyzer

Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>

Cambiar Resumen

Diferencia incremental

--- a/gdb/rx-tdep.c
+++ b/gdb/rx-tdep.c
@@ -187,6 +187,7 @@ rx_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
187187 int rn;
188188 pv_t reg[RX_NUM_REGS];
189189 CORE_ADDR after_last_frame_setup_insn = start_pc;
190+ bool has_frame = false;
190191
191192 memset (result, 0, sizeof (*result));
192193
@@ -292,6 +293,11 @@ rx_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
292293 are (most likely) part of the prologue. */
293294 if ((rdst == RX_SP_REGNUM || rdst == RX_FP_REGNUM) && addend < 0)
294295 after_last_frame_setup_insn = next_pc;
296+ else if (rdst == RX_FP_REGNUM && rsrc == RX_SP_REGNUM)
297+ {
298+ has_frame = true;
299+ after_last_frame_setup_insn = next_pc;
300+ }
295301 }
296302 else if (opc.id == RXO_mov
297303 && opc.op[0].type == RX_Operand_Indirect
@@ -345,7 +351,7 @@ rx_analyze_prologue (CORE_ADDR start_pc, CORE_ADDR limit_pc,
345351 result->frame_size = reg[RX_SP_REGNUM].k;
346352
347353 /* Was the frame pointer initialized? */
348- if (pv_is_register (reg[RX_FP_REGNUM], RX_SP_REGNUM))
354+ if (pv_is_register (reg[RX_FP_REGNUM], RX_SP_REGNUM) || has_frame)
349355 {
350356 result->has_frame_ptr = 1;
351357 result->frame_ptr_offset = reg[RX_FP_REGNUM].k;