// File: /workspace/github_cpp_makefile_star2_O2/ys1998[P]spsim/src/lists.cpp
// Function: FreeList::add(int)
void FreeList::add(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 already free; can't add to free list");
	}else{
		free[reg] = true;	
	}
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movl %esi, %ebx
movq %rdi, %r14
cmpl $0x40, %esi
jb 0x890e
leaq 0x7a48(%rip), %rsi      # 0x10241
leaq 0x128(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4860
leaq 0x7a39(%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 0x7a04(%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 0x7813(%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 $0x1, (%r14,%rax)
jne 0x89e6
leaq 0xe8b5(%rip), %rax      # 0x171d8
cmpl $0x0, (%rax)
jle 0x89eb
leaq 0x790e(%rip), %rsi      # 0x10241
leaq 0xc8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x4860
leaq 0x7920(%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 0x78f4(%rip), %rdx      # 0x10279
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
jmp 0x89eb
movb $0x1, (%r14,%rax)
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x3100
jmp 0x8a0b
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3100
jmp 0x8a1a
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3100
jmp 0x8a29
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3100
jmp 0x8a38
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
jmp 0x8ab5
jmp 0x8ad1
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x3100
jmp 0x8a5c
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3100
jmp 0x8a6b
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x3100
jmp 0x8a7d
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3100
jmp 0x8a8c
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 0x8a96
movq %rax, %rbx
jmp 0x8aa0
movq %rax, %rbx
jmp 0x8aad
movq %rax, %rbx
jmp 0x8aba