* rs6000-tdep.c (rs6000_push_dummy_call): Correct size of
	backchain write.
	(rs6000_convert_from_func_ptr_addr): Correct comment.
This commit is contained in:
Alan Modra 2005-10-06 00:22:57 +00:00
parent 896ae8701f
commit 8ba0209fdd
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2005-10-06 Alan Modra <amodra@bigpond.net.au>
PR 1659
* rs6000-tdep.c (rs6000_push_dummy_call): Correct size of
backchain write.
(rs6000_convert_from_func_ptr_addr): Correct comment.
2005-10-03 Joel Brobecker <brobecker@adacore.com>
* MAINTAINERS: Add section for release management.

View File

@ -1629,8 +1629,8 @@ ran_out_of_registers_for_arguments:
regcache_raw_write_signed (regcache, SP_REGNUM, sp);
/* Set back chain properly. */
store_unsigned_integer (tmp_buffer, 4, saved_sp);
write_memory (sp, tmp_buffer, 4);
store_unsigned_integer (tmp_buffer, wordsize, saved_sp);
write_memory (sp, tmp_buffer, wordsize);
/* Point the inferior function call's return address at the dummy's
breakpoint. */
@ -2241,13 +2241,13 @@ rs6000_create_inferior (int pid)
Usually a function pointer's representation is simply the address
of the function. On the RS/6000 however, a function pointer is
represented by a pointer to a TOC entry. This TOC entry contains
represented by a pointer to an OPD entry. This OPD entry contains
three words, the first word is the address of the function, the
second word is the TOC pointer (r2), and the third word is the
static chain value. Throughout GDB it is currently assumed that a
function pointer contains the address of the function, which is not
easy to fix. In addition, the conversion of a function address to
a function pointer would require allocation of a TOC entry in the
a function pointer would require allocation of an OPD entry in the
inferior's memory space, with all its drawbacks. To be able to
call C++ virtual methods in the inferior (which are called via
function pointers), find_function_addr uses this function to get the