1{ %cpu=x86_64 }
2
3function proc_msabidefault(para1,para2,para3,para4: qword): boolean; ms_abi_default;
4assembler;
5asm
6  cmpq $1, %rcx
7  jne .Lerror
8  cmpq $2, %rdx
9  jne .Lerror
10  cmpq $3, %r8
11  jne .Lerror
12  cmpq $4, %r9
13  jne .Lerror
14  movq $1,%rax
15  jmp .Lok
16.Lerror:
17  movq $0,%rax
18.Lok:
19end;
20
21function proc_msabicdecl(para1,para2,para3,para4: qword): boolean; ms_abi_cdecl;
22assembler;
23asm
24  cmpq $1, %rcx
25  jne .Lerror
26  cmpq $2, %rdx
27  jne .Lerror
28  cmpq $3, %r8
29  jne .Lerror
30  cmpq $4, %r9
31  jne .Lerror
32  movq $1,%rax
33  jmp .Lok
34.Lerror:
35  movq $0,%rax
36.Lok:
37end;
38
39
40function proc_sysvabidefault(para1,para2,para3,para4,para5,para6: qword): boolean; sysv_abi_default;
41assembler;
42asm
43  cmpq $1, %rdi
44  jne .Lerror
45  cmpq $2, %rsi
46  jne .Lerror
47  cmpq $3, %rdx
48  jne .Lerror
49  cmpq $4, %rcx
50  jne .Lerror
51  cmpq $5, %r8
52  jne .Lerror
53  cmpq $6, %r9
54  jne .Lerror
55  movq $1,%rax
56  jmp .Lok
57.Lerror:
58  movq $0,%rax
59.Lok:
60end;
61
62
63function proc_sysvabicdecl_extern(para1,para2,para3,para4,para5,para6: qword): boolean; sysv_abi_cdecl; varargs; external name '_FPC_PROCC_SYSVABICDECL';
64
65function proc_sysvabicdecl(para1,para2,para3,para4,para5,para6: qword): boolean; sysv_abi_cdecl; [public, alias: '_FPC_PROCC_SYSVABICDECL'];
66assembler;
67asm
68  cmpb $0, %al
69  jne .Lerror
70  cmpq $1, %rdi
71  jne .Lerror
72  cmpq $2, %rsi
73  jne .Lerror
74  cmpq $3, %rdx
75  jne .Lerror
76  cmpq $4, %rcx
77  jne .Lerror
78  cmpq $5, %r8
79  jne .Lerror
80  cmpq $6, %r9
81  jne .Lerror
82  movq $1,%rax
83  jmp .Lok
84.Lerror:
85  movq $0,%rax
86.Lok:
87end;
88
89begin
90  if not proc_msabidefault(1,2,3,4) then
91    halt(1);
92  if not proc_msabicdecl(1,2,3,4) then
93    halt(2);
94  if not proc_sysvabidefault(1,2,3,4,5,6) then
95    halt(3);
96  if not proc_sysvabicdecl_extern(1,2,3,4,5,6) then
97    halt(4);
98end.
99