Hi,

I just noticed that the 'large' memory model version of SDCC's STM8 standard library does not contain many of the optimised routines that the regular 'medium' version includes - namely these:

- __divsint
- __divslong
- __divulong
- __fast_long_neg
- __modsint
- __modslong
- __modulong
- __mulint
- __mullong
- _strcmp
- _strcpy

Is there any particular reason why these have not been included in the 'large' library?

To my knowledge, the only way that 'large' implementations would differ is in the use of some 'far' instruction variants (e.g. callf, retf) and different stack pointer offsets for function args. At least, those are the only differences I see when comparing the code of routines common to both.

Discovered because I had some code doing a bunch of uint32_t multiplications, and was wondering why it was so much slower after I compiled it with --model-large. Now I know why...

Regards,
Basil Hussain


_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to