fpc/tests/test/taarch64abi.pp
Jonas Maebe 846da37c9f --- Merging r41243 into '.':
U    rtl/inc/objc.pp
--- Recording mergeinfo for merge of r41243 into '.':
 U   .
--- Merging r41335 into '.':
U    compiler/arm/cgcpu.pas
U    compiler/cgobj.pas
--- Recording mergeinfo for merge of r41335 into '.':
 G   .
--- Merging r41422 into '.':
U    compiler/scanner.pas
--- Recording mergeinfo for merge of r41422 into '.':
 G   .
--- Merging r41474 into '.':
U    compiler/pexpr.pas
A    tests/webtbf/tw35149a.pp
A    tests/webtbs/tw35149.pp
--- Recording mergeinfo for merge of r41474 into '.':
 G   .
--- Merging r41650 into '.':
U    compiler/aarch64/racpugas.pas
--- Recording mergeinfo for merge of r41650 into '.':
 G   .
--- Merging r41651 into '.':
U    tests/test/taarch64abi.pp
--- Recording mergeinfo for merge of r41651 into '.':
 G   .
--- Merging r41905 into '.':
U    compiler/utils/ppuutils/ppudump.pp
--- Recording mergeinfo for merge of r41905 into '.':
 G   .

git-svn-id: branches/fixes_3_2@41943 -
2019-04-27 19:21:30 +00:00

79 lines
1.1 KiB
ObjectPascal

{ %CPU=aarch64 }
{ %skiptarget=darwin }
{
Tests that arguments and the result are not required to be sign/zero extended.
}
procedure ProcByte(p: byte);
begin
if p <> $78 then
Halt(1);
end;
procedure ProcWord(p: word);
begin
if p <> $5678 then
Halt(2);
end;
procedure ProcDWord(p: dword);
begin
if p <> $12345678 then
Halt(3);
end;
function RetByte: byte; assembler;
asm
movz x0,#22136
movk x0,#4660,lsl #16
movk x0,#4369,lsl #32
movk x0,#4369,lsl #48
end;
function RetWord: word; assembler;
asm
movz x0,#22136
movk x0,#4660,lsl #16
movk x0,#4369,lsl #32
movk x0,#4369,lsl #48
end;
function RetDWord: dword; assembler;
asm
movz x0,#22136
movk x0,#4660,lsl #16
movk x0,#4369,lsl #32
movk x0,#4369,lsl #48
end;
procedure TestParams;
var
q: qword;
begin
q:=$1111111112345678;
asm
ldr x0,q
bl ProcByte
ldr x0,q
bl ProcWord
ldr x0,q
bl ProcDWord
end;
end;
procedure TestReturns;
begin
if RetByte <> $78 then
Halt(11);
if RetWord <> $5678 then
Halt(12);
if RetDWord <> $12345678 then
Halt(13);
end;
begin
TestParams;
TestReturns;
end.