Re: Does Ada build on Linux/ia32?

2008-02-13 Thread H.J. Lu
I opened

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35186


H.J.
On Feb 11, 2008 4:35 PM, Eric Botcazou <[EMAIL PROTECTED]> wrote:
> > I don't know Ada to create a testcase. Can some Ada people help out?
>
> It's not very different from C++.  Start from the command line you posted and
> remove code simultaneously from s-pack33.ads (roughly the .h file) and from
> s-pack33.adb (roughly the .C file).  Then put a breakpoint in decl.c where
> the error message is issued and try to find out why it is issued with the
> modified compiler and why it is not with the pristine compiler.
>
> --
> Eric Botcazou
>


GNAT/RTEMS ACATS Scripts

2008-02-13 Thread Joel Sherrill


Hi,

I wondered if it was OK to add an rtems subdirectory to the
gcc/gcc/testsuite/ada/acats and place the attached files
in it. 


rtems_acats_scripts/rtems_init.c
  RTEMS Initialization and Configuration to run an Ada
  main with configuration to pass ACATS
rtems_acats_scripts/Makefile.rtems
  Makefile which is used by run_all_rtems.sh to probe the
  installed RTEMS and extract the CFLAGS, LDFLAGS and
  to tell ACATS the command to run a test.  It generates a
  file which is sourced from run_all_rtems.sh to know how
  to compile and link, etc.
rtems_acats_scripts/run_all_rtems.sh
 Modified version of run_all.sh to work with RTEMS.

I have used these to run ACATS for SVN and 4.2.3 for these
combinations in the past week and posted the results.

+ powerpc on psim
+ sparc on sis
+ i386 on qemu

I would like to do this soon so they can make 4.3.0.
I know Laurent Guerby and I  have been trading
versions of these for years and they should be in gcc.

--joel



rtems_acats_scripts.tar.bz2
Description: application/bzip


Re: Does Ada build on Linux/ia32?

2008-02-13 Thread Eric Botcazou
> I opened
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35186

Thanks!

-- 
Eric Botcazou


When is RBX used for base pointer?

2008-02-13 Thread H.J. Lu
Hi,

We need a callee-saved register for stack alignment. In 64bit, our
choices are rbx, and
r12-r15. r12-r15 need the REX byte and r12 also needs the SIB byte. So
I'd like to use rbx.
x86-64 psABI says rbx is callee-saved and optionally used as base
pointer. However,
I couldn't find an example where rbx is used as base pointer. Is this
a carryover from
i386 psABI where ebx is used to hold GOT?

Thanks.

H.J.


Re: [discuss] When is RBX used for base pointer?

2008-02-13 Thread Michael Matz
Hi,

On Wed, 13 Feb 2008, H.J. Lu wrote:

> We need a callee-saved register for stack alignment.

Can you expand on why?

> In 64bit, our choices are rbx, and r12-r15. r12-r15 need the REX byte 
> and r12 also needs the SIB byte. So I'd like to use rbx. x86-64 psABI 
> says rbx is callee-saved and optionally used as base pointer. However, I 
> couldn't find an example where rbx is used as base pointer. Is this a 
> carryover from i386 psABI where ebx is used to hold GOT?

In the large memory model you need a base pointer for the GOT.  Of course 
we could do the same as in recent i386 and chose an arbitrary register as 
GOT pointer.


Ciao,
Michael.


Re: [discuss] When is RBX used for base pointer?

2008-02-13 Thread H.J. Lu
On Feb 13, 2008 1:52 PM, Michael Matz <[EMAIL PROTECTED]> wrote:
> Hi,
>
> On Wed, 13 Feb 2008, H.J. Lu wrote:
>
> > We need a callee-saved register for stack alignment.
>
> Can you expand on why?

Our proposal is at

http://gcc.gnu.org/ml/gcc/2007-12/msg00567.html

For most cases, we can align stack with RBP/RSP. But
we need an extra register when there is dynamic stack
allocation or nested functions. It has to be callee-saved
to work with setjmp/longjmp.

>
> > In 64bit, our choices are rbx, and r12-r15. r12-r15 need the REX byte
> > and r12 also needs the SIB byte. So I'd like to use rbx. x86-64 psABI
> > says rbx is callee-saved and optionally used as base pointer. However, I
> > couldn't find an example where rbx is used as base pointer. Is this a
> > carryover from i386 psABI where ebx is used to hold GOT?
>
> In the large memory model you need a base pointer for the GOT.  Of course
> we could do the same as in recent i386 and chose an arbitrary register as
> GOT pointer.

I will use rbx then.

Thanks.

H.J.


gcc-4.2-20080213 is now available

