powerpc: POWER7 optimizationsibm/2.8/master
commit0eacdbad318c940ee4d45ed87155e73e990fe2bb
authorLuis Machado <luis@gargoyle.(none)>
Tue, 13 Jul 2010 19:39:26 +0000 (13 16:39 -0300)
committerLuis Machado <luis@gargoyle.(none)>
Tue, 13 Jul 2010 19:39:26 +0000 (13 16:39 -0300)
treeb999a88e4dff1face179697c1d4fc1c2ac34bfbf
parent052b16c76579af4519983e47c8d1d1f05d9a81a8
powerpc: POWER7 optimizations

    Add optimizations for classification functions (32-bit and 64-bit) and
    string functions (32-bit and 64-bit).

    powerpc: Re-work the Implies structure

    This patch tries to organize the implies files for ppc, since there are
    a number of processors and most of them are compatible with each other
    (backwards compatible).

    Having in mind that we start the search for processor-specific files in
    the sysdeps/unix/sysv/linux tree
    (sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]/fpu to be
    exact), we would like to grab any linux-specific code from that tree
    prior to going through the other tree (sysdeps/powerpc/...).

    For that, i removed the Implies files that were originally inside the
    fpu directories and placed then in the non-fpu directories (still inside
    the unix/sysv/linux tree). If no processor-specific/linux-specific files
    could be found, we "imply" the other tree's (sysdeps/powerpc/...) fpu
    directory for that specific processor AND also the non-fpu directory for
    that same tree.

    If, again, no processor-specific code is found, we read another Implies
    file that will point to the most compatible processor that we should
    grab code from, and so on, until we reach the power4 processor.

    So, in summary, the Implies files will live inside these directories
    now:

    * sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/[processor]
    * sysdeps/powerpc/powerpc[32|64]/[processor]

    Practical example of the order we will use to pick power6-specific code
    with the new structure.

    sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6/fpu ->
    sysdeps/unix/sysv/linux/powerpc/powerpc[32|64]/power6 ->
    sysdeps/powerpc/powerpc[32|64]/power6/fpu ->
    sysdeps/powerpc/powerpc[32|64]/power6 ->
    sysdeps/powerpc/powerpc[32|64]/power5+/fpu ->
    sysdeps/powerpc/powerpc[32|64]/power5+ ->
    sysdeps/powerpc/powerpc[32|64]/power5/fpu ->
    sysdeps/powerpc/powerpc[32|64]/power5 ->
    sysdeps/powerpc/powerpc[32|64]/power4/fpu ->
    sysdeps/powerpc/powerpc[32|64]/power4 (from here, it'll go to the
    generic path as usual)
70 files changed:
ChangeLog
sysdeps/powerpc/powerpc32/970/Implies
sysdeps/powerpc/powerpc32/970/fpu/Implies [deleted file]
sysdeps/powerpc/powerpc32/power5+/Implies
sysdeps/powerpc/powerpc32/power5/Implies
sysdeps/powerpc/powerpc32/power5/fpu/Implies [deleted file]
sysdeps/powerpc/powerpc32/power6/Implies
sysdeps/powerpc/powerpc32/power6x/Implies
sysdeps/powerpc/powerpc32/power6x/fpu/Implies [deleted file]
sysdeps/powerpc/powerpc32/power7/Implies
sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/memcmp.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/memcpy.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/memset.S [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power7/strncmp.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/970/Implies
sysdeps/powerpc/powerpc64/power5+/Implies
sysdeps/powerpc/powerpc64/power5+/fpu/Implies [deleted file]
sysdeps/powerpc/powerpc64/power5/Implies
sysdeps/powerpc/powerpc64/power5/fpu/Implies [deleted file]
sysdeps/powerpc/powerpc64/power6/Implies
sysdeps/powerpc/powerpc64/power6x/Implies
sysdeps/powerpc/powerpc64/power6x/fpu/Implies [deleted file]
sysdeps/powerpc/powerpc64/power7/Implies
sysdeps/powerpc/powerpc64/power7/fpu/Implies
sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/memcmp.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/memcpy.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/memset.S [new file with mode: 0644]
sysdeps/powerpc/powerpc64/power7/strncmp.S [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/970/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power4/Implies [moved from sysdeps/powerpc/powerpc32/power5+/fpu/Implies with 53% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power4/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power5+/Implies [moved from sysdeps/powerpc/powerpc32/power6/fpu/Implies with 50% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power5+/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power5/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power5/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power6x/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power6x/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power7/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/power7/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/970/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power4/Implies [moved from sysdeps/powerpc/powerpc64/970/fpu/Implies with 53% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power4/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power5+/Implies [moved from sysdeps/powerpc/powerpc64/power6/fpu/Implies with 50% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power5+/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power5/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power5/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power6/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power6x/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power6x/fpu/Implies [deleted file]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power7/Implies [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc64/power7/fpu/Implies [deleted file]