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

	out << entete << ":Cerebron:TableSize\t" << m_tableSize << endl; 
	
	string a = m_enableAllocation ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:EnableAllocation\t" << a << endl;
	string h = simu_parameters.Cerebron_enableMigration ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:EnableMigration\t" << h << endl;
	
	out << entete << ":Cerebron:CostValueThreshold\t" << simu_parameters.PHC_cost_threshold  << endl;
	out << entete << ":Cerebron:AllocationThreshold\t" << simu_parameters.perceptron_allocation_threshold  << endl;
	out << entete << ":Cerebron:ActivationFunction\t" << simu_parameters.Cerebron_activation_function  << endl;
	
	string b = simu_parameters.Cerebron_independantLearning ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:IndependantLearning\t" << b  << endl;

	string g = simu_parameters.Cerebron_resetEnergyValues ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:ResetEnergyValeus\t" << g  << endl;
	
	string c = simu_parameters.Cerebron_fastlearning ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:FastLearning\t" << c << endl;
	
	string f = simu_parameters.Cerebron_lowConfidence ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:LowConfidence\t" << c << endl;
	
	string e = simu_parameters.Cerebron_separateLearning ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:SeparateLearning\t" << e << endl;
	
	string d = simu_parameters.Cerebron_RDmodel ? "TRUE" : "FALSE";
	out << entete << ":Cerebron:UsingRDModel\t" << d << endl;

	out << entete << ":Cerebron:decrementValue\t" << simu_parameters.Cerebron_decrement_value << endl;

//	out << entete << ":Cerebron:CostLearning\t" << simu_parameters.perceptron_allocation_learning << endl; 
	out << entete << ":Cerebron:AllocFeatures\t"; 
	for(auto p : m_criterias_names)
		out << p << ",";
	out << endl;	

	out << entete << ":CerebronPredictor:CostModel" << endl;
	out << entete << ":CerebronPredictor:ShortRead\t" << m_costAccess[false][RD_SHORT] << endl; 		
	out << entete << ":CerebronPredictor:ShortWrite\t" << m_costAccess[true][RD_SHORT] << endl; 		
	out << entete << ":CerebronPredictor:MediumRead\t" << m_costAccess[false][RD_MEDIUM] << endl; 		
	out << entete << ":CerebronPredictor:MediumWrite\t" << m_costAccess[true][RD_MEDIUM] << endl; 		


	Predictor::printConfig(out, entete);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x5290
leaq 0x20367(%rip), %rsi     # 0x294b3
movq %rax, %rdi
callq 0x52c0
movl 0x2f0(%r14), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x20356(%rip), %rbp     # 0x294c8
movq %r14, (%rsp)
cmpb $0x0, 0x338(%r14)
leaq 0x20348(%rip), %r12     # 0x294cd
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x108(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x20320(%rip), %rsi     # 0x294d3
movq %rax, %rdi
callq 0x52c0
leaq 0x108(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
leaq 0x34d76(%rip), %r13     # 0x3df50
cmpb $0x0, 0x223(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x202df(%rip), %rsi     # 0x294ef
movq %rax, %rdi
callq 0x52c0
leaq 0xa8(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x202c8(%rip), %rsi     # 0x2950a
movq %rax, %rdi
callq 0x52c0
movl 0x1e8(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x202b5(%rip), %rsi     # 0x29528
movq %rax, %rdi
callq 0x52c0
movl 0x1c0(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x202a3(%rip), %rsi     # 0x29547
movq %rax, %rdi
callq 0x52c0
movl $0x200, %esi            # imm = 0x200
addq 0x33cf8(%rip), %rsi     # 0x3cfb0
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x220(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x2026a(%rip), %rsi     # 0x29565
movq %rax, %rdi
callq 0x52c0
leaq 0x88(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x222(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x68(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x20239(%rip), %rsi     # 0x29584
movq %rax, %rdi
callq 0x52c0
leaq 0x68(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x225(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x8(%rsp), %rdi
leaq 0xe8(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x20206(%rip), %rsi     # 0x295a1
movq %rax, %rdi
callq 0x52c0
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x221(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0xe8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x201ce(%rip), %rsi     # 0x295b9
movq %rax, %rdi
callq 0x52c0
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x224(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x2019a(%rip), %rsi     # 0x295d2
movq %rax, %rdi
callq 0x52c0
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x226(%r13)
cmovneq %rbp, %r12
leaq 0x28(%rsp), %rdi
leaq 0x128(%rsp), %rdx
movq %r12, %rsi
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x20166(%rip), %rsi     # 0x295ee
movq %rax, %rdi
callq 0x52c0
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x2014f(%rip), %rsi     # 0x29606
movq %rax, %rdi
callq 0x52c0
movl 0x228(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x20138(%rip), %rsi     # 0x29620
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rax
movq 0x2a0(%rax), %r12
movq 0x2a8(%rax), %r14
leaq 0x128(%rsp), %r13
leaq 0x1fb21(%rip), %rbp     # 0x29032
cmpq %r14, %r12
je 0x9545
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 0x9511
movq %rbx, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x200da(%rip), %rsi     # 0x29639
movq %rax, %rdi
callq 0x52c0
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x200d5(%rip), %rsi     # 0x29656
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2d8(%rcx), %rcx
movq (%rcx), %rcx
movl (%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x200b9(%rip), %rsi     # 0x29674
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2d8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movl (%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x2009d(%rip), %rsi     # 0x29693
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2d8(%rcx), %rcx
movq (%rcx), %rcx
movl 0x4(%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0x20081(%rip), %rsi     # 0x296b2
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2d8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movl 0x4(%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
callq 0x5410
leaq 0xc8(%rsp), %rdx
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x20228
leaq 0xc8(%rsp), %rdi
callq 0x5618
leaq 0x28(%rsp), %rdi
callq 0x5618
leaq 0x48(%rsp), %rdi
callq 0x5618
leaq 0xe8(%rsp), %rdi
callq 0x5618
leaq 0x8(%rsp), %rdi
callq 0x5618
leaq 0x68(%rsp), %rdi
callq 0x5618
leaq 0x88(%rsp), %rdi
callq 0x5618
leaq 0xa8(%rsp), %rdi
callq 0x5618
leaq 0x108(%rsp), %rdi
callq 0x5618
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
jmp 0x974a
jmp 0x9715
jmp 0x971a
jmp 0x971f
jmp 0x9724
jmp 0x9729
jmp 0x9733
jmp 0x972e
movq %rax, %rbx
jmp 0x9759
movq %rax, %rbx
jmp 0x9763
movq %rax, %rbx
jmp 0x9770
movq %rax, %rbx
jmp 0x977a
movq %rax, %rbx
jmp 0x9784
movq %rax, %rbx
jmp 0x979e
movq %rax, %rbx
jmp 0x9791
jmp 0x973a
movq %rax, %rbx
jmp 0x974f
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x5618
leaq 0x28(%rsp), %rdi
callq 0x5618
leaq 0x48(%rsp), %rdi
callq 0x5618
leaq 0xe8(%rsp), %rdi
callq 0x5618
leaq 0x8(%rsp), %rdi
callq 0x5618
leaq 0x68(%rsp), %rdi
callq 0x5618
leaq 0x88(%rsp), %rdi
callq 0x5618
leaq 0xa8(%rsp), %rdi
callq 0x5618
leaq 0x108(%rsp), %rdi
callq 0x5618
movq %rbx, %rdi
callq 0x5570
nop