Aber nun sind ja Value und Result ja im selben Register und schon weiß Delphi nicht mehr wo das Result hin ist.
Delphi-Quellcode:
function ROL(Value: Integer; Count: Byte): Integer;
inline;
asm
MOV &Result, &Value
ROL &Result, &Count
end;
Und schon hat man wieder einen blöden Code.
Man könnte durch neue Postfixe bei den parametern dem Compiler mitteilen, dass ein Parameter sowohl als in als auch als out fungiert(out kanns nur einen geben, dann fällt das Result weg).
Sowas wie:
Delphi-Quellcode:
procedure ROL(InOut Value: Integer; Count: Byte);
inline;
asm
ROL &Value, &Count
end;
schon weiß der compiler wieder, wo der Hase lang läuft. Und festgelegten Output braucht man primär, wenn die inline funktion in einer expression benutzt wird.