Tiens au passage j'ai trouvé une optimisation, un peu casse tete mais ca marche
Je me dis qu'on pourrai faire mieux par contre ...
Le code PB :
Code:
xnew = (x2) - (y2) + x0
ynew = 2 * (x*y) + y0
x = xnew
y = ynew
Deja je peux le remplacer par :
Code:
xnew = (x2) - (y2) + x0
y = 2 * (x*y) + y0
x = xnew
Il me restai a zapper le "x = xnew"
Et je ne pouvais bien sur pas faire
Code:
x = (x2) - (y2) + x0
y = 2 * (x*y) + y0
car j'ai besoin de l'ancien x pour calculer y.
Ce qui au final fut simple, j'ai empilé x 2 fois avant de commencer mes calculs

Le code ASM :
Code:
FLD x ; empiler x sur st0 -> st0 = x
FLD st0 ; rempiler st0 -> st1 = st0 = x
FLD x2 ; empiler x2 sur st0
FSUB y2 ; st0 = x2 - y2
FADD x0 ; st0 = (x2 - y2) + x0
FSTP x ; x = st0 et depile st0
; A ce point la st0 et st1 = ancienne valeur de x que j'ai empilé au debut
FADDP ; st0 = st0 + st1 (soit ancienX + ancienX)
FMUL y ; st0 = ancienX + ancienX * y
FADD y0 ; st0 = ancienX + ancienX * y + y0
FSTP y ; y = st0