// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/parse/type.c
// Function: fmtunion
static int
fmtunion(char *buf, size_t len, Bitset *visited, Type *t)
{
	char subbuf[512];
	char *name, *ns, *sep;
	char *end, *p;
	size_t i;
	Node *n;

	p = buf;
	end = p + len;
	p += bprintf(p, end - p, "union\n");
	for (i = 0; i < t->nmemb; i++) {
		n = t->udecls[i]->name;
		if (n->name.ns) {
			sep = ".";
			ns = n->name.ns;
		} else {
			sep = "";
			ns = "";
		}
		name = n->name.name;
		if (t->udecls[i]->etype) {
			tybfmt(subbuf, sizeof subbuf, visited, t->udecls[i]->etype);
			p += bprintf(p, end - p, "\t`%s%s%s %s\n", ns, sep, name, subbuf);
		} else {
			p += bprintf(p, end - p, "\t`%s%s%s\n", ns, sep, name);
		}
	}
	p += bprintf(p, end - p, ";;");
	return p - buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x248(%rbp), %rdi
movq -0x240(%rbp), %rsi
movq -0x248(%rbp), %rax
subq %rax, %rsi
leaq 0x18547(%rip), %rdx     # 0x541ce
movb $0x0, %al
callq 0x4a230
addq -0x248(%rbp), %rax
movq %rax, -0x248(%rbp)
movq $0x0, -0x250(%rbp)
movq -0x250(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq 0x78(%rcx), %rax
jae 0x3be43
movq -0x20(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x250(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x3bd0d
leaq 0x1849b(%rip), %rax     # 0x5418d
movq %rax, -0x238(%rbp)
movq -0x258(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x230(%rbp)
jmp 0x3bd29
leaq 0x19b11(%rip), %rax     # 0x55825
movq %rax, -0x238(%rbp)
leaq 0x19b03(%rip), %rax     # 0x55825
movq %rax, -0x230(%rbp)
movq -0x258(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x228(%rbp)
movq -0x20(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x250(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpq $0x0, 0x28(%rax)
je 0x3bde1
leaq -0x220(%rbp), %rdi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x250(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x28(%rax), %rcx
movl $0x200, %esi            # imm = 0x200
callq 0x37ee0
movq -0x248(%rbp), %rdi
movq -0x240(%rbp), %rsi
movq -0x248(%rbp), %rax
subq %rax, %rsi
movq -0x230(%rbp), %rcx
movq -0x238(%rbp), %r8
movq -0x228(%rbp), %r9
leaq -0x220(%rbp), %rax
leaq 0x1840f(%rip), %rdx     # 0x541d5
movq %rax, (%rsp)
movb $0x0, %al
callq 0x4a230
addq -0x248(%rbp), %rax
movq %rax, -0x248(%rbp)
jmp 0x3be2a
movq -0x248(%rbp), %rdi
movq -0x240(%rbp), %rsi
movq -0x248(%rbp), %rax
subq %rax, %rsi
movq -0x230(%rbp), %rcx
movq -0x238(%rbp), %r8
movq -0x228(%rbp), %r9
leaq 0x183cd(%rip), %rdx     # 0x541e2
movb $0x0, %al
callq 0x4a230
addq -0x248(%rbp), %rax
movq %rax, -0x248(%rbp)
jmp 0x3be2c
movq -0x250(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x250(%rbp)
jmp 0x3bca7
movq -0x248(%rbp), %rdi
movq -0x240(%rbp), %rsi
movq -0x248(%rbp), %rax
subq %rax, %rsi
leaq 0x18369(%rip), %rdx     # 0x541cb
movb $0x0, %al
callq 0x4a230
addq -0x248(%rbp), %rax
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
nop