pa ja izdebagova brdo programa generisanih vc++ kompajlerom i ne nadjo je.
Pa ako nisi pre toga kompajlirao taj kod sa /G6 switch-em onda dzaba trazis.
😉
Eto primer arm-a i strava ideje, imas registar koji ti sadrzi povratnu adresu...
To je postojalo i pre ARM-a na nekim procesorima koliko se secam. Koliko god bila dobra ideja nije savrsena upravo zbog rekurzije.
Arm recimo ima barel shifter na mislim svakoj instrukciji tako da kad sabiras dva registra jedan operand mozes da shiftujes za dzabe.
LEA moze da uradi to isto na x86. Na primer LEA EAX, [EAX + EDX * 2].
Mislim ARM generalno mi se mnogo vise svidja od x86.
A meni se vise svidja MC 68000 sintaksa od ARM-a.
Mislim da ima cak i insturkcija madd tipa pomnozi dva broja i dodaj treci i to dodavanje je valjda isto za dzabe. To je plan 🙂
Dodavanje nije za dzabe tj. to nije poenta. Crni genuine, opet moram da te poducavam
😀
MADD/FMA/MAC je fused (spojena) operacija da bi se zadrzala veca preciznost pri akumulaciji rezultata.
Normalno procesor uradi mnozenje, zaokruzi rezultat prema trenutno aktivnom modu zaokruzivanja, zatim sabere pa opet zaokruzi rezultat. To dovodi do akumulacije greske. MADD ima samo jedno zaokruzivanje na kraju, a interno cuva medjurezultat izmedju dve operacije u beskonacnoj preciznosti.
Sto se tice plana,
AVX donosi FMA na x86. I ne samo multiply-add nego i multiply-sub i negative multiply-add/sub, pa cak i multiply-add-sub. Takodje donosi i AES engine i vecu ortogonalnost instrukcijskog seta, kao i vec pomenutu nedestruktivnu sintaksu sa tri operanda (destination i dva source-a)
😛
kad krenem nesto da kucam prvo se zapitam, u kom mi je bese modu procesor, axa nije amd64 onda imam samo 8xmm registara, bemu..
Pa za taj propust se zahvali AMD-u, ne Intelu. Intel je samo "kopirao" AMD64 :d
eto plan je intelu bio da nema ortogonalni set tj. cx je kaunter i nista vise , bp bazni pointer i sl... a onda kad su videli da to ne valja ajde da generalizujemo pa da svi mogu za sve da se koriste al neka su imena, znaci eto taj prelaz sa 286 na 386 koji je bio kljucan je mogo sve da sredi...
A kako bi ti resio pristup AH i AL polovinama registra AX kad bi se on zvao R1?
Da ti nije mozda bolje sto pod AMD64 moras da pises R15D kad ti treba samo donja 32 bita registra R15 umesto da pises E15 kao sto i pises EAX umesto RAX?
Uostalom, zasto u AMD64 nema ortogonalnosti instrukcijskog seta?
AMD-u se pruzila jedinstvena prilika da isplanira i sprovede u delo bolje od Intela i eto sta uradise, a za nakaznost x86 naravno svi opet krive samo Intel.
zasto recimo za sse nesu mogli odmah da predvide sta ce sve biti potrebno, kad i onako se ceka po sto godina na novi procesor pa da lepo upakuju sve a ne da cekam dot produkt u 4.1 verziji pa da se pitam jel ima jos neko taj procesor.
Eh sad... to sto pitas je bas naiva na nivou francuske sobarice.
Zapitaj se kako bi prodali nesto novo ako bi svaki proizvod iz prve bio savrsen. Tako nesto ne postoji niti ce ikada postojati, pogotovo ne u necem sto se zove potrosacko drustvo.
Isto tako bih ja tebe mogao da pitam zasto GPU nije od starta bio programabilan.
Sto se tice dot produkta, nista te (osim eventualno lenjosti) ne sprecava da podrzis i starije procesore sa odgovarajucom zamenom za tu instrukciju. Naravno, bice sporije ali ce raditi. Kome bude trebalo brze kupice novi procesor isto kao sto je svojevremeno kupovao i novu DX9 graficku kartu iako je vec imao "DX9" GeForce FX.
ne znam. ja jako cenim intel jer su im procesori stvarno dobri i stabilni i rade ono sto im kazes al mi se ne svidja nacin na koji im kazes sta da rade
E pa genuine, niko te brate ne tera da programiras u asembleru ako ne volis. Ni meni se ne svidja nacin na koji se programira GPU pa se ne zalim okolo.