// File: /workspace/github_cpp_makefile_star2_O1/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 0xcc1c
leaq 0x242ec(%rip), %rsi     # 0x34c04
movq %r12, %rdi
callq 0x55f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x242da(%rip), %rsi     # 0x34c15
movl $0xe, %edx
movq %rax, %rdi
callq 0x5350
movl 0x338(%r14), %esi
movq %r12, %rdi
callq 0x51e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x24288(%rip), %rsi     # 0x34c24
movl $0xf, %edx
movq %rax, %rdi
callq 0x5350
movl 0x33c(%r14), %esi
movq %r12, %rdi
callq 0x51e0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x24237(%rip), %rsi     # 0x34c34
movl $0xb, %edx
movq %rax, %rdi
callq 0x5350
leaq 0x3553f(%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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x241dc(%rip), %rsi     # 0x34c40
movl $0x14, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movzbl 0xa8(%rbp), %edx
leaq 0x23a1f(%rip), %r15     # 0x344d8
leaq 0x23a1d(%rip), %r12     # 0x344dd
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 0xccac
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r13
leaq 0x24156(%rip), %rsi     # 0x34c55
movl $0xd, %edx
movq %rax, %rdi
callq 0x5350
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r13, %rdi
callq 0x5350
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r13
leaq 0x24100(%rip), %rsi     # 0x34c63
movl $0x16, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r13
leaq 0x26303(%rip), %rsi     # 0x36ec6
movl $0x12, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
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 0x5350
movq %rax, %r13
leaq 0x24031(%rip), %rsi     # 0x34c7a
movl $0x10, %edx
movq %rax, %rdi
callq 0x5350
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r13, %rdi
callq 0x5350
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x52b0
movsbl %al, %esi
movq %r13, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
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 0x5350
movq %rax, %r12
leaq 0x23fb8(%rip), %rsi     # 0x34c8b
movl $0x10, %edx
movq %rax, %rdi
callq 0x5350
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x5350
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movss 0xe0(%rbp), %xmm0
ucomiss 0x23c71(%rip), %xmm0    # 0x3499c
jne 0x10d2f
jnp 0x10d94
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x23f52(%rip), %rsi     # 0x34c9c
movl $0xc, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x23efa(%rip), %rsi     # 0x34ca9
movl $0xc, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x23ea4(%rip), %rsi     # 0x34cb6
movl $0xd, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x23e4e(%rip), %rsi     # 0x34cc4
movl $0x10, %edx
movq %rax, %rdi
callq 0x5350
movq 0x130(%rbp), %rsi
movq 0x138(%rbp), %rdx
movq %r12, %rdi
callq 0x5350
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x23df7(%rip), %rsi     # 0x34cd5
movl $0x10, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %rbx, %rdi
callq 0x5350
movq %rax, %r12
leaq 0x23da8(%rip), %rsi     # 0x34ce6
movl $0xe, %edx
movq %rax, %rdi
callq 0x5350
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 0x52b0
movsbl %al, %esi
movq %r12, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x51f0
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 0xcc1c
leaq 0x48(%rsp), %rdx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x27ae4
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x10fc4
callq 0x52a0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
leaq 0x10(%rsp), %rbx
je 0x10fdd
callq 0x52a0
movq (%rsp), %rdi
cmpq %rbx, %rdi
je 0x10feb
callq 0x52a0
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 0x11026
callq 0x52a0
jmp 0x11026
jmp 0x1101e
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
jne 0x11048
jmp 0x1104d
movq %rax, %rbx
jmp 0x1103a
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x1103a
callq 0x52a0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x1104d
callq 0x52a0
movq %rbx, %rdi
callq 0x55a0
nop