2003-08-07 Michal Ludvig <mludvig@suse.cz>

* x86-64-tdep.c (x86_64_push_arguments): Skip the red zone.
This commit is contained in:
Michal Ludvig 2003-08-07 11:26:42 +00:00
parent 9c5bfbb7fd
commit fd83badabb
2 changed files with 10 additions and 0 deletions

View File

@ -1,5 +1,7 @@
2003-08-07 Michal Ludvig <mludvig@suse.cz>
* x86-64-tdep.c (x86_64_dwarf_regmap): Correct register numbers.
(x86_64_push_arguments): Skip the red zone.
2003-08-05 Andrew Cagney <cagney@redhat.com>

View File

@ -613,6 +613,14 @@ x86_64_push_arguments (struct regcache *regcache, int nargs,
int stack_values_count = 0;
int *stack_values;
stack_values = alloca (nargs * sizeof (int));
/* Before storing anything to the stack we must skip
the "Red zone" (see the "Function calling sequence" section
of AMD64 ABI).
It could have already been skipped in the function's
prologue, but we don't care and will easily skip it once again. */
sp -= 128;
for (i = 0; i < nargs; i++)
{
enum x86_64_reg_class class[MAX_CLASSES];