From fdf3e18a143c7e5a40f0466fa910f49df9632db2 Mon Sep 17 00:00:00 2001
From: Nathan Froyd <froydnj@codesourcery.com>
Date: Wed, 23 Mar 2011 01:34:55 +0000
Subject: [PATCH] libgcc2.c (__lshrdi3, [...]): Use W_TYPE_SIZE.

	* libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
	(__ffsDI2): Likewise.

From-SVN: r171338
---
 gcc/ChangeLog | 20 ++++++++++++++++++++
 gcc/libgcc2.c | 10 +++++-----
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 430f2932c04d..7790596163b7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
+
+	* libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
+	(__ffsDI2): Likewise.
+
 2011-03-22  Richard Henderson  <rth@redhat.com>
 
 	* config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
@@ -539,6 +544,21 @@
 
 	* dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
 
+2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
+
+	* system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
+	(FUNCTION_ARG_ADVANCE): Likewise.
+	* tm.texi.in: Change references to them to hook references.
+	* tm.texi: Regenerate.
+	* targhooks.c (default_function_arg): Eliminate check for target
+	macro.
+	(default_function_incoming_arg): Likewise.
+	(default_function_arg_advance): Likewise.
+	* target.def (function_arg, function_incoming_arg): Change to
+	DEFHOOK.
+	(function_arg_advance): Likewise.
+	* target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
+
 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
 
 	* tree.c (build_call_1): New function.
diff --git a/gcc/libgcc2.c b/gcc/libgcc2.c
index 78d53f02aee8..5312a10b1101 100644
--- a/gcc/libgcc2.c
+++ b/gcc/libgcc2.c
@@ -407,7 +407,7 @@ __lshrdi3 (DWtype u, shift_count_type b)
     return u;
 
   const DWunion uu = {.ll = u};
-  const shift_count_type bm = (sizeof (Wtype) * BITS_PER_UNIT) - b;
+  const shift_count_type bm = W_TYPE_SIZE - b;
   DWunion w;
 
   if (bm <= 0)
@@ -435,7 +435,7 @@ __ashldi3 (DWtype u, shift_count_type b)
     return u;
 
   const DWunion uu = {.ll = u};
-  const shift_count_type bm = (sizeof (Wtype) * BITS_PER_UNIT) - b;
+  const shift_count_type bm = W_TYPE_SIZE - b;
   DWunion w;
 
   if (bm <= 0)
@@ -463,13 +463,13 @@ __ashrdi3 (DWtype u, shift_count_type b)
     return u;
 
   const DWunion uu = {.ll = u};
-  const shift_count_type bm = (sizeof (Wtype) * BITS_PER_UNIT) - b;
+  const shift_count_type bm = W_TYPE_SIZE - b;
   DWunion w;
 
   if (bm <= 0)
     {
       /* w.s.high = 1..1 or 0..0 */
-      w.s.high = uu.s.high >> (sizeof (Wtype) * BITS_PER_UNIT - 1);
+      w.s.high = uu.s.high >> (W_TYPE_SIZE - 1);
       w.s.low = uu.s.high >> -bm;
     }
   else
@@ -534,7 +534,7 @@ __ffsDI2 (DWtype u)
   if (uu.s.low != 0)
     word = uu.s.low, add = 0;
   else if (uu.s.high != 0)
-    word = uu.s.high, add = BITS_PER_UNIT * sizeof (Wtype);
+    word = uu.s.high, add = W_TYPE_SIZE;
   else
     return 0;
 
-- 
GitLab