This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Power7 changes, part 1, infrastructure changes


Enclosed is the first patch for my Power7 changes.  It is checked in as
subversion version #148634 on the branch:
svn+ssh://@gcc.gnu.org/svn/gcc/branches/ibm/power7-tmp

This patch does the following:

1) Update the binutils version number in the configure scripts for various
   checks.

2) Add support for checking if the assembler knows about the full ISA 2.06
   instructions, using the new popcntd instruction as a key.

3) If -mcpu=power7, pass the correct option to the assembler to enable power7
   instructions.

4) If -mcpu=native, pass the correct option to the assembler to enable whatever
   instructions the host has.

5) Move several of the switches from target masks to separate variables, so we
   have room for new ISA options that need to be target masks.  Move -misel
   back to a target mask.  Prepare the way for moving -mspe and -mpaired back
   to target masks eventually.

6) Add -mvsx, -mpopcntd switches.

7) Change some of the macros that look up register information from code that
   is executed at every call to table lookups calculated at compiler start
   time.  Also move Pmode and POINTER_SIZE so that they are calculated at
   compiler start time.

8) Add dependencies, so when you touch a .md file, it rebuilds the appropriate
   pieces.

9) Add some infrastructure that will be needed when the VSX instructions come
   in.  Start adding if VSX options along with if ALTIVEC for vector abi.

10) Add new debug options: -mdebug=reg prints which machine modes go in which
    hard register; -mdebug=addr will trace the address validation support in
    the next patch; -mdebug=cost will trace the cost hooks in the next patch.

11) If the assembler supports the lwsync instruction, generate it rather than
    laying down the instruction as a number.

12) Change some of the logical operations that set CR0 from compare to
    fast_compare.  This change changes the code generated for vectorizing
    the negative absolute value of signed char arrays on altivec systems.

I noticed no changes to the code in my -mspe or -mpaired cross compilers.

-- 
Michael Meissner, IBM
4 Technology Place Drive, MS 2203A, Westford, MA, 01886, USA
meissner@linux.vnet.ibm.com

Attachment: gcc-power7-mainline.patch09-01
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]