fpc/tests/tbs0201.pp
1999-01-19 17:34:01 +00:00

37 lines
595 B
ObjectPascal

{ $OPT= -Ratt }
program bug0201;
type rec = record
a : DWord;
b : Word;
end;
function x(r1 : rec; r2 : rec; var r3 : rec); assembler;
asm
movl r3, %edi
movl r1.a, %eax
addl r2.a, %eax
movl %eax, rec.a(%edi)
movw r1.b, %cx
addw r2.b, %cx
movw %cx, rec.b(%edi)
end;
var r1, r2, r3 : rec;
begin
r1.a := 100; r1.b := 200;
r2.a := 300; r2.b := 400;
x(r1, r2, r3);
Writeln(r3.a, ' ', r3.b);
if (r3.a<>400) or (r3.b<>600) then
begin
Writeln('Error in assembler code');
Halt(1);
end;
end.