Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: Jiong Wang <jiwang@tilera.com>
Cc: gdb-patches@sourceware.org, Walter Lee <walt@tilera.com>
Subject: Re: [RFC/TileGX 1/6] fix args alignment bug
Date: Fri, 18 Jan 2013 13:14:00 -0000	[thread overview]
Message-ID: <20130118131358.GE3564@adacore.com> (raw)
In-Reply-To: <50F9148F.3010602@tilera.com>

> gdb/ChangeLog:
> 
>        * tilegx-tdep.c (tilegx_push_dummy_call): args pushed on stack
>        should be aligned to 64bit.

Some questions below...

> -  /* Loop backwards through arguments to determine stack alignment.  */
> -  alignlen = 0;
> -
> -  for (j = nargs - 1; j >= i; j--)
> -    {
> -      typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
> -      alignlen += (typelen + 3) & (~3);
> -    }
> -
> -  if (alignlen & 0x4)
> -    stack_dest -= 4;

Do you have any hint as to why this code was written the way it was?
It doesn't seem like the type of code that would be added by accident.
Did Jeff (the apparent author) misunderstand the ABI?

>        typelen = TYPE_LENGTH (value_enclosing_type (args[j]));
> -      slacklen = ((typelen + 3) & (~3)) - typelen;
> +      slacklen = ((typelen + 7) & (~7)) - typelen;

This is a detail, but can you use utils.c:align_up, in this case?
(I find those midly more readable than these incantations, but
it's OK if you prefer the code to stay as is).

>    /* Add 2 words for linkage space to the stack.  */
> -  stack_dest = stack_dest - 8;
> -  write_memory (stack_dest, two_zero_words, 8);
> +  stack_dest = stack_dest - 16;
> +  write_memory (stack_dest, four_zero_words, 16);

It looks like you need to adjust the comment as well.

-- 
Joel


  reply	other threads:[~2013-01-18 13:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-18  9:23 Jiong Wang
2013-01-18 13:14 ` Joel Brobecker [this message]
2013-01-18 15:00   ` Jiong Wang
2013-01-22 10:28     ` Jiong Wang
2013-01-29 14:49       ` Jiong Wang
2013-01-30  4:34         ` Jiong Wang
2013-01-30  5:47           ` Joel Brobecker
2013-01-30  5:55             ` Jiong Wang
2013-02-08 18:33     ` Joel Brobecker
2013-09-17  3:11 ` [RFC/TileGX 1/2] fix gdbserver build failure Jiong Wang
2013-09-17  3:24   ` [RFC/TileGX 2/2] fix gdbserver runtime crash Jiong Wang
2013-09-17 12:33     ` Joel Brobecker
2013-09-17 12:39       ` Jiong Wang
2013-09-17 13:22         ` Jiong Wang
2013-09-17 13:29           ` Joel Brobecker
2013-09-17 14:06             ` [COMMITTED][RFC/TileGX " Jiong Wang
2013-09-17 12:30   ` [RFC/TileGX 1/2] fix gdbserver build failure Joel Brobecker
2013-09-17 12:33     ` Jiong Wang
2013-09-17 13:21       ` Jiong Wang
2013-09-17 13:30         ` Joel Brobecker
2013-09-17 13:36           ` Jiong Wang
2013-09-17 13:43             ` Joel Brobecker
2013-09-17 14:04               ` [COMMITTED][RFC/TileGX " Jiong Wang
2013-09-18  1:56                 ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130118131358.GE3564@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=jiwang@tilera.com \
    --cc=walt@tilera.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox