// File: MPSLab-ASU[P]DiRAC/./src/pe.cc
// Function: PE::~PE()
PE::~PE()
{
  for(uint8_t i=0; i < inNetworks; i++)
    delete buf_in[i];
  for(uint8_t i=0; i < outNetworks; i++)
    delete buf_out[i];
  delete[] buf_in;
  delete[] buf_out;

  delete[] in_config;
  delete[] in_forward;
  delete[] in_data;

  delete[] write_back;
  delete[] out_data;

  delete[] RegFile;

  delete[] state_multiplier_stages;
  delete[] state_adder_stages;
  delete[] temp_reg_multiply;
  delete[] temp_reg_add_Op1;
  delete[] temp_reg_add_Op2;
  delete[] temp_reg_idx_write_Op3;
  delete[] temp_sel_sig_adder_is_Op2_self;
  delete[] temp_sel_sig_adder_Op2_zero_initialize_current_RF_Pass;

  delete[] insMem;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq 0x1f1cc2(%rip), %rcx    # 0x6149f0
addq $0x10, %rcx
movq %rcx, (%rax)
movb $0x0, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
movq $0x61c151, %rcx         # imm = 0x61C151
movzbl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x422d88
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movzbl -0x9(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x422d7c
movq -0x20(%rbp), %rdi
callq 0x4243c0
movq -0x20(%rbp), %rdi
movl $0x10, %esi
callq 0x424890
jmp 0x422d7e
movb -0x9(%rbp), %al
addb $0x1, %al
movb %al, -0x9(%rbp)
jmp 0x422d39
movb $0x0, -0xa(%rbp)
movzbl -0xa(%rbp), %eax
movq $0x61e5e4, %rcx         # imm = 0x61E5E4
movzbl (%rcx), %ecx
cmpl %ecx, %eax
jge 0x422ddb
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rax
movzbl -0xa(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
je 0x422dcf
movq -0x28(%rbp), %rdi
callq 0x4243c0
movq -0x28(%rbp), %rdi
movl $0x10, %esi
callq 0x424890
jmp 0x422dd1
movb -0xa(%rbp), %al
addb $0x1, %al
movb %al, -0xa(%rbp)
jmp 0x422d8c
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
je 0x422df6
movq -0x30(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x50(%rax), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
je 0x422e11
movq -0x38(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x58(%rax), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
je 0x422e2c
movq -0x40(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x60(%rax), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, %rax
je 0x422e47
movq -0x48(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, %rax
je 0x422e62
movq -0x50(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x70(%rax), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, %rax
je 0x422e7d
movq -0x58(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x78(%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
je 0x422e98
movq -0x60(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, %rax
je 0x422eb3
movq -0x68(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x88(%rax), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, %rax
je 0x422ed1
movq -0x70(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x90(%rax), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, %rax
je 0x422eef
movq -0x78(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x108(%rax), %rax
movq %rax, -0x80(%rbp)
cmpq $0x0, %rax
je 0x422f0d
movq -0x80(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x110(%rax), %rax
movq %rax, -0x88(%rbp)
cmpq $0x0, %rax
je 0x422f31
movq -0x88(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x118(%rax), %rax
movq %rax, -0x90(%rbp)
cmpq $0x0, %rax
je 0x422f55
movq -0x90(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x98(%rbp)
cmpq $0x0, %rax
je 0x422f79
movq -0x98(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x140(%rax), %rax
movq %rax, -0xa0(%rbp)
cmpq $0x0, %rax
je 0x422f9d
movq -0xa0(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0x130(%rax), %rax
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
je 0x422fc1
movq -0xa8(%rbp), %rdi
callq 0x4248a0
movq -0x18(%rbp), %rax
movq 0xe8(%rax), %rax
movq %rax, -0xb0(%rbp)
cmpq $0x0, %rax
je 0x422fe5
movq -0xb0(%rbp), %rdi
callq 0x4248a0
addq $0xb0, %rsp
popq %rbp
retq
nop