// File: /workspace/github_c_makefile_star2_O1/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 0x24f02(%rip), %rsi     # 0x32652
movq %rbx, %rdi
xorl %eax, %eax
callq 0x4240
leaq 0x246cb(%rip), %rdi     # 0x31e2c
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x4330
movq 0x36856(%rip), %rbp     # 0x43fd0
movq (%rbp), %rdi
movq 0x470(%r14), %rdx
movq 0x478(%r14), %rcx
leaq 0x246a8(%rip), %rsi     # 0x31e3b
callq 0xdab7
movq (%rbp), %rdi
movq 0x490(%r14), %rdx
movq 0x498(%r14), %rcx
leaq 0x24855(%rip), %rsi     # 0x32006
callq 0xdab7
movq (%rbp), %rdi
movq 0x480(%r14), %rdx
movq 0x488(%r14), %rcx
leaq 0x24672(%rip), %rsi     # 0x31e41
callq 0xdab7
leaq 0x53a05(%rip), %rax     # 0x611e0
cmpb $0x3, 0x72(%rax)
jl 0xd86d
leaq 0x2465c(%rip), %rdi     # 0x31e48
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x4330
cmpq $0x0, 0x3d0(%r14)
je 0xd86d
xorl %r15d, %r15d
leaq 0x24628(%rip), %r12     # 0x31e3a
movq 0x3d0(%r14), %rax
cmpq %rax, %r15
jae 0xd861
movq %r15, %r13
imulq %r13, %rax
addq %r15, %rax
movq 0x3b0(%r14), %rcx
movq %rax, %rdx
shrq $0x6, %rdx
movq (%rcx,%rdx,8), %rcx
btq %rax, %rcx
jae 0xd852
movq (%rbp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r13, %rcx
callq 0xdb58
incq %r13
movq 0x3d0(%r14), %rax
cmpq %rax, %r13
jb 0xd821
incq %r15
cmpq 0x3d0(%r14), %r15
jb 0xd812
leaq 0x24624(%rip), %rdi     # 0x31e98
movl $0xe, %esi
movl $0x1, %edx
movq %rbx, %rcx
callq 0x4330
cmpq $0x0, 0x20(%r14)
je 0xda35
leaq 0x2b4e0(%rip), %r13     # 0x38d78
xorl %r12d, %r12d
movq 0x18(%r14), %rax
movq (%rax,%r12,8), %rbp
testq %rbp, %rbp
je 0xda28
movq %r12, (%rsp)
movl $0xa, %edi
movq %rbx, %rsi
callq 0x41f0
movl (%rbp), %edx
movq %rbx, %rdi
leaq 0x2458d(%rip), %rsi     # 0x31e57
xorl %eax, %eax
callq 0x4240
cmpq $0x0, 0x10(%rbp)
leaq 0x24256(%rip), %r12     # 0x31b33
je 0xd90a
xorl %r15d, %r15d
leaq 0x24551(%rip), %rcx     # 0x31e3a
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 0xd8e9
movl $0x2, %esi
movl $0x1, %edx
leaq 0x2529f(%rip), %rdi     # 0x32bba
movq %rbx, %rcx
callq 0x4330
movl $0x6, %esi
movl $0x1, %edx
leaq 0x24533(%rip), %rdi     # 0x31e67
movq %rbx, %rcx
callq 0x4330
movq 0x28(%rbp), %rsi
movq %rbx, %rdi
callq 0xdbdc
movl $0x6, %esi
movl $0x1, %edx
leaq 0x24515(%rip), %rdi     # 0x31e6e
movq %rbx, %rcx
callq 0x4330
movq 0x30(%rbp), %rsi
movq %rbx, %rdi
callq 0xdbdc
movl $0x5, %esi
movl $0x1, %edx
leaq 0x244f7(%rip), %rdi     # 0x31e75
movq %rbx, %rcx
callq 0x4330
movq 0x38(%rbp), %rsi
movq %rbx, %rdi
callq 0xdc74
movl $0x5, %esi
movl $0x1, %edx
leaq 0x244d8(%rip), %rdi     # 0x31e7b
movq %rbx, %rcx
callq 0x4330
movq 0x40(%rbp), %rsi
movq %rbx, %rdi
callq 0xdc74
movl $0x9, %esi
movl $0x1, %edx
leaq 0x244b9(%rip), %rdi     # 0x31e81
movq %rbx, %rcx
callq 0x4330
movq 0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0xdc74
movl $0x9, %esi
movl $0x1, %edx
leaq 0x2449e(%rip), %rdi     # 0x31e8b
movq %rbx, %rcx
callq 0x4330
movq 0x50(%rbp), %rsi
movq %rbx, %rdi
callq 0xdc74
cmpq $0x0, 0x20(%rbp)
movq (%rsp), %r12
je 0xda28
xorl %r15d, %r15d
movq 0x18(%rbp), %rax
movq (%rax,%r15,8), %rsi
movq %rbx, %rdi
callq 0x6813
incq %r15
cmpq 0x20(%rbp), %r15
jb 0xda0f
incq %r12
cmpq 0x20(%r14), %r12
jb 0xd89b
leaq 0x24459(%rip), %rdi     # 0x31e95
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