J'utilise une CPU RISC ARM966E-S et je me demandais comment utiliser les extensions d'instructions apparemment disponibles pour de meilleures performances DSP, e. g. une instruction multiplicatrice améliorée.Comment utiliser les instructions de multiplicateur améliorées du jeu d'instructions ARMv5TE
J'ai lu dans le manuel de référence technique que ces extensions d'instructions sont disponibles mais je ne sais pas comment les utiliser/les activer.
Quelqu'un peut-il aider?
Merci d'avance!
Qu'est-ce qui se passe si vous compilez 'res int64_t = (int64_t) i * (int64_t) j; 'et démonter le résultat? Génère-t-il 'SMULL'? Les longues multiplications devraient juste fonctionner. Mais pour saturer et arithmétique parallèle, vous devrez utiliser intrinsèques car ils ne correspondent pas bien à "C". – NickJH
Utilisez le '-march = armv5te' pour indiquer au compilateur que vous avez les instructions DSP' extended'. Le 'ARM ARM' (manuel de référence de l'architecture) contient des détails sur ce que ces choses signifient, il y a aussi les variantes 'jazelle' et 's', les 'PLD',' LDRD 'et 'MULL' sont des additions. arm arm directory] (https://gcc.gnu.org/git/?p=gcc.git;f=gcc/config/arm;hb=HEAD) qui définit la génération de code.Vous pouvez trouver les options dont vous pourriez avoir besoin pour votre Version GCC pour que le compilateur émette des trucs –
Jetez un oeil à [get gcc pour émettre des instructions idiv] (https://stackoverflow.com/questions/15782089/gcc-to-emit-arm-idiv-instructions). est plus complexe que vous ne le pensez: il y a d'abord la possibilité d'utiliser les instructions, puis il est plus efficace que d'autres instructions.Le pipeline ARM et la sémantique 'C' peuvent/peuvent ne pas permettre l'utilisation des instructions. L'étape consiste à spécifier une CPU qui permettra l'émission de l'opcode (comme dans la vieille réponse timer/dwelchs), ce qui vous permet d'utiliser l'assembleur en ligne même si 'C' ne coaxialise pas pour l'utiliser. ré ef. –