• [^] # Re: Position d'Intel sur les processeurs 64 bits grand public

    Posté par . En réponse à la dépêche Position d'Intel sur les processeurs 64 bits grand public. Évalué à 5.

    On ne peut pas faire l'édition de lien d'un .o avec sizeof(void *) = 4 et d'un autre avec sizeof(void *) = 8. Image "titi = toto ;" avec titi (void *) d'un .o 32 bits et toto (void *) d'un .o 64 bits.

    Je te rappelle qu'un programme peut être compilé avec uniquement des offsets relatifs sur 32 bits. On peut d'ailleurs imaginer qqch sur le modèle de ce qui faisait sur PC avant (mode NEAR pour < 4 Go et FAR pour> 4 Go).

    <i>> et de ne transfere que les bits significatifs !

    Ça ne change rien. [...] A moins que le cache ajoute un octet pour indiquer le type.

    Originaux tes exemples, j'ai l'impression que tu n'as jamais vu d'assembleur et les modes d'adressage d'un CPU. Tu oublies les modes d'adressages qui précisent la taille des données à transférer. Sur 68000 un "move" peut être écrit "move.b", "move.w" ou "move.l" , correspondant à 8, 16 ou 32 bits. Quand dans ton code C tu manipules des char ou des long, c'est compilé en instructions qui ne transfèrent que les tailles utiles (en l'occurence 8 bits pour char et 32 bits pour long).