lib2funcs.c (__clrsbhi2): New function.

* config/m32c/lib2funcs.c (__clrsbhi2): New function.
	Implements __clrsb for an HImode argument.

From-SVN: r190032
This commit is contained in:
Nick Clifton 2012-08-01 09:36:01 +00:00 committed by Nick Clifton
parent cecd512351
commit d04aacfc87
2 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2012-08-01 Nick Clifton <nickc@redhat.com>
* config/m32c/lib2funcs.c (__clrsbhi2): New function.
Implements __clrsb for an HImode argument.
2012-07-31 Nick Clifton <nickc@redhat.com>
* config/stormy16/lib2funcs.c (__clrsbhi2): New function.

View File

@ -1,5 +1,5 @@
/* libgcc routines for R8C/M16C/M32C
Copyright (C) 2005, 2009
Copyright (C) 2005, 2009, 2012
Free Software Foundation, Inc.
Contributed by Red Hat.
@ -132,3 +132,17 @@ __umoddi3 (uint32_type a, uint32_type b)
{
return udivmodsi4 (a, b, 1);
}
/* Returns the number of leading redundant sign bits in X.
I.e. the number of bits following the most significant bit which are
identical to it. There are no special cases for 0 or other values. */
int
__clrsbhi2 (word_type x)
{
if (x < 0)
x = ~x;
if (x == 0)
return 15;
return __builtin_clz (x) - 1;
}