// File: /workspace/github_cpp_makefile_star2_O3/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 %rsi, %rbx
movq %rdi, %r14
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rdx), %rsi
movq %rdx, 0x40(%rsp)
movq 0x8(%rdx), %rdx
addq %rsi, %rdx
movq %rsp, %r12
movq %r12, %rdi
callq 0xcbd6
leaq 0x2433e(%rip), %rsi     # 0x34be4
movq %r12, %rdi
callq 0x55f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x2432c(%rip), %rsi     # 0x34bf5
movl $0xe, %edx
movq %rax, %rdi
callq 0x5360
movl 0x338(%r14), %esi
movq %r12, %rdi
callq 0x51f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x242da(%rip), %rsi     # 0x34c04
movl $0xf, %edx
movq %rax, %rdi
callq 0x5360
movl 0x33c(%r14), %esi
movq %r12, %rdi
callq 0x51f0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x24289(%rip), %rsi     # 0x34c14
movl $0xb, %edx
movq %rax, %rdi
callq 0x5360
leaq 0x355b1(%rip), %rbp     # 0x45f50
movl 0xa0(%rbp), %esi
movq %r12, %rdi
callq 0x5580
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x2422e(%rip), %rsi     # 0x34c20
movl $0x14, %edx
movq %rax, %rdi
callq 0x5360
cvtss2sd 0x98(%rbp), %xmm0
movq %r12, %rdi
callq 0x5500
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movzbl 0xa8(%rbp), %edx
leaq 0x23a65(%rip), %r15     # 0x344ac
leaq 0x23a63(%rip), %r12     # 0x344b1
testq %rdx, %rdx
movq %r12, %rsi
cmovneq %r15, %rsi
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
xorq $0x5, %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %rdi
callq 0xcc6c
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r13
leaq 0x241a8(%rip), %rsi     # 0x34c35
movl $0xd, %edx
movq %rax, %rdi
callq 0x5360
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r13, %rdi
callq 0x5360
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r13
leaq 0x24152(%rip), %rsi     # 0x34c43
movl $0x16, %edx
movq %rax, %rdi
callq 0x5360
movl 0x9c(%rbp), %esi
movq %r13, %rdi
callq 0x5580
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r13
leaq 0x2636d(%rip), %rsi     # 0x36ebe
movl $0x12, %edx
movq %rax, %rdi
callq 0x5360
movl 0xa4(%rbp), %esi
movq %r13, %rdi
callq 0x5580
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movzbl 0xa9(%rbp), %r8d
testq %r8, %r8
movq %r12, %rcx
cmovneq %r15, %rcx
leaq 0x20(%rsp), %rdi
movq 0x8(%rdi), %rdx
xorq $0x5, %r8
xorl %esi, %esi
callq 0x54b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r13
leaq 0x24083(%rip), %rsi     # 0x34c5a
movl $0x10, %edx
movq %rax, %rdi
callq 0x5360
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r13, %rdi
callq 0x5360
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movzbl 0x158(%rbp), %r8d
testq %r8, %r8
cmovneq %r15, %r12
leaq 0x20(%rsp), %rdi
movq 0x8(%rdi), %rdx
xorq $0x5, %r8
xorl %esi, %esi
movq %r12, %rcx
callq 0x54b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x2400a(%rip), %rsi     # 0x34c6b
movl $0x10, %edx
movq %rax, %rdi
callq 0x5360
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x5360
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movss 0xe0(%rbp), %xmm0
ucomiss 0x23cb3(%rip), %xmm0    # 0x3496c
jne 0x10cbd
jnp 0x10d22
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x23fa4(%rip), %rsi     # 0x34c7c
movl $0xc, %edx
movq %rax, %rdi
callq 0x5360
xorps %xmm0, %xmm0
cvtss2sd 0xe0(%rbp), %xmm0
movq %r12, %rdi
callq 0x5500
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x23f4c(%rip), %rsi     # 0x34c89
movl $0xc, %edx
movq %rax, %rdi
callq 0x5360
movq 0x2a0(%r14), %rax
movl (%rax), %esi
movq %r12, %rdi
callq 0x5580
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x23ef6(%rip), %rsi     # 0x34c96
movl $0xd, %edx
movq %rax, %rdi
callq 0x5360
movq 0x2a0(%r14), %rax
movl 0x4(%rax), %esi
movq %r12, %rdi
callq 0x5580
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x23ea0(%rip), %rsi     # 0x34ca4
movl $0x10, %edx
movq %rax, %rdi
callq 0x5360
movq 0x130(%rbp), %rsi
movq 0x138(%rbp), %rdx
movq %r12, %rdi
callq 0x5360
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x23e49(%rip), %rsi     # 0x34cb5
movl $0x10, %edx
movq %rax, %rdi
callq 0x5360
movl 0x150(%rbp), %esi
movq %r12, %rdi
callq 0x5580
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5360
movq %rax, %r12
leaq 0x23dfa(%rip), %rsi     # 0x34cc6
movl $0xe, %edx
movq %rax, %rdi
callq 0x5360
movl 0x154(%rbp), %esi
movq %r12, %rdi
callq 0x5580
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52c0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5200
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0x40(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0xcbd6
leaq 0x48(%rsp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x277ac
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x10f52
callq 0x52b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
leaq 0x10(%rsp), %rbx
je 0x10f6b
callq 0x52b0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x10f79
callq 0x52b0
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x10fb4
callq 0x52b0
jmp 0x10fb4
jmp 0x10fac
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
jne 0x10fd6
jmp 0x10fdb
movq %rax, %rbx
jmp 0x10fc8
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x10fc8
callq 0x52b0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x10fdb
callq 0x52b0
movq %rbx, %rdi
callq 0x55a0
nop