From c89b70f16b4d135e778497072900b609ac23a540 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Fri, 30 May 2003 18:43:38 +0000 Subject: [PATCH] 2003-05-30 Andrew Cagney * infcall.c (call_function_by_hand): Always call DEPRECATED_FIX_CALL_DUMMY, even for AT_ENTRY_POINT case. --- gdb/ChangeLog | 8 +++++++- gdb/infcall.c | 11 +++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e75a738329..02a4b2d388 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,6 +1,12 @@ +2003-05-30 Andrew Cagney + + * infcall.c (call_function_by_hand): Always call + DEPRECATED_FIX_CALL_DUMMY, even for AT_ENTRY_POINT case. + 2003-05-30 Richard Henderson - * alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Fix loop increment. + * alpha-tdep.c (alpha_heuristic_frame_unwind_cache): Fix loop + increment. 2003-05-29 Jim Blandy diff --git a/gdb/infcall.c b/gdb/infcall.c index 5f80e896bb..a4ad8969e7 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -530,6 +530,17 @@ call_function_by_hand (struct value *function, int nargs, struct value **args) } break; case AT_ENTRY_POINT: + if (DEPRECATED_FIX_CALL_DUMMY_P ()) + { + /* Sigh. Some targets use DEPRECATED_FIX_CALL_DUMMY to + shove extra stuff onto the stack or into registers. That + code should be in PUSH_DUMMY_CALL, however, in the mean + time ... */ + /* If the target is manipulating DUMMY1, it looses big time. */ + void *dummy1 = NULL; + DEPRECATED_FIX_CALL_DUMMY (dummy1, sp, funaddr, nargs, args, + value_type, using_gcc); + } real_pc = funaddr; dummy_addr = CALL_DUMMY_ADDRESS (); /* A call dummy always consists of just a single breakpoint, so