// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/6/ra.c
// Function: combine
static void
combine(Isel *s, regid u, regid v)
{
	regid t;
	size_t idx;
	size_t i, j;
	int has;

	if (debugopt['r'] > 2)
		printedge(stdout, "combining:", u, v);
	if (wlfind(s->wlfreeze, s->nwlfreeze, v, &idx))
		wldel(s, &s->wlfreeze, &s->nwlfreeze, idx);
	else if (wlfind(s->wlspill, s->nwlspill, v, &idx)) {
		wldel(s, &s->wlspill, &s->nwlspill, idx);
	}
	wlputset(s->coalesced, v);
	s->aliasmap[v] = locmap[u];
	s->nuses[u] += s->nuses[v];

	/* nodemoves[u] = nodemoves[u] U nodemoves[v] */
	for (i = 0; i < s->nrmoves[v]; i++) {
		has = 0;
		for (j = 0; j < s->nrmoves[u]; j++) {
			if (s->rmoves[v][i] == s->rmoves[u][j]) {
				has = 1;
				break;
			}
		}
		if (!has)
			lappend(&s->rmoves[u], &s->nrmoves[u], s->rmoves[v][i]);
	}

	for (i = 0; i < s->ngadj[v]; i++) {
		t = s->gadj[v][i];
		if (!adjavail(s, t))
			continue;
		if (debugopt['r'] > 2)
			printedge(stdout, "combine-putedge:", t, u);
		addedge(s, t, u);
		decdegree(s, t);
	}
	if (!istrivial(s, u) && wlfind(s->wlfreeze, s->nwlfreeze, u, &idx)) {
		wldel(s, &s->wlfreeze, &s->nwlfreeze, idx);
		wlput(&s->wlspill, &s->nwlspill, locmap[u]);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x67c95(%rip), %rax     # 0x7cd00
movsbl 0x72(%rax), %eax
cmpl $0x2, %eax
jle 0x15092
movq 0x49f55(%rip), %rax     # 0x5efd0
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0x38d15(%rip), %rsi     # 0x4dda2
callq 0x13740
movq -0x8(%rbp), %rax
movq 0x480(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x488(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0x14b00
cmpl $0x0, %eax
je 0x150df
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x480, %rsi            # imm = 0x480
movq -0x8(%rbp), %rdx
addq $0x488, %rdx            # imm = 0x488
movq -0x28(%rbp), %rcx
callq 0x14b80
jmp 0x1512c
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x478(%rax), %rsi
movq -0x18(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0x14b00
cmpl $0x0, %eax
je 0x1512a
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x470, %rsi            # imm = 0x470
movq -0x8(%rbp), %rdx
addq $0x478, %rdx            # imm = 0x478
movq -0x28(%rbp), %rcx
callq 0x14b80
jmp 0x1512c
movq -0x8(%rbp), %rax
movq 0x4b0(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0x13fc0
leaq 0x67859(%rip), %rax     # 0x7c9a0
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
movq 0x3e8(%rax), %rax
movq -0x18(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x8(%rbp), %rax
movq 0x3e0(%rax), %rax
movq -0x18(%rbp), %rcx
movl (%rax,%rcx,4), %edx
movq -0x8(%rbp), %rax
movq 0x3e0(%rax), %rax
movq -0x10(%rbp), %rcx
addl (%rax,%rcx,4), %edx
movl %edx, (%rax,%rcx,4)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x408(%rcx), %rcx
movq -0x18(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jae 0x1528f
movl $0x0, -0x3c(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x408(%rcx), %rcx
movq -0x10(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jae 0x1522a
movq -0x8(%rbp), %rax
movq 0x400(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x8(%rbp), %rcx
movq 0x400(%rcx), %rcx
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq -0x38(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jne 0x1521a
movl $0x1, -0x3c(%rbp)
jmp 0x1522a
jmp 0x1521c
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x151c0
cmpl $0x0, -0x3c(%rbp)
jne 0x1527c
movq -0x8(%rbp), %rax
movq 0x400(%rax), %rdi
movq -0x10(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x8(%rbp), %rax
movq 0x408(%rax), %rsi
movq -0x10(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
movq -0x8(%rbp), %rax
movq 0x400(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x48290
jmp 0x1527e
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x15194
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x3c0(%rcx), %rcx
movq -0x18(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jae 0x15344
movq -0x8(%rbp), %rax
movq 0x3b8(%rax), %rax
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x146a0
cmpl $0x0, %eax
jne 0x152e7
jmp 0x15333
leaq 0x67a12(%rip), %rax     # 0x7cd00
movsbl 0x72(%rax), %eax
cmpl $0x2, %eax
jle 0x15315
movq 0x49cd2(%rip), %rax     # 0x5efd0
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
movq -0x10(%rbp), %rcx
leaq 0x38a9d(%rip), %rsi     # 0x4ddad
callq 0x13740
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x10(%rbp), %rdx
callq 0x14060
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x14720
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x15297
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x14530
cmpl $0x0, %eax
jne 0x153ce
movq -0x8(%rbp), %rax
movq 0x480(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x488(%rax), %rsi
movq -0x10(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0x14b00
cmpl $0x0, %eax
je 0x153ce
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x480, %rsi            # imm = 0x480
movq -0x8(%rbp), %rdx
addq $0x488, %rdx            # imm = 0x488
movq -0x28(%rbp), %rcx
callq 0x14b80
movq -0x8(%rbp), %rdi
addq $0x470, %rdi            # imm = 0x470
movq -0x8(%rbp), %rsi
addq $0x478, %rsi            # imm = 0x478
leaq 0x675e2(%rip), %rax     # 0x7c9a0
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x14590
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)