// File: /workspace/github_cpp_makefile_star2_O2/ys1998[P]spsim/src/lists.cpp
// Function: FreeList::remove(int)
void FreeList::remove(int reg){
	if(reg < 0 || reg >= NUM_PHY_REGS)
		error_msg("free_list", std::string("Index ") + std::to_string(reg) + " greater than maximum size (" + std::to_string(NUM_PHY_REGS) + ")");
	if(!free[reg]){
		if(LOG_LEVEL >= 1)
			warning_msg("free_list", std::string("Register ") + std::to_string(reg) + " is not free; can't remove from free list");
	}else{
		free[reg] = false;	
	}
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movl %esi, %ebx
movq %rdi, %r14
cmpl $0x40, %esi
jb 0x8c0a
leaq 0x774c(%rip), %rsi      # 0x10241
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
leaq 0x773d(%rip), %rsi      # 0x1024b
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x4860
leaq 0x68(%rsp), %rdi
movl %ebx, %esi
callq 0x7da4
leaq 0x8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x7ca8
leaq 0x7708(%rip), %rdx      # 0x10252
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x7d0f
leaq 0xe8(%rsp), %rdi
pushq $0x40
popq %rsi
callq 0x7da4
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x7ca8
leaq 0x7517(%rip), %rdx      # 0x1009e
leaq 0x108(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x7d0f
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x9f00
leaq 0x108(%rsp), %rdi
callq 0x3100
leaq 0x48(%rsp), %rdi
callq 0x3100
leaq 0xe8(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0x8(%rsp), %rdi
callq 0x3100
leaq 0x68(%rsp), %rdi
callq 0x3100
leaq 0x88(%rsp), %rdi
callq 0x3100
leaq 0x128(%rsp), %rdi
callq 0x3100
movslq %ebx, %rax
cmpb $0x0, (%r14,%rax)
je 0x8c1e
movb $0x0, (%r14,%rax)
jmp 0x8ce6
leaq 0xe5b3(%rip), %rax      # 0x171d8
cmpl $0x0, (%rax)
jle 0x8ce6
leaq 0x760c(%rip), %rsi      # 0x10241
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x4860
leaq 0x761e(%rip), %rsi      # 0x1026f
leaq 0x28(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x4860
leaq 0x8(%rsp), %rdi
movl %ebx, %esi
callq 0x7da4
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x7ca8
leaq 0x761b(%rip), %rdx      # 0x102a2
leaq 0xa8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x7d0f
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xa280
leaq 0xa8(%rsp), %rdi
callq 0x3100
leaq 0x48(%rsp), %rdi
callq 0x3100
leaq 0x8(%rsp), %rdi
callq 0x3100
leaq 0x28(%rsp), %rdi
callq 0x3100
leaq 0xc8(%rsp), %rdi
callq 0x3100
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x3100
jmp 0x8d06
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3100
jmp 0x8d15
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3100
jmp 0x8d24
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3100
jmp 0x8d33
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
jmp 0x8db0
jmp 0x8dcc
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x3100
jmp 0x8d57
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3100
jmp 0x8d66
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x3100
jmp 0x8d78
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3100
jmp 0x8d87
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3100
leaq 0x68(%rsp), %rdi
callq 0x3100
leaq 0x88(%rsp), %rdi
callq 0x3100
leaq 0x128(%rsp), %rdi
callq 0x3100
movq %rbx, %rdi
callq 0x3320
movq %rax, %rbx
jmp 0x8d91
movq %rax, %rbx
jmp 0x8d9b
movq %rax, %rbx
jmp 0x8da8
movq %rax, %rbx
jmp 0x8db5
nop