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

	out << entete << ":PHC:TableSize\t" << m_tableSize << endl; 
	
	string a = m_enableAllocation ? "TRUE" : "FALSE";
	out << entete << ":PHC:EnableAllocation\t" << a << endl;
	
	out << entete << ":PHC:CostValueThreshold\t" << simu_parameters.PHC_cost_threshold  << endl;
	out << entete << ":PHC:AllocationThreshold\t" << simu_parameters.perceptron_allocation_threshold  << endl;
//	out << entete << ":PHC:CostLearning\t" << simu_parameters.perceptron_allocation_learning << endl; 
	out << entete << ":PHC:AllocFeatures\t"; 
	for(auto p : m_criterias_names)
		out << p << ",";
	out << endl;	
	out << entete << ":PHC:CostModel" << endl;
	out << entete << ":PHC:ShortRead\t" << m_costAccess[false][RD_SHORT] << endl; 		
	out << entete << ":PHC:ShortWrite\t" << m_costAccess[true][RD_SHORT] << endl; 		
	out << entete << ":PHC:MediumRead\t" << m_costAccess[false][RD_MEDIUM] << endl; 		
	out << entete << ":PHC: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 $0x68, %rsp
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
movq %rsi, %rdi
movq %rdx, %rsi
callq 0x5290
leaq 0xf652(%rip), %rsi      # 0x2b31d
movq %rax, %rdi
callq 0x52c0
movl 0x2d0(%r14), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0xd7d7(%rip), %rax      # 0x294c8
leaq 0xd7d5(%rip), %rsi      # 0x294cd
movq %r14, (%rsp)
cmpb $0x0, 0x318(%r14)
cmovneq %rax, %rsi
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x5140
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xf604(%rip), %rsi      # 0x2b32d
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 0xf5ec(%rip), %rsi      # 0x2b344
movq %rax, %rdi
callq 0x52c0
leaq 0x221e9(%rip), %r14     # 0x3df50
movl 0x1e8(%r14), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xf5cd(%rip), %rsi      # 0x2b35d
movq %rax, %rdi
callq 0x52c0
movl 0x1c0(%r14), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xf5b6(%rip), %rsi      # 0x2b377
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rax
movq 0x2a0(%rax), %r12
movq 0x2a8(%rax), %r14
leaq 0x48(%rsp), %r13
leaq 0xd24b(%rip), %rbp      # 0x29032
cmpq %r14, %r12
je 0x1be1b
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 0x1bde7
movq %rbx, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xf556(%rip), %rsi      # 0x2b38b
movq %rax, %rdi
callq 0x52c0
movq %rax, %rdi
callq 0x5190
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5290
leaq 0xf543(%rip), %rsi      # 0x2b39a
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2b8(%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 0xf519(%rip), %rsi      # 0x2b3aa
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2b8(%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 0xf4ef(%rip), %rsi      # 0x2b3bb
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2b8(%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 0xf4c5(%rip), %rsi      # 0x2b3cc
movq %rax, %rdi
callq 0x52c0
movq (%rsp), %rcx
movq 0x2b8(%rcx), %rcx
movq 0x18(%rcx), %rcx
movl 0x4(%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x5410
leaq 0x8(%rsp), %rdx
movq (%rsp), %rdi
movq %rbx, %rsi
callq 0x20228
leaq 0x8(%rsp), %rdi
callq 0x5618
leaq 0x28(%rsp), %rdi
callq 0x5618
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x1bf8b
jmp 0x1bf7e
movq %rax, %rbx
jmp 0x1bf90
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x5618
leaq 0x28(%rsp), %rdi
callq 0x5618
movq %rbx, %rdi
callq 0x5570