* grub-core/kern/misc.c (grub_divmod64): Don't fallback to
simple division on arm and ia64.
This commit is contained in:
parent
e0a7bffa1e
commit
c4f11a2a99
2 changed files with 11 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-11-08 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/kern/misc.c (grub_divmod64): Don't fallback to
|
||||
simple division on arm and ia64.
|
||||
|
||||
2013-11-08 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/kern/arm/misc.S (__aeabi_unwind_cpp_pr0): Add dummy to
|
||||
|
|
|
@ -551,6 +551,11 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r)
|
|||
grub_uint64_t q = 0;
|
||||
grub_uint64_t m = 0;
|
||||
|
||||
/* ARM and IA64 don't have a fast 32-bit division.
|
||||
Using that code would just make us use libgcc routines, calling
|
||||
them twice (once for modulo and once for quotient.
|
||||
*/
|
||||
#if !defined (__arm__) && !defined (__ia64__)
|
||||
/* Skip the slow computation if 32-bit arithmetic is possible. */
|
||||
if (n < 0xffffffff && d < 0xffffffff)
|
||||
{
|
||||
|
@ -559,6 +564,7 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r)
|
|||
|
||||
return ((grub_uint32_t) n) / (grub_uint32_t) d;
|
||||
}
|
||||
#endif
|
||||
|
||||
while (bits--)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue