On 12/29/2015 06:42 PM, Vincent Lefevre wrote:
On 2015-12-28 10:49:07 +0100, Basile Starynkevitch wrote:
L'assembleur n'est quasiment plus utilisé (sauf peut-être dans l'embarqué de
bas niveau, sur des petits microcontroleurs 8 bits avec quelques kilo-octets
de mémoire).
Il est très utilisé par GMP, car le langage C (qui est pourtant celui
de plus bas niveau) n'est pas vraiment conçu pour implémenter de la
multiprécision à base d'entiers.
Oui et non. C'est vrai que GMP -voir http://gmplib.org/ pour les
détails- utilise du code assembleur (notamment parce que les
instructions machine d'addition avec retenue très utiles en arithmetique
double précision ne sont pas accessibles en C99, mais GCC fournit
https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html &
https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html ...) mais
la très grosse majorité de GMP est codée en C, pas en assembleur. Seul
le sous repertoire mpn/x86_64 visible en
https://gmplib.org/repo/gmp-6.1/file/tip/mpn/x86_64 du code source de
GMP contient des fichiers assembleurs (pour x86-64).
Je n'ai pas fait le compte des lignes de code dans GMP, mais il me
semble bien que sur une machine donnée, les trois quarts au moins du
code binaire d'une librarie libgmp.so proviennent de fichiers C, pas de
fichiers assembleurs.
Bonne année à tous.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***