Move uinteger_pow gdb/valarith.c to gdb/utils.c and make it public

This is a generic function which I would like to use in a followup
patch adding support for fixed-point types. So this commit moves it
out of valarith.c into util.c, and makes it non-static.

gdb/ChangeLog:

        * utils.h (uinteger_pow): Add declaration.
        * utils.c (uinteger_pow): Moved here (without changes)...
        * valarith.c (uinteger_pow): ... from here.
This commit is contained in:
Joel Brobecker
2020-11-15 03:10:52 -05:00
parent b34c74ab9a
commit e55c6530db
4 changed files with 43 additions and 31 deletions

View File

@ -709,6 +709,36 @@ myread (int desc, char *addr, int len)
return orglen;
}
/* See utils.h. */
ULONGEST
uinteger_pow (ULONGEST v1, LONGEST v2)
{
if (v2 < 0)
{
if (v1 == 0)
error (_("Attempt to raise 0 to negative power."));
else
return 0;
}
else
{
/* The Russian Peasant's Algorithm. */
ULONGEST v;
v = 1;
for (;;)
{
if (v2 & 1L)
v *= v1;
v2 >>= 1;
if (v2 == 0)
return v;
v1 *= v1;
}
}
}
void
print_spaces (int n, struct ui_file *file)
{