// File: /workspace/github_cpp_makefile_star2_O2/gvaumour[P]cache-simulator/src/DBAMBPredictor.cc
// Function: DBAMBPredictor::printConfig(std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void 
DBAMBPredictor::printConfig(std::ostream& out, string entete1)
{
	string entete =entete1 + ":DBAMBPredictor:";
	
	out << entete << "DHPTableAssoc\t" << m_RAP_assoc << endl;
	out << entete << "DHPTableNBSets\t" << m_RAP_sets << endl;
	out << entete << "Windowsize\t" << simu_parameters.window_size << endl;
	out << entete << "InacurracyThreshold\t" << simu_parameters.rap_innacuracy_th << endl;

	string a =  simu_parameters.enableBP ? "TRUE" : "FALSE"; 
	out << entete << "BypassEnable\t" << a << endl;
	out << entete << "DEADCOUNTERSaturation\t" << simu_parameters.deadSaturationCouter << endl;
	out << entete << "LearningThreshold\t" << simu_parameters.learningTH << endl;
	a =  simu_parameters.enableMigration ? "TRUE" : "FALSE"; 
	out << entete << "MigrationEnable\t" << a << endl;
	a =  simu_parameters.enableDatasetSpilling ? "TRUE" : "FALSE"; 
	out << entete << "DatasetSpilling\t" << a << endl;
	if(simu_parameters.ratio_RWcost != -1)
		out << entete << "CostRWRatio\t" << simu_parameters.ratio_RWcost << endl;
	out << entete << "CostReadNVM\t" << m_costParameters.costNVM[READ_ACCESS] << endl;
	out << entete << "CostWriteNVM\t" << m_costParameters.costNVM[WRITE_ACCESS] << endl;
	out << entete << "HashingFunction\t" << simu_parameters.DBAMB_signature << endl;
	out << entete << "HashingBeginBit\t" << simu_parameters.DBAMB_begin_bit << endl;
	out << entete << "HashingEndBit\t" << simu_parameters.DBAMB_end_bit << endl;
	
	Predictor::printConfig(out, entete1);
}

// 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
leaq 0x1c1ba(%rip), %rdx     # 0x29bc4
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x9fc4
movq %rbx, %rdi
movq %r12, %rsi
callq 0x5290
leaq 0x1c1a9(%rip), %rsi     # 0x29bd5
movq %rax, %rdi
callq 0x52c0
movl 0x338(%r14), %esi
movq %rax, %rdi
callq 0x5200
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c185(%rip), %rsi     # 0x29be4
movq %rax, %rdi
callq 0x52c0
movl 0x33c(%r14), %esi
movq %rax, %rdi
callq 0x5200
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c162(%rip), %rsi     # 0x29bf4
movq %rax, %rdi
callq 0x52c0
leaq 0x304af(%rip), %r13     # 0x3df50
movl 0xa0(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c134(%rip), %rsi     # 0x29c00
movq %rax, %rdi
callq 0x52c0
movss 0x98(%r13), %xmm0
movq %rax, %rdi
callq 0x5230
movq %rax, %rdi
callq 0x5190
leaq 0x1b9d4(%rip), %rbp     # 0x294c8
cmpb $0x0, 0xa8(%r13)
leaq 0x1b9ca(%rip), %r12     # 0x294cd
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x5140
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c0e8(%rip), %rsi     # 0x29c15
movq %rax, %rdi
callq 0x52c0
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c0c5(%rip), %rsi     # 0x29c23
movq %rax, %rdi
callq 0x52c0
movl 0x9c(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1e2dd(%rip), %rsi     # 0x2be6e
movq %rax, %rdi
callq 0x52c0
movl 0xa4(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0xa9(%r13)
movq %r12, %rsi
cmovneq %rbp, %rsi
leaq 0x28(%rsp), %rdi
callq 0x55c0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c05d(%rip), %rsi     # 0x29c3a
movq %rax, %rdi
callq 0x52c0
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
cmpb $0x0, 0x158(%r13)
cmovneq %rbp, %r12
leaq 0x28(%rsp), %rdi
movq %r12, %rsi
callq 0x55c0
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1c024(%rip), %rsi     # 0x29c4b
movq %rax, %rdi
callq 0x52c0
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
movss 0xe0(%r13), %xmm0
ucomiss 0x1bd08(%rip), %xmm0    # 0x2995c
jne 0xdc58
jnp 0xdc8d
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1bff0(%rip), %rsi     # 0x29c5c
movq %rax, %rdi
callq 0x52c0
movss 0xe0(%r13), %xmm0
movq %rax, %rdi
callq 0x5230
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1bfc8(%rip), %rsi     # 0x29c69
movq %rax, %rdi
callq 0x52c0
movq 0x2a0(%r14), %rcx
movl (%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1bfa0(%rip), %rsi     # 0x29c76
movq %rax, %rdi
callq 0x52c0
movq 0x2a0(%r14), %rcx
movl 0x4(%rcx), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1bf78(%rip), %rsi     # 0x29c84
movq %rax, %rdi
callq 0x52c0
movl $0x130, %esi            # imm = 0x130
addq 0x2f290(%rip), %rsi     # 0x3cfb0
movq %rax, %rdi
callq 0x5290
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1bf51(%rip), %rsi     # 0x29c95
movq %rax, %rdi
callq 0x52c0
movl 0x150(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5290
leaq 0x1bf2f(%rip), %rsi     # 0x29ca6
movq %rax, %rdi
callq 0x52c0
movl 0x154(%r13), %esi
movq %rax, %rdi
callq 0x5560
movq %rax, %rdi
callq 0x5190
leaq 0x48(%rsp), %rdi
movq %r15, %rsi
callq 0x5410
leaq 0x48(%rsp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x20228
leaq 0x48(%rsp), %rdi
callq 0x5618
leaq 0x28(%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
callq 0x5618
jmp 0xddf9
jmp 0xddf1
movq %rax, %rbx
jmp 0xde03
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x5618
leaq 0x8(%rsp), %rdi
callq 0x5618
movq %rbx, %rdi
callq 0x5570
nop