// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/6/gen.c
// Function: tydescid
char *
tydescid(char *buf, size_t bufsz, Type *ty)
{
	char *sep, *ns;
	char *p, *end;
	size_t i;

	sep = "";
	ns = "";
	p = buf;
	end = buf + bufsz;
	ty = tydedup(ty);
	if (ty->type == Tyname) {
		if (ty->name->name.ns) {
			ns = ty->name->name.ns;
			sep = "$";
		}
		if (ty->vis != Visintern || ty->isimport)
			p += bprintf(p, end - p, "_tydesc$%s%s%s", ns, sep, ty->name->name.name, ty->tid);
		else
			p += bprintf(p, end - p, "_tydesc$%s%s%s$%d", ns, sep, ty->name->name.name, ty->tid);
		for (i = 0; i < ty->narg; i++)
			p += tyidfmt(p, end - p, ty->arg[i]);
	} else {
		if (file.globls->name) {
			ns = file.globls->name;
			sep = "$";
		}
		bprintf(buf, bufsz, "_tydesc%s%s$%d",sep, ns, ty->tid);
	}
	return buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x4dc9a(%rip), %rax     # 0x55825
movq %rax, -0x20(%rbp)
leaq 0x4dc8f(%rip), %rax     # 0x55825
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rax
addq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0x36b70
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1c, (%rax)
jne 0x7cf2
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x7bf8
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
leaq 0x43685(%rip), %rax     # 0x4b279
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x0, 0x10(%rax)
jne 0x7c12
movq -0x18(%rbp), %rax
movsbl 0x94(%rax), %eax
cmpl $0x0, %eax
je 0x7c5a
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %r8
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x20(%rax), %r9
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
leaq 0x43640(%rip), %rdx     # 0x4b286
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4a230
addq -0x30(%rbp), %rax
movq %rax, -0x30(%rbp)
jmp 0x7ca0
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %r8
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x20(%rax), %r9
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
leaq 0x43607(%rip), %rdx     # 0x4b295
movl %eax, (%rsp)
movb $0x0, %al
callq 0x4a230
addq -0x30(%rbp), %rax
movq %rax, -0x30(%rbp)
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x7cf0
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rax
subq %rax, %rsi
movq -0x18(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x40(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x393e0
addq -0x30(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x7ca8
jmp 0x7d4e
leaq 0x7509f(%rip), %rax     # 0x7cd98
movq 0x90(%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0x7d28
leaq 0x7508a(%rip), %rax     # 0x7cd98
movq 0x90(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
leaq 0x43555(%rip), %rax     # 0x4b279
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
movq -0x18(%rbp), %rax
movl 0x4(%rax), %r9d
leaq 0x43560(%rip), %rdx     # 0x4b2a7
movb $0x0, %al
callq 0x4a230
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)