about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWill Schmidt <will_schmidt@vnet.ibm.com>2012-04-18 15:34:23 -0500
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>2012-04-18 15:34:23 -0500
commit6b652f46c3935088082bb5870b6fd9edbaa92125 (patch)
tree6813ad76813e32855c87d3ec4493cbd99058b312
parentb282631e367f474bbd9e5d92e2aa54b3ce44efe8 (diff)
downloadglibc-6b652f46c3935088082bb5870b6fd9edbaa92125.tar.gz
glibc-6b652f46c3935088082bb5870b6fd9edbaa92125.tar.xz
glibc-6b652f46c3935088082bb5870b6fd9edbaa92125.zip
Further simplify power6 wordcopy by removing switch statements.
This fix replaces switch statements that contain individual
[fwd|bwd]_align_merge (<constant>) calls with a single [fwd|bwd]_align_merge
(align) call.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/powerpc/powerpc32/power6/wordcopy.c26
-rw-r--r--sysdeps/powerpc/powerpc64/power6/wordcopy.c50
3 files changed, 13 insertions, 72 deletions
diff --git a/ChangeLog b/ChangeLog
index cdd29819f3..e31c4dbe24 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2012-04-18  Will Schmidt  <will_schmidt@vnet.ibm.com>
 
+	* sysdeps/powerpc/powerpc64/power6/wordcopy.c
+	(_wordcopy_fwd_dest_aligned): Replace switch with a parameterized
+	fwd_align_merge macro call.
+	(_wordcopy_bwd_dest_aligned): Replace switch with a parameterized
+	bwd_align_merge macro call.
+	* sysdeps/powerpc/powerpc32/power6/wordcopy.c: Likewise.
+
+2012-04-18  Will Schmidt  <will_schmidt@vnet.ibm.com>
+
 	* sysdeps/powerpc/powerpc64/power6/wordcopy.c: Add fwd_align_merge and
 	bwd_align_merge macros.
 	(_wordcopy_fwd_dest_aligned): Use fwd_align_merge macro calls.
diff --git a/sysdeps/powerpc/powerpc32/power6/wordcopy.c b/sysdeps/powerpc/powerpc32/power6/wordcopy.c
index d0df56f22c..698b82f4fb 100644
--- a/sysdeps/powerpc/powerpc32/power6/wordcopy.c
+++ b/sysdeps/powerpc/powerpc32/power6/wordcopy.c
@@ -115,18 +115,7 @@ _wordcopy_fwd_dest_aligned (dstp, srcp, len)
     len -= 1;
   }
 
-  switch (align)
-    {
-    case 1:
-      fwd_align_merge (1);
-      break;
-    case 2:
-      fwd_align_merge (2);
-      break;
-    case 3:
-      fwd_align_merge (3);
-      break;
-    }
+  fwd_align_merge (align);
 
 }
 
@@ -224,16 +213,5 @@ _wordcopy_bwd_dest_aligned (dstp, srcp, len)
     len -= 1;
   }
 
-  switch (align)
-    {
-    case 1:
-      bwd_align_merge (1);
-      break;
-    case 2:
-      bwd_align_merge (2);
-      break;
-    case 3:
-      bwd_align_merge (3);
-      break;
-    }
+  bwd_align_merge (align);
 }
diff --git a/sysdeps/powerpc/powerpc64/power6/wordcopy.c b/sysdeps/powerpc/powerpc64/power6/wordcopy.c
index b18b97faab..4c72404e3d 100644
--- a/sysdeps/powerpc/powerpc64/power6/wordcopy.c
+++ b/sysdeps/powerpc/powerpc64/power6/wordcopy.c
@@ -115,30 +115,7 @@ _wordcopy_fwd_dest_aligned (dstp, srcp, len)
     len -= 1;
   }
 
-  switch (align)
-    {
-    case 1:
-      fwd_align_merge (1);
-      break;
-    case 2:
-      fwd_align_merge (2);
-      break;
-    case 3:
-      fwd_align_merge (3);
-      break;
-    case 4:
-      fwd_align_merge (4);
-      break;
-    case 5:
-      fwd_align_merge (5);
-      break;
-    case 6:
-      fwd_align_merge (6);
-      break;
-    case 7:
-      fwd_align_merge (7);
-      break;
-    }
+  fwd_align_merge (align);
 
 }
 
@@ -236,28 +213,5 @@ _wordcopy_bwd_dest_aligned (dstp, srcp, len)
     len -= 1;
   }
 
-  switch (align)
-    {
-    case 1:
-      bwd_align_merge (1);
-      break;
-    case 2:
-      bwd_align_merge (2);
-      break;
-    case 3:
-      bwd_align_merge (3);
-      break;
-    case 4:
-      bwd_align_merge (4);
-      break;
-    case 5:
-      bwd_align_merge (5);
-      break;
-    case 6:
-      bwd_align_merge (6);
-      break;
-    case 7:
-      bwd_align_merge (7);
-      break;
-    }
+  bwd_align_merge (align);
 }