Wrong order of arguments in register calling convention functions
Original Reporter info from Mantis: CandyMan
Description:
var
First,
Second:Boolean;
procedure Test1(A,B,C:Byte); register;
assembler;asm
XOR AH,AH
CMP AL,1
JNE @@1
CMP DL,2
JNE @@1
CMP CL,3
JNE @@1
MOV AH,1
@@1: MOV First,AH
end;
// @Result is in eax instead in ecx
function Test2(A,B:Byte):ShortString; register;
assembler;asm
XOR AH,AH
CMP AL,1
JNE @@1
CMP DL,2
JNE @@1
MOV AH,1
@@1: MOV Second,AH
end;
var
S:ShortString;
begin
Test1(1,2,3);
WriteLn('Valid: ',First);
S:=Test2(1,2);
WriteLn('Valid: ',Second);
end.
Mantis conversion info:
-
Mantis ID: 15691
-
Version: 2.4.0
-
Monitored by: » Jasper (Jasper Neumann), » luizamerico (Luiz Americo), » etrusco (Flávio Etrusco), » alexvins (Alexander Shishkin), » @marcoonthegit (Marco van de Voort), » @ganmax (Maxim Ganetsky)