This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
> static CORE_ADDR >+hppa32_convert_from_func_ptr_addr (struct gdbarch *gdbarch, >+ CORE_ADDR addr, >+ struct target_ops *targ) >+{ >+ if (addr & 2) >+ { >+ ULONGEST gp; >+ >+ addr &= ~3; >+ >+ gp = read_memory_unsigned_integer (addr + 4, 4); >+ write_register (19, gp); >+ addr = read_memory_unsigned_integer (addr, 4); >+ } >+ >+ return addr; >+} >+ >+static CORE_ADDR
This should be using TARG methods read memory(2), and should not be writing GP to register 19.
First point is understood, but about writing to register --
How else can this be handled? i.e. where else in the code path of call_function_by_hand () will I be able to get ahold of the function descriptor and set the gp?
into push_dummy_call is already the canonicalized function address, so i cannot do this as part of e.g. find_global_pointer.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |