// File: /workspace/github_c_makefile_star2_O3/oridb[P]mc/6/ra.c
// Function: dumpasm
void
dumpasm(Isel *s, FILE *fd)
{
	size_t i, j;
	char *sep;
	Asmbb *bb;

	fprintf(fd, "function %s\n", s->name);
	fprintf(fd, "WORKLISTS -- \n");
	wlprint(stdout, "spill", s->wlspill, s->nwlspill);
	wlprint(stdout, "simp", s->wlsimp, s->nwlsimp);
	wlprint(stdout, "freeze", s->wlfreeze, s->nwlfreeze);
	/* noisy to dump this all the time; only dump for higher debug levels */
	if (debugopt['r'] > 2) {
		fprintf(fd, "IGRAPH ----- \n");
		for (i = 0; i < s->nreg; i++) {
			for (j = i; j < s->nreg; j++) {
				if (gbhasedge(s, i, j))
					printedge(stdout, "", i, j);
			}
		}
	}
	fprintf(fd, "ASM -------- \n");
	for (j = 0; j < s->nbb; j++) {
		bb = s->bb[j];
		if (!bb)
			continue;
		fprintf(fd, "\n");
		fprintf(fd, "Bb: %d labels=(", bb->id);
		sep = "";
		for (i = 0; i < bb->nlbls; i++) {;
			fprintf(fd, "%s%s", bb->lbls[i], sep);
			sep = ",";
		}
		fprintf(fd, ")\n");

		fprintf(fd, "Pred: ");
		setprint(fd, bb->pred);
		fprintf(fd, "Succ: ");
		setprint(fd, bb->succ);

		fprintf(fd, "Use: ");
		locsetprint(fd, bb->use);
		fprintf(fd, "Def: ");
		locsetprint(fd, bb->def);
		fprintf(fd, "Livein:  ");
		locsetprint(fd, bb->livein);
		fprintf(fd, "Liveout: ");
		locsetprint(fd, bb->liveout);
		for (i = 0; i < bb->ni; i++)
			dbgiprintf(fd, bb->il[i]);
	}
	fprintf(fd, "ENDASM -------- \n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq (%rdi), %rdx
leaq 0x250c6(%rip), %rsi     # 0x32662
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4240
leaq 0x2488f(%rip), %rdi     # 0x31e3c
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x4330
movq 0x36a0a(%rip), %rbp     # 0x43fd0
movq (%rbp), %rdi
movq 0x470(%r14), %rdx
movq 0x478(%r14), %rcx
leaq 0x2486c(%rip), %rsi     # 0x31e4b
callq 0xd8fd
movq (%rbp), %rdi
movq 0x490(%r14), %rdx
movq 0x498(%r14), %rcx
leaq 0x24a19(%rip), %rsi     # 0x32016
callq 0xd8fd
movq (%rbp), %rdi
movq 0x480(%r14), %rdx
movq 0x488(%r14), %rcx
leaq 0x24836(%rip), %rsi     # 0x31e51
callq 0xd8fd
leaq 0x53bb9(%rip), %rax     # 0x611e0
cmpb $0x3, 0x72(%rax)
jl 0xd6b3
leaq 0x24820(%rip), %rdi     # 0x31e58
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x4330
movq 0x3d0(%r14), %rax
testq %rax, %rax
je 0xd6b3
xorl %r15d, %r15d
leaq 0x247ea(%rip), %r12     # 0x31e4a
cmpq %rax, %r15
jae 0xd6ab
movq %r15, %r13
movq 0x3b0(%r14), %rcx
movq %rax, %rdx
imulq %r13, %rdx
addq %r15, %rdx
movq %rdx, %rsi
shrq $0x6, %rsi
movq (%rcx,%rsi,8), %rcx
btq %rdx, %rcx
jae 0xd6a3
movq (%rbp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0xd99e
movq 0x3d0(%r14), %rax
incq %r13
cmpq %rax, %r13
jb 0xd668
incq %r15
cmpq %rax, %r15
jb 0xd660
leaq 0x247ee(%rip), %rdi     # 0x31ea8
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x4330
cmpq $0x0, 0x20(%r14)
je 0xd87b
leaq 0x2b66a(%rip), %r13     # 0x38d48
xorl %r12d, %r12d
movq 0x18(%r14), %rax
movq (%rax,%r12,8), %rbp
testq %rbp, %rbp
je 0xd86e
movq %r12, (%rsp)
movl $0xa, %edi
movq %rbx, %rsi
callq 0x41f0
movl (%rbp), %edx
movq %rbx, %rdi
leaq 0x24757(%rip), %rsi     # 0x31e67
xorl %eax, %eax
callq 0x4240
cmpq $0x0, 0x10(%rbp)
leaq 0x24420(%rip), %r12     # 0x31b43
je 0xd750
xorl %r15d, %r15d
leaq 0x2471b(%rip), %rcx     # 0x31e4a
movq 0x8(%rbp), %rax
movq (%rax,%r15,8), %rdx
movq %rbx, %rdi
movq %r12, %rsi
xorl %eax, %eax
callq 0x4240
incq %r15
movq %r13, %rcx
cmpq 0x10(%rbp), %r15
jb 0xd72f
movl $0x2, %esi
movl $0x1, %edx
leaq 0x25469(%rip), %rdi     # 0x32bca
movq %rbx, %rcx
callq 0x4330
movl $0x6, %esi
movl $0x1, %edx
leaq 0x246fd(%rip), %rdi     # 0x31e77
movq %rbx, %rcx
callq 0x4330
movq 0x28(%rbp), %rsi
movq %rbx, %rdi
callq 0xda22
movl $0x6, %esi
movl $0x1, %edx
leaq 0x246df(%rip), %rdi     # 0x31e7e
movq %rbx, %rcx
callq 0x4330
movq 0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0xda22
movl $0x5, %esi
movl $0x1, %edx
leaq 0x246c1(%rip), %rdi     # 0x31e85
movq %rbx, %rcx
callq 0x4330
movq 0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaba
movl $0x5, %esi
movl $0x1, %edx
leaq 0x246a2(%rip), %rdi     # 0x31e8b
movq %rbx, %rcx
callq 0x4330
movq 0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaba
movl $0x9, %esi
movl $0x1, %edx
leaq 0x24683(%rip), %rdi     # 0x31e91
movq %rbx, %rcx
callq 0x4330
movq 0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaba
movl $0x9, %esi
movl $0x1, %edx
leaq 0x24668(%rip), %rdi     # 0x31e9b
movq %rbx, %rcx
callq 0x4330
movq 0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaba
cmpq $0x0, 0x20(%rbp)
movq (%rsp), %r12
je 0xd86e
xorl %r15d, %r15d
movq 0x18(%rbp), %rax
movq (%rax,%r15,8), %rsi
movq %rbx, %rdi
callq 0x6757
incq %r15
cmpq 0x20(%rbp), %r15
jb 0xd855
incq %r12
cmpq 0x20(%r14), %r12
jb 0xd6e1
leaq 0x24623(%rip), %rdi     # 0x31ea5
movl $0x11, %esi
movl $0x1, %edx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4330