Am 04.02.2011 17:26, schrieb Marcus Meissner: > On Fri, Feb 04, 2011 at 04:51:46PM +0100, André Hentschel wrote: >> Am 04.02.2011 16:31, schrieb Alexandre Julliard: >>> André Hentschel <n...@dawncrow.de> writes: >>> >>>> +unsigned int wld_modulo( const unsigned int a, const Elf32_Word b ) >>>> +{ >>>> +#ifdef __ARM_EABI__ >>>> + unsigned int i; >>>> + if(b > a) return a; >>>> + for(i = 0; i * b < a + b; i++) >>>> + if(i * b > a - b) return (a - i * b); >>>> + return 0; >>> >>> That's very inefficient, there are better ways... >>> >> >> Thanks for having a look at it. >> The Problem is that i also can't use '/', otherwise it wants to link to >> __aeabi_uidiv . >> That leads to some Problems, so i'll try to find some better math solution >> and if that fails i maybe try it the assembler way... > > modulo would be "%" btw, > > return a%b; > > but this might generate external functions too... hmm, try -Os as option? > > Ciao, Marcus
% and / both lead to external dependencies here... maybe the euclidean algorithm helps, because -Os would need ugly changes to configure i guess. -- Best Regards, André Hentschel