Comment représenter le x86 suivant SSA form:
xor eax, eax
inc ax
En introduisant certaines fonctions pseudo, je viens avec:
[email protected] = [email protected]^[email protected]
[email protected] = LOWORD([email protected])
[email protected] = LOBYTE([email protected])
[email protected] = HIBYTE([email protected])
[email protected] = HIWORD([email protected])
[email protected] = [email protected] + 1
[email protected] = MAKEDWORD([email protected], HIWORD([email protected]))
[email protected] = LOBYTE([email protected])
[email protected] = HIBYTE([email protected])
Mais je pense qu'il est trop bavard
Qu'entendez-vous par "formulaire SSA"? –
@Eli Bendersky: http://en.wikipedia.org/wiki/Static_single_assignment_form – inv
Je n'ai aucune suggestion pour simplifier cela, mais je suis curieux de savoir où cela est utilisé. Êtes-vous en train d'essayer d'optimiser/traduire une application compilée existante? ***** En regardant l'exemple ci-dessus, n'auriez-vous pas besoin de garder eax, ax, al et ah synchronisé à chaque étape. Par exemple, que se passe-t-il si les instructions suivantes sont une branche conditionnelle où un chemin utilise ax et l'autre utilise eax? Vous devrez alors être encore plus bavard pour mettre à jour toutes les versions de ce registre mises à jour! –