fpc/tests/webtbs/twm0226.pp
2022-05-15 18:01:48 +02:00

35 lines
509 B
ObjectPascal

{ %cpu=x86_64 }
program test;
type
rec1 = record
onlyfield: Single;
end;
rec2 = record
onlyfield: Double;
end;
function fn(a1: rec1; a2: rec2): boolean; ms_abi_cdecl; assembler; nostackframe;
asm
xorl %eax, %eax
cmpl $0x3f800000, %ecx
jne .Lend
movq $0x4000000000000000, %rcx
cmpq %rcx,%rdx
jne .Lend
movl $1, %eax
.Lend:
end;
var
myrec1: rec1;
myrec2: rec2;
begin
myrec1.onlyfield := 1.0;
myrec2.onlyfield := 2.0;
if not fn(myrec1, myrec2) then
halt(1);
end.