diff options
author | Jakub Jelinek <jakub@redhat.com> | 2005-11-19 20:05:14 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2005-11-19 20:05:14 +0000 |
commit | 8e8c8d3c871666d3c4fb0cda0147fb2231beeb09 (patch) | |
tree | 8205dc9da58d4c3090372b155fdede74e7b3d6b1 /sysdeps/powerpc | |
parent | b9616a4d2d0ff113b95a638127ad27c98e6c713b (diff) | |
download | glibc-8e8c8d3c871666d3c4fb0cda0147fb2231beeb09.tar.gz glibc-8e8c8d3c871666d3c4fb0cda0147fb2231beeb09.tar.xz glibc-8e8c8d3c871666d3c4fb0cda0147fb2231beeb09.zip |
Updated to fedora-glibc-20051119T1959
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r-- | sysdeps/powerpc/fpu/e_sqrt.c | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/e_sqrtf.c | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/w_sqrtf.c | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/fpu/s_lround.S | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/strncmp.S | 17 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/strncmp.S | 17 | ||||
-rw-r--r-- | sysdeps/powerpc/sysdep.h | 9 |
7 files changed, 31 insertions, 16 deletions
diff --git a/sysdeps/powerpc/fpu/e_sqrt.c b/sysdeps/powerpc/fpu/e_sqrt.c index eb9984d0a1..e6ba1f979f 100644 --- a/sysdeps/powerpc/fpu/e_sqrt.c +++ b/sysdeps/powerpc/fpu/e_sqrt.c @@ -24,7 +24,6 @@ #include <sysdep.h> #include <ldsodefs.h> -#include <dl-procinfo.h> static const double almost_half = 0.5000000000000001; /* 0.5 + 2^-53 */ static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; diff --git a/sysdeps/powerpc/fpu/e_sqrtf.c b/sysdeps/powerpc/fpu/e_sqrtf.c index 9b701012af..335935bb18 100644 --- a/sysdeps/powerpc/fpu/e_sqrtf.c +++ b/sysdeps/powerpc/fpu/e_sqrtf.c @@ -24,7 +24,6 @@ #include <sysdep.h> #include <ldsodefs.h> -#include <dl-procinfo.h> static const float almost_half = 0.50000006; /* 0.5 + 2^-24 */ static const ieee_float_shape_type a_nan = {.word = 0x7fc00000 }; diff --git a/sysdeps/powerpc/fpu/w_sqrtf.c b/sysdeps/powerpc/fpu/w_sqrtf.c index e3f3c995e8..54b4f3be7f 100644 --- a/sysdeps/powerpc/fpu/w_sqrtf.c +++ b/sysdeps/powerpc/fpu/w_sqrtf.c @@ -23,7 +23,6 @@ #include <sysdep.h> #include <ldsodefs.h> -#include <dl-procinfo.h> #ifdef __STDC__ float diff --git a/sysdeps/powerpc/powerpc32/fpu/s_lround.S b/sysdeps/powerpc/powerpc32/fpu/s_lround.S index a85743164c..4f543eb269 100644 --- a/sysdeps/powerpc/powerpc32/fpu/s_lround.S +++ b/sysdeps/powerpc/powerpc32/fpu/s_lround.S @@ -79,7 +79,6 @@ ENTRY (__lround) b .L9 END (__lround) -strong_alias (__lround, __lround) weak_alias (__lround, lround) strong_alias (__lround, __lroundf) diff --git a/sysdeps/powerpc/powerpc32/strncmp.S b/sysdeps/powerpc/powerpc32/strncmp.S index 3b33bb921f..3e0fff5ac2 100644 --- a/sysdeps/powerpc/powerpc32/strncmp.S +++ b/sysdeps/powerpc/powerpc32/strncmp.S @@ -47,6 +47,7 @@ EALIGN (BP_SYM(strncmp), 4, 0) lis r7F7F, 0x7f7f dcbt 0,rSTR2 clrlwi. rTMP, rTMP, 30 + cmplwi cr1, rN, 0 lis rFEFE, -0x101 bne L(unaligned) /* We are word alligned so set up for two loops. first a word @@ -54,7 +55,8 @@ EALIGN (BP_SYM(strncmp), 4, 0) srwi. rTMP, rN, 2 clrlwi rN, rN, 30 addi rFEFE, rFEFE, -0x101 - addi r7F7F, r7F7F, 0x7f7f + addi r7F7F, r7F7F, 0x7f7f + cmplwi cr1, rN, 0 beq L(unaligned) mtctr rTMP /* Power4 wants mtctr 1st in dispatch group. */ @@ -122,16 +124,19 @@ L(tail): addi rSTR1, rSTR1, 4 bne- cr1, L(different) addi rSTR2, rSTR2, 4 + cmplwi cr1, rN, 0 L(unaligned): mtctr rN /* Power4 wants mtctr 1st in dispatch group */ - cmpwi rN,0 - lbz rWORD1, 0(rSTR1) - lbz rWORD2, 0(rSTR2) - bgt L(u1) + bgt cr1, L(uz) L(ux): li rRTN, 0 blr - + .align 4 +L(uz): + lbz rWORD1, 0(rSTR1) + lbz rWORD2, 0(rSTR2) + nop + b L(u1) L(u0): lbzu rWORD2, 1(rSTR2) L(u1): diff --git a/sysdeps/powerpc/powerpc64/strncmp.S b/sysdeps/powerpc/powerpc64/strncmp.S index 04bdc2f606..34479e2e91 100644 --- a/sysdeps/powerpc/powerpc64/strncmp.S +++ b/sysdeps/powerpc/powerpc64/strncmp.S @@ -48,6 +48,7 @@ EALIGN (BP_SYM(strncmp), 4, 0) lis r7F7F, 0x7f7f dcbt 0,rSTR2 clrldi. rTMP, rTMP, 61 + cmpldi cr1, rN, 0 lis rFEFE, -0x101 bne L(unaligned) /* We are doubleword alligned so set up for two loops. first a double word @@ -55,7 +56,8 @@ EALIGN (BP_SYM(strncmp), 4, 0) srdi. rTMP, rN, 3 clrldi rN, rN, 61 addi rFEFE, rFEFE, -0x101 - addi r7F7F, r7F7F, 0x7f7f + addi r7F7F, r7F7F, 0x7f7f + cmpldi cr1, rN, 0 beq L(unaligned) mtctr rTMP /* Power4 wants mtctr 1st in dispatch group. */ @@ -126,16 +128,19 @@ L(tail): addi rSTR1, rSTR1, 8 bne- cr1, L(different) addi rSTR2, rSTR2, 8 + cmpldi cr1, rN, 0 L(unaligned): mtctr rN /* Power4 wants mtctr 1st in dispatch group */ - cmpdi rN,0 - lbz rWORD1, 0(rSTR1) - lbz rWORD2, 0(rSTR2) - bgt L(u1) + bgt cr1, L(uz) L(ux): li rRTN, 0 blr - + .align 4 +L(uz): + lbz rWORD1, 0(rSTR1) + lbz rWORD2, 0(rSTR2) + nop + b L(u1) L(u0): lbzu rWORD2, 1(rSTR2) L(u1): diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h index fb668ad51f..296231f655 100644 --- a/sysdeps/powerpc/sysdep.h +++ b/sysdeps/powerpc/sysdep.h @@ -29,6 +29,15 @@ #define PPC_FEATURE_HAS_MMU 0x04000000 /* Memory Management Unit. */ #define PPC_FEATURE_HAS_4xxMAC 0x02000000 /* 4xx Multiply Accumulator. */ #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 /* Unified I/D cache. */ +#define PPC_FEATURE_HAS_SPE 0x00800000 +#define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 +#define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 +#define PPC_FEATURE_NO_TB 0x00100000 /* 601/403gx have no timebase */ +#define PPC_FEATURE_POWER4 0x00080000 /* POWER4 microarch level */ +#define PPC_FEATURE_POWER5 0x00040000 /* POWER5 microarch level */ +#define PPC_FEATURE_POWER5_PLUS 0x00020000 /* POWER5+ microarch level */ +#define PPC_FEATURE_CELL 0x00010000 /* CELL PU microarch level */ +#define PPC_FEATURE_970 (PPC_FEATURE_POWER4 + PPC_FEATURE_HAS_ALTIVEC) #ifdef __ASSEMBLER__ |