vložil Radek Červinka
28. prosince 2010 21:59
Hodně toho bylo napsáno ohledně 64bit Delphi. Aktuální stav je takový, že další verze Delphi by měla být i s 64bit kompilátorem (pokud se nestane něco hooodně nepředvídatelného jako zemětřesení atp).
Následující informace je čistě informativní a bez záruky a jen jako ukázka, vše se může změnit do doby vydání další verze Delphi.
Update
Jak na tom bude ale integrovaný assembler (původně znám jako BASM - Built-in ASM, od dob Kylixu jako CHASM - Chuck Jazdzewski ho přepsal pro podporu Kylixu a pak byl jen zlepšován - tj. Chuck ASM)? Od začátku bylo (aspoň někomu) jasné, že vzhledem ke změnám architektury, volacím konvencím (64bit má jen jednu) a kýho šlaka nebude stačit jen nahradit např. EAX (32bit registr) za RAX (64bit registr).
Allen Bauer ukázal pravděpodobné řešení. Osobně (můj názor) si myslím, že větší část kódu psaného v asm bude v 64bit psaná v pascalu (PUREPASCAL) a pravděpodobně jen kritické části budou v CHASM. Proč? Už dříve jsem psal o výhodách ne ASM kódu vzhledem k lepším možnostem inline kódu, navíc nyní vstupuje do hry i počet nutných změn.
Malá ukázka změn:
nahoře 32bit kód, dole 64bit
Další čtení: x64 ABI vs. x86 ABI aneb volací konvence pro AMD64 a EM64T (o rozdílech mezi 64bit procesory jsem psal už dříve).
Update
Jedná se o Classes.StdWndProc
aktuální deklarace:
function StdWndProc(Window: HWND; Message, WParam: Longint;
LParam: Longint): Longint; stdcall; assembler