// File: /workspace/github_cpp_makefile_star2_O2/gvaumour[P]cache-simulator/src/Perceptron.cc
// Function: PerceptronPredictor::printConfig(std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void PerceptronPredictor::printConfig(std::ostream& out, std::string entete) { 

	out << entete << ":Perceptron:TableSize\t" << m_tableSize << endl; 
	
	string a = m_enableAllocation ? "TRUE" : "FALSE";
	out << entete << ":Perceptron:EnableAllocation\t" << a << endl;
	a = m_enableBP ? "TRUE" : "FALSE";
	out << entete << ":Perceptron:EnableBP\t" << a << endl;
	
	out << entete << ":Perceptron:BypassThreshold\t" << simu_parameters.perceptron_bypass_threshold  << endl;
	out << entete << ":Perceptron:BypassLearning\t" << simu_parameters.perceptron_bypass_learning << endl; 
	out << entete << ":Perceptron:AllocThreshold\t" << simu_parameters.perceptron_allocation_threshold  << endl;
	out << entete << ":Perceptron:AllocLearning\t" << simu_parameters.perceptron_allocation_learning << endl; 
	out << entete << ":Perceptron:BypassFeatures\t"; 
	for(auto p : m_BP_criterias_names)
		out << p << ",";
	out << endl;	
	out << entete << ":Perceptron:AllocFeatures\t"; 
	for(auto p : m_Allocation_criterias_names)
		out << p << ",";
	out << endl;	

	Predictor::printConfig(out, entete);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x5290
leaq 0xd134(%rip), %rsi      # 0x2b5cd
movq %rax, %rdi
callq 0x52c0
movl 0x300(%r14), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0xb009(%rip), %r13      # 0x294c8
movq %r14, (%rsp)
cmpb $0x0, 0x349(%r14)
leaq 0xaffb(%rip), %r12      # 0x294cd
movq %r12, %rsi
cmovneq %r13, %rsi
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd0ea(%rip), %rsi      # 0x2b5e4
movq %rax, %rdi
callq 0x52c0
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
movq (%rsp), %rax
cmpb $0x0, 0x348(%rax)
cmovneq %r13, %r12
leaq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x55c0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd0bd(%rip), %rsi      # 0x2b602
movq %rax, %rdi
callq 0x52c0
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd0a4(%rip), %rsi      # 0x2b618
movq %rax, %rdi
callq 0x52c0
leaq 0x1f9cd(%rip), %r12     # 0x3df50
movl 0x1b8(%r12), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd088(%rip), %rsi      # 0x2b635
movq %rax, %rdi
callq 0x52c0
movl 0x1bc(%r12), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd072(%rip), %rsi      # 0x2b651
movq %rax, %rdi
callq 0x52c0
movl 0x1c0(%r12), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd05c(%rip), %rsi      # 0x2b66d
movq %rax, %rdi
callq 0x52c0
movl 0x1c4(%r12), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xd045(%rip), %rsi      # 0x2b688
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rax
movq 0x2e8(%rax), %r12
movq 0x2f0(%rax), %r14
leaq 0x28(%rsp), %r13
leaq 0xa9c9(%rip), %rbp      # 0x29032
cmpq %r14, %r12
je 0x1e69d
movq %r13, %rdi
movq %r12, %rsi
callq 0x5410
movq %rbx, %rdi
movq %r13, %rsi
callq 0x5290
movq %rax, %rdi
movq %rbp, %rsi
callq 0x52c0
movq %r13, %rdi
callq 0x5618
addq $0x20, %r12
jmp 0x1e669
movq %rbx, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xcfed(%rip), %rsi      # 0x2b6a4
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rax
movq 0x2a0(%rax), %r12
movq 0x2a8(%rax), %r14
leaq 0x28(%rsp), %r13
leaq 0xa955(%rip), %rbp      # 0x29032
cmpq %r14, %r12
je 0x1e711
movq %r13, %rdi
movq %r12, %rsi
callq 0x5410
movq %rbx, %rdi
movq %r13, %rsi
callq 0x5290
movq %rax, %rdi
movq %rbp, %rsi
callq 0x52c0
movq %r13, %rdi
callq 0x5618
addq $0x20, %r12
jmp 0x1e6dd
movq %rbx, %rdi
callq 0x5190
leaq 0x48(%rsp), %rdi
movq %r15, %rsi
callq 0x5410
leaq 0x48(%rsp), %rdx
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x20228
leaq 0x48(%rsp), %rdi
callq 0x5618
leaq 0x8(%rsp), %rdi
callq 0x5618
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x1e777
jmp 0x1e768
jmp 0x1e768
movq %rax, %rbx
jmp 0x1e77c
jmp 0x1e76f
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x5618
leaq 0x8(%rsp), %rdi
callq 0x5618
movq %rbx, %rdi
callq 0x5570