This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: x86-64, I definitely can't make sense out of that
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: tbp <tbptbp at gmail dot com>
- Cc: GCC Mailing List <gcc at gcc dot gnu dot org>
- Date: Sat, 4 Feb 2006 10:06:00 -0500
- Subject: Re: x86-64, I definitely can't make sense out of that
- References: <4fc48eb10602031723j3dbbb6f7m82fa89e90efb8e85@mail.gmail.com>
On Feb 3, 2006, at 8:23 PM, tbp wrote:
As i coulnd't understand why g++ insisted on spitting movq $0, <stack>
only to rewrite the same place a few cycles behind (with a different
width), i've made a testcase and now 20mn later i'm even more puzzled.
signs_all[4] = { !(sx > 0), !(sy > 0), !(sz > 0), 0 },
C++ front-end produces:
<<cleanup_point const int signs_all[4] = {0};>>;
<<cleanup_point signs_all[0] = (int) sx <= 0 >>>;
<<< Unknown tree: expr_stmt signs_all[1] = (int) sy <= 0 >>>;
<<< Unknown tree: expr_stmt signs_all[2] = (int) sz <= 0 >>>;
While the C front-end is producing:
const int signs_all[4] = {(int) sx <= 0, (int) sy <= 0, (int) sz <= 0,
0};
Dale Johannesen and I came up with a patch to the C++ front-end
for this except it did not work with some C++ cases.
Thanks,
Andrew Pinski