// File: /workspace/github_c_makefile_star2_O0/lucvoo[P]sparse-dev/linearize.c
// Function: show_pseudo
const char *show_pseudo(pseudo_t pseudo)
{
	static int n;
	static char buffer[4][64];
	char *buf;
	int i;

	if (!pseudo)
		return "no pseudo";
	if (pseudo == VOID)
		return "VOID";
	buf = buffer[3 & ++n];
	switch(pseudo->type) {
	case PSEUDO_SYM: {
		struct symbol *sym = pseudo->sym;
		struct expression *expr;

		if (!sym) {
			snprintf(buf, 64, "<bad symbol>");
			break;
		}
		if (sym->bb_target) {
			snprintf(buf, 64, "%s", show_label(sym->bb_target));
			break;
		}
		if (sym->ident) {
			snprintf(buf, 64, "%s", show_ident(sym->ident));
			break;
		}
		expr = sym->initializer;
		snprintf(buf, 64, "<anon symbol:%p>", verbose ? sym : NULL);
		if (expr) {
			switch (expr->type) {
			case EXPR_VALUE:
				snprintf(buf, 64, "<symbol value: %lld>", expr->value);
				break;
			case EXPR_STRING:
				return show_string(expr->string);
			default:
				break;
			}
		}
		break;
	}
	case PSEUDO_REG:
		i = snprintf(buf, 64, "%%r%d", pseudo->nr);
		if (pseudo->ident)
			sprintf(buf+i, "(%s)", show_ident(pseudo->ident));
		break;
	case PSEUDO_VAL: {
		long long value = pseudo->value;
		if (value > 1000 || value < -1000)
			snprintf(buf, 64, "$%#llx", value);
		else
			snprintf(buf, 64, "$%lld", value);
		break;
	}
	case PSEUDO_ARG:
		snprintf(buf, 64, "%%arg%d", pseudo->nr);
		break;
	case PSEUDO_PHI:
		i = snprintf(buf, 64, "%%phi%d", pseudo->nr);
		if (pseudo->ident)
			sprintf(buf+i, "(%s)", show_ident(pseudo->ident));
		break;
	case PSEUDO_UNDEF:
		return "UNDEF";
	default:
		snprintf(buf, 64, "<bad pseudo type %d>", pseudo->type);
	}
	return buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x17ea6
leaq 0x4b636(%rip), %rax     # 0x634d3
movq %rax, -0x8(%rbp)
jmp 0x181e9
leaq 0x73f03(%rip), %rax     # 0x8bdb0
cmpq %rax, -0x10(%rbp)
jne 0x17ec3
leaq 0x4b623(%rip), %rax     # 0x634dd
movq %rax, -0x8(%rbp)
jmp 0x181e9
movl 0x73f57(%rip), %eax     # 0x8be20
incl %eax
movl %eax, 0x73f4f(%rip)     # 0x8be20
andl $0x3, %eax
shll $0x6, %eax
movl %eax, %ecx
leaq 0x73f50(%rip), %rax     # 0x8be30
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x40(%rbp)
subl $0x5, %eax
ja 0x181c3
movq -0x40(%rbp), %rax
leaq 0x4a946(%rip), %rcx     # 0x62850
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x17f42
movq -0x18(%rbp), %rdi
movl $0x40, %esi
leaq 0x4b5ac(%rip), %rdx     # 0x634e2
movb $0x0, %al
callq 0x11100
jmp 0x181e1
movq -0x28(%rbp), %rax
cmpq $0x0, 0xd0(%rax)
je 0x17f87
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rax
movq 0xd0(%rax), %rdi
callq 0x17e00
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl $0x40, %esi
leaq 0x5521a(%rip), %rdx     # 0x6d195
movb $0x0, %al
callq 0x11100
jmp 0x181e1
movq -0x28(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x17fc6
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x44150
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl $0x40, %esi
leaq 0x551db(%rip), %rdx     # 0x6d195
movb $0x0, %al
callq 0x11100
jmp 0x181e1
movq -0x28(%rbp), %rax
movq 0xb0(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
leaq 0x75260(%rip), %rax     # 0x8d244
cmpl $0x0, (%rax)
je 0x17ff3
movq -0x28(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x17ffb
xorl %eax, %eax
movq %rax, -0x60(%rbp)
jmp 0x17ffb
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rcx
movl $0x40, %esi
leaq 0x4b4e0(%rip), %rdx     # 0x634ef
movb $0x0, %al
callq 0x11100
cmpq $0x0, -0x30(%rbp)
je 0x18073
movq -0x30(%rbp), %rax
movzbl (%rax), %eax
movl %eax, -0x64(%rbp)
subl $0x1, %eax
je 0x18038
jmp 0x1802e
movl -0x64(%rbp), %eax
subl $0x2, %eax
je 0x18059
jmp 0x1806f
movq -0x18(%rbp), %rdi
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rcx
movl $0x40, %esi
leaq 0x4b4b0(%rip), %rdx     # 0x63500
movb $0x0, %al
callq 0x11100
jmp 0x18071
movq -0x30(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x441d0
movq %rax, -0x8(%rbp)
jmp 0x181e9
jmp 0x18071
jmp 0x18073
jmp 0x181e1
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %ecx
movl $0x40, %esi
leaq 0x4b487(%rip), %rdx     # 0x63515
movb $0x0, %al
callq 0x11100
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x180d4
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x44150
movq -0x70(%rbp), %rdi
movq %rax, %rdx
leaq 0x51306(%rip), %rsi     # 0x693d3
movb $0x0, %al
callq 0x112c0
jmp 0x181e1
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x38(%rbp)
cmpq $0x3e8, -0x38(%rbp)     # imm = 0x3E8
jg 0x180f9
cmpq $-0x3e8, -0x38(%rbp)    # imm = 0xFC18
jge 0x18116
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rcx
movl $0x40, %esi
leaq 0x4b40e(%rip), %rdx     # 0x6351b
movb $0x0, %al
callq 0x11100
jmp 0x18131
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rcx
movl $0x40, %esi
leaq 0x4b3f8(%rip), %rdx     # 0x63522
movb $0x0, %al
callq 0x11100
jmp 0x181e1
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %ecx
movl $0x40, %esi
leaq 0x4b3dc(%rip), %rdx     # 0x63528
movb $0x0, %al
callq 0x11100
jmp 0x181e1
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movl (%rax), %ecx
movl $0x40, %esi
leaq 0x4b3c2(%rip), %rdx     # 0x63530
movb $0x0, %al
callq 0x11100
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x181b4
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x44150
movq -0x78(%rbp), %rdi
movq %rax, %rdx
leaq 0x51226(%rip), %rsi     # 0x693d3
movb $0x0, %al
callq 0x112c0
jmp 0x181e1
leaq 0x4b37b(%rip), %rax     # 0x63538
movq %rax, -0x8(%rbp)
jmp 0x181e9
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x4(%rax), %ecx
movl $0x40, %esi
leaq 0x4b364(%rip), %rdx     # 0x6353e
movb $0x0, %al
callq 0x11100
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)