2008-02-13 Thread gccadmin
Snapshot gcc-4.2-20080213 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.2-20080213/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.2 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch 
revision 132298

You'll find:

gcc-4.2-20080213.tar.bz2  Complete GCC (includes all of below)

gcc-core-4.2-20080213.tar.bz2 C front end and core compiler

gcc-ada-4.2-20080213.tar.bz2  Ada front end and runtime

gcc-fortran-4.2-20080213.tar.bz2  Fortran front end and runtime

gcc-g++-4.2-20080213.tar.bz2  C++ front end and runtime

gcc-java-4.2-20080213.tar.bz2 Java front end and runtime

gcc-objc-4.2-20080213.tar.bz2 Objective-C front end and runtime

gcc-testsuite-4.2-20080213.tar.bz2The GCC testsuite

Diffs from 4.2-20080206 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.2
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: [discuss] When is RBX used for base pointer?

2008-02-13 Thread Michael Matz
Hi,

On Wed, 13 Feb 2008, H.J. Lu wrote:

> Our proposal is at
> 
> http://gcc.gnu.org/ml/gcc/2007-12/msg00567.html
> 
> For most cases, we can align stack with RBP/RSP. But
> we need an extra register when there is dynamic stack
> allocation or nested functions. It has to be callee-saved
> to work with setjmp/longjmp.

I'm probably missing something, but why does it have to be a fixed 
register at all?  Why not simply saying "a free callee-saved register"?


Ciao,
Michael.


Re: [discuss] When is RBX used for base pointer?

2008-02-13 Thread H.J. Lu
On Feb 13, 2008 2:49 PM, Michael Matz <[EMAIL PROTECTED]> wrote:
> Hi,
>
> On Wed, 13 Feb 2008, H.J. Lu wrote:
>
> > Our proposal is at
> >
> > http://gcc.gnu.org/ml/gcc/2007-12/msg00567.html
> >
> > For most cases, we can align stack with RBP/RSP. But
> > we need an extra register when there is dynamic stack
> > allocation or nested functions. It has to be callee-saved
> > to work with setjmp/longjmp.
>
> I'm probably missing something, but why does it have to be a fixed
> register at all?  Why not simply saying "a free callee-saved register"?
>

We allocate this register when expanding prologue. Joey, Xuepeng,
will "a free callee-saved register" work here?

H.J.


Re: [discuss] When is RBX used for base pointer?

2008-02-13 Thread Jan Hubicka
> Hi,
> 
> On Wed, 13 Feb 2008, H.J. Lu wrote:
> 
> > We need a callee-saved register for stack alignment.
> 
> Can you expand on why?
> 
> > In 64bit, our choices are rbx, and r12-r15. r12-r15 need the REX byte 
> > and r12 also needs the SIB byte. So I'd like to use rbx. x86-64 psABI 
> > says rbx is callee-saved and optionally used as base pointer. However, I 
> > couldn't find an example where rbx is used as base pointer. Is this a 
> > carryover from i386 psABI where ebx is used to hold GOT?
> 
> In the large memory model you need a base pointer for the GOT.  Of course 
> we could do the same as in recent i386 and chose an arbitrary register as 
> GOT pointer.

Recent i386 use arbitrary register as GOT pointer only for leaf
function.  When you call something, the GOT entry uses EBX too.
We use RBX for large PIC model.  But I am with Michael here that I don't
see reason why choice of register needs to be set in stone.
We can probably use RBX for non-large-PIC and R12 elsewhere.

Honza
> 
> 
> Ciao,
> Michael.
> ___
> discuss mailing list
> [EMAIL PROTECTED]
> https://www.x86-64.org/mailman/listinfo/discuss


Re: [discuss] When is RBX used for base pointer?

2008-02-13 Thread Jan Hubicka
> On Feb 13, 2008 2:49 PM, Michael Matz <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > On Wed, 13 Feb 2008, H.J. Lu wrote:
> >
> > > Our proposal is at
> > >
> > > http://gcc.gnu.org/ml/gcc/2007-12/msg00567.html
> > >
> > > For most cases, we can align stack with RBP/RSP. But
> > > we need an extra register when there is dynamic stack
> > > allocation or nested functions. It has to be callee-saved
> > > to work with setjmp/longjmp.
> >
> > I'm probably missing something, but why does it have to be a fixed
> > register at all?  Why not simply saying "a free callee-saved register"?
> >
> 
> We allocate this register when expanding prologue. Joey, Xuepeng,
> will "a free callee-saved register" work here?

See code around ix86_select_alt_pic_regnum.  You can play similar
tricks.

Honza
> 
> H.J.
> ___
> discuss mailing list
> [EMAIL PROTECTED]
> https://www.x86-64.org/mailman/listinfo/discuss