// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/simp.c
// Function: addrnode
static Tree addrnode(p, n, ty) Symbol p; int n; Type ty; {
	Symbol q = (Symbol)talloc(sizeof *q);
	Tree e;
	static struct symbol z;

	*q = z;
	q->name = stringd(genlabel(1));
	q->sclass = p->sclass;
	q->scope = p->scope;
	q->type = ty;
	q->defined = 1;
	q->temporary = p->temporary;
	q->generated = p->generated;
	q->computed = 1;
	q->addressed = p->addressed;
	q->initialized = p->initialized;
	q->ref = 1;
	if (p->scope == GLOBAL || p->sclass == STATIC || p->sclass == EXTERN) {
		q->sclass = p->sclass == AUTO ? STATIC : p->sclass;
		address(q, p, n);
		e = tree(ADDRG+P, ty, 0, 0);
	} else {
		Code cp;
		if (!p->defined)
			addlocal(p);
		cp = code(Address);
		cp->u.addr.sym = q;
		cp->u.addr.base = p;
		cp->u.addr.offset = n;
		e = tree(p->scope == PARAM ? ADDRF+P : ADDRL+P, ty, 0, 0);
	}
	e->u.sym = q;
	return e;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x1b5ae(%rip), %rax     # 0x3b648
movq (%rax), %rax
movl $0x88, (%rax)
leaq 0x1b59e(%rip), %rax     # 0x3b648
movq (%rax), %rax
movq 0x8(%rax), %rax
leaq 0x1b590(%rip), %rcx     # 0x3b648
movq (%rcx), %rcx
movslq (%rcx), %rcx
addq %rcx, %rax
leaq 0x1b580(%rip), %rcx     # 0x3b648
movq (%rcx), %rcx
cmpq 0x10(%rcx), %rax
jb 0x200ef
leaq 0x1b570(%rip), %rax     # 0x3b648
movq (%rax), %rax
movl (%rax), %edi
leaq 0x1b564(%rip), %rsi     # 0x3b648
callq 0x253d0
movq %rax, -0x38(%rbp)
jmp 0x2013a
leaq 0x1b552(%rip), %rax     # 0x3b648
movq (%rax), %rax
movl (%rax), %edx
leaq 0x1b546(%rip), %rax     # 0x3b648
movq (%rax), %rax
movq 0x8(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x8(%rax)
leaq 0x1b52e(%rip), %rax     # 0x3b648
movq (%rax), %rax
movq 0x8(%rax), %rax
leaq 0x1b520(%rip), %rcx     # 0x3b648
movq (%rcx), %rcx
movslq (%rcx), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x1ed93(%rip), %rsi     # 0x3eee0
movl $0x88, %edx
callq 0x3120
movl $0x1, %edi
callq 0x24d90
movl %eax, %edi
callq 0x23c50
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movb 0x1a(%rax), %cl
movq -0x20(%rbp), %rax
movb %cl, 0x1a(%rax)
movq -0x8(%rbp), %rax
movw 0x18(%rax), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x18(%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x20(%rbp), %rax
movb 0x1b(%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, 0x1b(%rax)
movq -0x8(%rbp), %rax
movb 0x1b(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x20(%rbp), %rax
movb %cl, %dl
movb 0x1b(%rax), %cl
andb $0x1, %dl
shlb %dl
andb $-0x3, %cl
orb %dl, %cl
movb %cl, 0x1b(%rax)
movq -0x8(%rbp), %rax
movb 0x1b(%rax), %al
shrb $0x2, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x20(%rbp), %rax
movb %cl, %dl
movb 0x1b(%rax), %cl
andb $0x1, %dl
shlb $0x2, %dl
andb $-0x5, %cl
orb %dl, %cl
movb %cl, 0x1b(%rax)
movq -0x20(%rbp), %rax
movb 0x1b(%rax), %cl
andb $-0x9, %cl
orb $0x8, %cl
movb %cl, 0x1b(%rax)
movq -0x8(%rbp), %rax
movb 0x1b(%rax), %al
shrb $0x4, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x20(%rbp), %rax
movb %cl, %dl
movb 0x1b(%rax), %cl
andb $0x1, %dl
shlb $0x4, %dl
andb $-0x11, %cl
orb %dl, %cl
movb %cl, 0x1b(%rax)
movq -0x8(%rbp), %rax
movb 0x1b(%rax), %al
shrb $0x5, %al
andb $0x1, %al
movzbl %al, %ecx
movq -0x20(%rbp), %rax
movb %cl, %dl
movb 0x1b(%rax), %cl
andb $0x1, %dl
shlb $0x5, %dl
andb $-0x21, %cl
orb %dl, %cl
movb %cl, 0x1b(%rax)
movq -0x20(%rbp), %rax
movl $0x1, 0x1c(%rax)
movq -0x8(%rbp), %rax
movzwl 0x18(%rax), %eax
cmpl $0x3, %eax
je 0x20285
movq -0x8(%rbp), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x51, %eax
je 0x20285
movq -0x8(%rbp), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x4a, %eax
jne 0x202de
movq -0x8(%rbp), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x43, %eax
jne 0x2029c
movl $0x51, %eax
movl %eax, -0x3c(%rbp)
jmp 0x202a7
movq -0x8(%rbp), %rax
movzbl 0x1a(%rax), %eax
movl %eax, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movb %al, %cl
movq -0x20(%rbp), %rax
movb %cl, 0x1a(%rax)
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rsi
movl -0xc(%rbp), %edx
callq 0x2ae90
movq -0x18(%rbp), %rsi
movl $0x107, %edi            # imm = 0x107
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x256f0
movq %rax, -0x28(%rbp)
jmp 0x20354
movq -0x8(%rbp), %rax
movb 0x1b(%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x202f8
movq -0x8(%rbp), %rdi
callq 0x3290
movl $0x3, %edi
callq 0x3300
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x20(%rax)
movl -0xc(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, 0x28(%rax)
movq -0x8(%rbp), %rax
movzwl 0x18(%rax), %ecx
movl $0x127, %edi            # imm = 0x127
movl $0x117, %eax            # imm = 0x117
cmpl $0x4, %ecx
cmovel %eax, %edi
movq -0x18(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x256f0
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x28(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)