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