// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/decl.c
// Function: oldstyle
static Type oldstyle(char *name, Type ty, Symbol caller[], Symbol callee[]) {
	int i;
	Symbol p;

	while (kind[t] == CHAR || kind[t] == STATIC
	|| t == ID && tsym && tsym->sclass == TYPEDEF)
		decl(dclparam, 1);
	foreach(identifiers, PARAM, oldparam, (Generic)callee);
	for (i = 0; p = callee[i]; i++) {
		if (p->type == 0) {
			p->type = inttype;
			p->defined = 1;
		}
		*caller[i] = *p;
		if (p->sclass == REGISTER) {
			caller[i]->sclass = AUTO;
			++regcount;
		}
		if (unqual(p->type) == floattype)
			caller[i]->type = doubletype;
		else
			caller[i]->type = promote(p->type);
	}
	if ((p = lookup(name, identifiers)) && p->scope == GLOBAL
	&& isfunc(p->type) && p->type->u.proto) {
		Type *proto = p->type->u.proto;
		for (i = 0; caller[i] && *proto; proto++, i++)
			if (eqtype(unqual(*proto), unqual(caller[i]->type), 1) == 0)
				break;
		if (*proto && (*proto != voidtype || proto != p->type->u.proto) || caller[i])
			error("conflicting argument declarations for function `%s'\n", name);
		ty = func(freturn(ty), p->type->u.proto);
	} else
		ty = func(freturn(ty), 0);
	return ty;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq 0x34dc1(%rip), %rax     # 0x3db80
movl (%rax), %eax
movl %eax, %ecx
leaq 0x30bc6(%rip), %rax     # 0x39990
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x3, %ecx
movb %al, -0x39(%rbp)
je 0x8e38
leaq 0x34da1(%rip), %rax     # 0x3db80
movl (%rax), %eax
movl %eax, %ecx
leaq 0x30ba6(%rip), %rax     # 0x39990
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x51, %ecx
movb %al, -0x39(%rbp)
je 0x8e38
xorl %eax, %eax
leaq 0x34d7f(%rip), %rcx     # 0x3db80
cmpl $0x20, (%rcx)
movb %al, -0x3a(%rbp)
jne 0x8e32
xorl %eax, %eax
leaq 0x34cde(%rip), %rcx     # 0x3daf0
cmpq $0x0, (%rcx)
movb %al, -0x3a(%rbp)
je 0x8e32
leaq 0x34cce(%rip), %rax     # 0x3daf0
movq (%rax), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x53, %eax
sete %al
movb %al, -0x3a(%rbp)
movb -0x3a(%rbp), %al
movb %al, -0x39(%rbp)
movb -0x39(%rbp), %al
testb $0x1, %al
jne 0x8e41
jmp 0x8e57
leaq 0x3a8(%rip), %rdi       # 0x91f0
movl $0x1, %esi
callq 0x66e0
jmp 0x8db8
leaq 0x322da(%rip), %rax     # 0x3b138
movq (%rax), %rdi
movq -0x20(%rbp), %rcx
movl $0x4, %esi
leaq 0x60f(%rip), %rdx       # 0x9480
callq 0x243f0
movl $0x0, -0x24(%rbp)
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
je 0x8f91
movq -0x30(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x8ec4
leaq 0x3b34f(%rip), %rax     # 0x441f8
movq (%rax), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x30(%rbp), %rax
movb 0x1b(%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, 0x1b(%rax)
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x30(%rbp), %rsi
movl $0x88, %edx
callq 0x3120
movq -0x30(%rbp), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x4e, %eax
jne 0x8f0a
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movb $0x43, 0x1a(%rax)
movl 0x32b2f(%rip), %eax     # 0x3ba30
addl $0x1, %eax
movl %eax, 0x32b26(%rip)     # 0x3ba30
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
cmpl $0xf, (%rax)
jb 0x8f29
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x8f35
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
leaq 0x3b2b0(%rip), %rcx     # 0x441f0
cmpq (%rcx), %rax
jne 0x8f61
leaq 0x3b29c(%rip), %rax     # 0x441e8
movq (%rax), %rcx
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x20(%rax)
jmp 0x8f81
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xfae0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x20(%rax)
jmp 0x8f83
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x8e7d
movq -0x8(%rbp), %rdi
leaq 0x3219c(%rip), %rax     # 0x3b138
movq (%rax), %rsi
callq 0x24670
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
je 0x916e
movq -0x30(%rbp), %rax
movzwl 0x18(%rax), %eax
cmpl $0x3, %eax
jne 0x916e
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
cmpl $0xf, (%rax)
jb 0x8fe2
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x8fee
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpl $0xb, (%rax)
jne 0x916e
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x916e
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x18(%rbp), %rcx
movslq -0x24(%rbp), %rdx
xorl %eax, %eax
cmpq $0x0, (%rcx,%rdx,8)
movb %al, -0x51(%rbp)
je 0x9047
movq -0x38(%rbp), %rax
cmpq $0x0, (%rax)
setne %al
movb %al, -0x51(%rbp)
movb -0x51(%rbp), %al
testb $0x1, %al
jne 0x9053
jmp 0x90fb
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpl $0xf, (%rax)
jb 0x9070
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x907b
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
cmpl $0xf, (%rax)
jb 0x90b2
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x90c6
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x68(%rbp), %rdi
movq -0x70(%rbp), %rsi
movl $0x1, %edx
callq 0x27f80
cmpl $0x0, %eax
jne 0x90df
jmp 0x90fb
jmp 0x90e1
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x9025
movq -0x38(%rbp), %rax
cmpq $0x0, (%rax)
je 0x912a
movq -0x38(%rbp), %rax
movq (%rax), %rax
leaq 0x3b12d(%rip), %rcx     # 0x44240
cmpq (%rcx), %rax
jne 0x9139
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
movq 0x20(%rcx), %rcx
cmpq 0x18(%rcx), %rax
jne 0x9139
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x914b
movq -0x8(%rbp), %rsi
leaq 0x265d8(%rip), %rdi     # 0x2f71c
movb $0x0, %al
callq 0xd530
movq -0x10(%rbp), %rdi
callq 0x28a30
movq %rax, %rdi
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rsi
callq 0x27c60
movq %rax, -0x10(%rbp)
jmp 0x9187
movq -0x10(%rbp), %rdi
callq 0x28a30
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x27c60
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)