// File: /workspace/github_c_makefile_star2_O2/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 0x2223e(%rip), %rsi     # 0x2e632
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4240
leaq 0x21a37(%rip), %rdi     # 0x2de3c
pushq $0xe
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x34bb6(%rip), %r15     # 0x40fd0
movq (%r15), %rdi
movq 0x470(%r14), %rdx
movq 0x478(%r14), %rcx
leaq 0x21a19(%rip), %rsi     # 0x2de4b
callq 0xc6fb
movq (%r15), %rdi
movq 0x490(%r14), %rdx
movq 0x498(%r14), %rcx
leaq 0x21bc7(%rip), %rsi     # 0x2e016
callq 0xc6fb
movq (%r15), %rdi
movq 0x480(%r14), %rdx
movq 0x488(%r14), %rcx
leaq 0x219e5(%rip), %rsi     # 0x2de51
callq 0xc6fb
leaq 0x51d68(%rip), %rax     # 0x5e1e0
cmpb $0x3, 0x72(%rax)
jl 0xc4ec
leaq 0x219d3(%rip), %rdi     # 0x2de58
pushq $0xe
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x3d0(%r14), %rbp
xorl %r15d, %r15d
leaq 0x219a6(%rip), %r12     # 0x2de4a
cmpq %rbp, %r15
jae 0xc4ec
movq %r15, %r13
cmpq %rbp, %r13
jae 0xc4e7
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rdx
callq 0xc793
testl %eax, %eax
je 0xc4e2
movq 0x34b06(%rip), %rax     # 0x40fd0
movq (%rax), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0xc7ba
movq 0x3d0(%r14), %rbp
incq %r13
jmp 0xc4ac
incq %r15
jmp 0xc4a4
leaq 0x219b5(%rip), %rdi     # 0x2dea8
pushq $0xe
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
callq 0x4330
leaq 0x2163b(%rip), %r13     # 0x2db43
leaq 0x2885d(%rip), %rbp     # 0x34d6c
xorl %ecx, %ecx
cmpq 0x20(%r14), %rcx
jae 0xc685
movq 0x18(%r14), %rax
movq %rcx, (%rsp)
movq (%rax,%rcx,8), %r15
testq %r15, %r15
je 0xc679
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x41f0
movl (%r15), %edx
movq %rbx, %rdi
leaq 0x2191f(%rip), %rsi     # 0x2de67
xorl %eax, %eax
callq 0x4240
leaq 0x218f4(%rip), %rcx     # 0x2de4a
xorl %r12d, %r12d
cmpq 0x10(%r15), %r12
jae 0xc57c
movq 0x8(%r15), %rax
movq (%rax,%r12,8), %rdx
movq %rbx, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x4240
incq %r12
movq %rbp, %rcx
jmp 0xc559
leaq 0x22617(%rip), %rdi     # 0x2eb9a
pushq $0x2
popq %rsi
pushq $0x1
popq %r12
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
leaq 0x218db(%rip), %rdi     # 0x2de77
pushq $0x6
popq %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x28(%r15), %rsi
movq %rbx, %rdi
callq 0xc832
leaq 0x218c1(%rip), %rdi     # 0x2de7e
pushq $0x6
popq %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x30(%r15), %rsi
movq %rbx, %rdi
callq 0xc832
leaq 0x218a7(%rip), %rdi     # 0x2de85
pushq $0x5
popq %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x38(%r15), %rsi
movq %rbx, %rdi
callq 0xc8ab
leaq 0x2188c(%rip), %rdi     # 0x2de8b
pushq $0x5
popq %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x40(%r15), %rsi
movq %rbx, %rdi
callq 0xc8ab
leaq 0x21871(%rip), %rdi     # 0x2de91
pushq $0x9
popq %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x48(%r15), %rsi
movq %rbx, %rdi
callq 0xc8ab
leaq 0x2185a(%rip), %rdi     # 0x2de9b
pushq $0x9
popq %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x4330
movq 0x50(%r15), %rsi
movq %rbx, %rdi
callq 0xc8ab
xorl %r12d, %r12d
cmpq 0x20(%r15), %r12
jae 0xc679
movq 0x18(%r15), %rax
movq (%rax,%r12,8), %rsi
movq %rbx, %rdi
callq 0x6039
incq %r12
jmp 0xc65e
movq (%rsp), %rcx
incq %rcx
jmp 0xc511
leaq 0x21819(%rip), %rdi     # 0x2dea5
pushq $0x11
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x4330