// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/main.c
// Function: tracevalue
static void tracevalue(Tree e, int lev) {
	Type ty = unqual(e->type);

	switch (ty->op) {
	case CHAR:
		appendstr("'\\x%2x'");
		break;
	case SHORT:
		if (ty == unsignedshort)
			appendstr("0x%x");
		else /* fall thru */
	case INT:
			appendstr("%d");
		break;
	case UNSIGNED:
		appendstr("0x%x");
		break;
	case FLOAT: case DOUBLE:
		appendstr("%g");
		break;
	case POINTER:
		if (unqual(ty->type) == chartype) {
			static Symbol null;
			if (null == 0)
				null = mkstr("(null)");
			tracevalue(constnode(0, unsignedtype), lev + 1);
			appendstr(" \"%s\"");
			e = condnode(e, e, pointer(idnode(null->u.c.loc)));
		} else {
			appendstr("("); appendstr(typestring(ty, "")); appendstr(")0x%x");
		}
		break;
	case STRUCT: {
		Field q;
		appendstr("("); appendstr(typestring(ty, "")); appendstr("){");
		for (q = ty->u.sym->u.s.flist; q; q = q->link) {
			appendstr(q->name); appendstr("=");
			tracevalue(field(addrof(e), q->name), lev + 1);
			if (q->link)
				appendstr(",");
		}
		appendstr("}");
		return;
		}
	case UNION:
		appendstr("("); appendstr(typestring(ty, "")); appendstr("){...}");
		return;
	case ARRAY:
		if (lev && ty->type->size > 0) {
			int i;
			e = pointer(e);
			appendstr("{");
			for (i = 0; i < ty->size/ty->type->size; i++) {
				Tree p = (*opnode['+'])(ADD, e, constnode(i, inttype));
				if (isptr(p->type) && isarray(p->type->type))
					p = retype(p, p->type->type);
				else
					p = rvalue(p);
				if (i)
					appendstr(",");
				tracevalue(p, lev + 1);
			}
			appendstr("}");
		} else
			appendstr(typestring(ty, ""));
		return;
	default:
		assert(0);
	}
	if (ty == floattype)
		e = cast(e, doubletype);
	else if ((isint(ty) || isenum(ty)) && ty->size != inttype->size)
		e = cast(e, promote(ty));
	args = tree(ARG + widen(e->type), e->type, e, args);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x19ed1
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x19edd
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl (%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0xb, %eax
ja 0x1a2fa
movq -0x40(%rbp), %rax
leaq 0x16e45(%rip), %rcx     # 0x30d4c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x1701e(%rip), %rdi     # 0x30f35
callq 0x19c10
jmp 0x1a319
movq -0x18(%rbp), %rax
leaq 0x2a304(%rip), %rcx     # 0x44230
cmpq (%rcx), %rax
jne 0x19f3f
leaq 0x17016(%rip), %rdi     # 0x30f4e
callq 0x19c10
jmp 0x19f4d
jmp 0x19f41
leaq 0x18d02(%rip), %rdi     # 0x32c4a
callq 0x19c10
jmp 0x1a319
leaq 0x16ff5(%rip), %rdi     # 0x30f4e
callq 0x19c10
jmp 0x1a319
leaq 0x16fd3(%rip), %rdi     # 0x30f3d
callq 0x19c10
jmp 0x1a319
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0xf, (%rax)
jb 0x19f93
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x19f9f
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
leaq 0x2a236(%rip), %rcx     # 0x441e0
cmpq (%rcx), %rax
jne 0x1a039
cmpq $0x0, 0x23ce5(%rip)     # 0x3dca0
jne 0x19fd0
leaq 0x16f7c(%rip), %rdi     # 0x30f40
callq 0x187a0
movq %rax, 0x23cd0(%rip)     # 0x3dca0
leaq 0x2a261(%rip), %rax     # 0x44238
movq (%rax), %rsi
xorl %edi, %edi
callq 0xc7b0
movq %rax, %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x19ea0
leaq 0x16f51(%rip), %rdi     # 0x30f47
callq 0x19c10
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq 0x23c8e(%rip), %rax     # 0x3dca0
movq 0x50(%rax), %rdi
callq 0xddf0
movq %rax, %rdi
callq 0xf9f0
movq -0x58(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq %rax, %rdx
callq 0xcc60
movq %rax, -0x8(%rbp)
jmp 0x1a069
leaq 0x16ee2(%rip), %rdi     # 0x30f22
callq 0x19c10
movq -0x18(%rbp), %rdi
leaq 0x16aed(%rip), %rsi     # 0x30b3d
callq 0x29410
movq %rax, %rdi
callq 0x19c10
leaq 0x16ee9(%rip), %rdi     # 0x30f4d
callq 0x19c10
jmp 0x1a319
leaq 0x16ead(%rip), %rdi     # 0x30f22
callq 0x19c10
movq -0x18(%rbp), %rdi
leaq 0x16ab8(%rip), %rsi     # 0x30b3d
callq 0x29410
movq %rax, %rdi
callq 0x19c10
leaq 0x16eba(%rip), %rdi     # 0x30f53
callq 0x19c10
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x58(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x1a11a
movq -0x20(%rbp), %rax
movq (%rax), %rdi
callq 0x19c10
leaq 0x15bc2(%rip), %rdi     # 0x2fc8a
callq 0x19c10
movq -0x8(%rbp), %rdi
callq 0xdc70
movq %rax, %rdi
movq -0x20(%rbp), %rax
movq (%rax), %rsi
callq 0x101b0
movq %rax, %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x19ea0
movq -0x20(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1a10a
leaq 0x16e1f(%rip), %rdi     # 0x30f24
callq 0x19c10
jmp 0x1a10c
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0x1a0ae
leaq 0x16e3a(%rip), %rdi     # 0x30f5b
callq 0x19c10
jmp 0x1a516
leaq 0x16df0(%rip), %rdi     # 0x30f22
callq 0x19c10
movq -0x18(%rbp), %rdi
leaq 0x169fb(%rip), %rsi     # 0x30b3d
callq 0x29410
movq %rax, %rdi
callq 0x19c10
leaq 0x16e00(%rip), %rdi     # 0x30f56
callq 0x19c10
jmp 0x1a516
cmpl $0x0, -0xc(%rbp)
je 0x1a2dd
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x0, 0x8(%rax)
jle 0x1a2dd
movq -0x8(%rbp), %rdi
callq 0xf9f0
movq %rax, -0x8(%rbp)
leaq 0x18b31(%rip), %rdi     # 0x32cc1
callq 0x19c10
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
cltd
idivl 0x8(%rcx)
movl %eax, %ecx
movl -0x5c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1a2cf
leaq 0x1ef87(%rip), %rax     # 0x39150
movq 0x158(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
movl -0x24(%rbp), %edi
leaq 0x2a012(%rip), %rax     # 0x441f8
movq (%rax), %rsi
callq 0xc7b0
movq -0x70(%rbp), %rsi
movq %rax, %rdx
movq -0x68(%rbp), %rax
movl $0x130, %edi            # imm = 0x130
callq *%rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x1a223
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0x1a22f
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
cmpl $0x7, (%rax)
jne 0x1a293
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
cmpl $0xf, (%rax)
jb 0x1a25f
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x1a26f
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpl $0xc, (%rax)
jne 0x1a293
movq -0x30(%rbp), %rdi
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rsi
callq 0x25a20
movq %rax, -0x30(%rbp)
jmp 0x1a2a0
movq -0x30(%rbp), %rdi
callq 0xf780
movq %rax, -0x30(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x1a2b2
leaq 0x16c77(%rip), %rdi     # 0x30f24
callq 0x19c10
movq -0x30(%rbp), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x19ea0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1a19c
leaq 0x16c85(%rip), %rdi     # 0x30f5b
callq 0x19c10
jmp 0x1a2f5
movq -0x18(%rbp), %rdi
leaq 0x16855(%rip), %rsi     # 0x30b3d
callq 0x29410
movq %rax, %rdi
callq 0x19c10
jmp 0x1a516
leaq 0x14dd6(%rip), %rdi     # 0x2f0d7
leaq 0x16a95(%rip), %rsi     # 0x30d9d
movl $0x245, %edx            # imm = 0x245
leaq 0x16c49(%rip), %rcx     # 0x30f5d
callq 0x30c0
movq -0x18(%rbp), %rax
leaq 0x29ecc(%rip), %rcx     # 0x441f0
cmpq (%rcx), %rax
jne 0x1a345
movq -0x8(%rbp), %rdi
leaq 0x29eb4(%rip), %rax     # 0x441e8
movq (%rax), %rsi
callq 0xe9b0
movq %rax, -0x8(%rbp)
jmp 0x1a417
movq -0x18(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x1a35f
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x88(%rbp)
jmp 0x1a36a
movq -0x18(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
cmpl $0x3, (%rax)
jb 0x1a3a7
movq -0x18(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x1a390
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x90(%rbp)
jmp 0x1a39b
movq -0x18(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpl $0x6, (%rax)
jbe 0x1a3d8
movq -0x18(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x1a3c1
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0x1a3cc
movq -0x18(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
cmpl $0xd, (%rax)
jne 0x1a415
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
leaq 0x29e12(%rip), %rcx     # 0x441f8
movq (%rcx), %rcx
cmpl 0x8(%rcx), %eax
je 0x1a415
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
callq 0xfae0
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0xe9b0
movq %rax, -0x8(%rbp)
jmp 0x1a417
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x1a439
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xa8(%rbp)
jmp 0x1a448
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
cmpl $0x3, (%rax)
jb 0x1a491
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x1a476
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xb0(%rbp)
jmp 0x1a485
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
cmpl $0x6, (%rax)
jbe 0x1a4ce
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x1a4b3
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xb8(%rbp)
jmp 0x1a4c2
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
cmpl $0xd, (%rax)
jne 0x1a4db
movl $0x5, %eax
movl %eax, -0xbc(%rbp)
jmp 0x1a4ee
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x29e30
movl %eax, -0xbc(%rbp)
movl -0xbc(%rbp), %edi
addl $0x20, %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x8(%rbp), %rdx
movq 0x2379e(%rip), %rcx     # 0x3dca8
callq 0x256f0
movq %rax, 0x23792(%rip)     # 0x3dca8
addq $0xc0, %rsp
popq %rbp
retq
nop