// File: gvaumour[P]cache-simulator/src/SimplePerceptron.cc
// Function: SimplePerceptronPredictor::printStats(std::ostream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void 
SimplePerceptronPredictor::printStats(std::ostream& out, std::string entete) 
{ 
	out << entete << ":SimplePerceptronPredictor:SRAMerror\t" << stats_cptSRAMerror << endl;
	if(simu_parameters.simple_perceptron_enableMigration)
	{
		out << entete << ":SimplePerceptronPredictor:TotalMigration\t" << stats_nbMigrations[true] + stats_nbMigrations[false] << endl;
		out << entete << ":SimplePerceptronPredictor:MigrationsFromSRAM\t" << stats_nbMigrations[true] << endl;
		out << entete << ":SimplePerceptronPredictor:MigrationsFromNVM\t" << stats_nbMigrations[false] << endl;	
	}
	out << entete << ":SimplePerceptronPredictor:WrongAlloc\t" << stats_wrong_alloc << endl;
	out << entete << ":SimplePerceptronPredictor:CorrectAlloc\t" << stats_good_alloc << endl;
	
	Predictor::printStats(out, entete);
}

// Assembly:
subq $0x98, %rsp
movq %rdx, 0x38(%rsp)
movq %rsi, %rax
movq 0x38(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq %rdi, 0x90(%rsp)
movq %rax, 0x88(%rsp)
movq %rsi, 0x80(%rsp)
movq 0x90(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x88(%rsp), %rdi
callq 0x5330
movq %rax, %rdi
leaq 0xfdba(%rip), %rsi      # 0x73cff
callq 0x5380
movq %rax, %rdi
movq 0x48(%rsp), %rax
movq 0x320(%rax), %rsi
callq 0x50f0
movq %rax, %rdi
movq 0x2f050(%rip), %rsi     # 0x92fb8
callq 0x53d0
leaq 0x3007c(%rip), %rax     # 0x93ff0
testb $0x1, 0x24e(%rax)
je 0x640a4
movq 0x40(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x5330
movq %rax, %rdi
leaq 0xfd88(%rip), %rsi      # 0x73d25
callq 0x5380
movq 0x48(%rsp), %rdi
movq %rax, 0x20(%rsp)
addq $0x350, %rdi            # imm = 0x350
movl $0x1, %esi
callq 0xef90
movq 0x48(%rsp), %rdi
movl (%rax), %eax
movl %eax, 0x1c(%rsp)
addq $0x350, %rdi            # imm = 0x350
xorl %eax, %eax
movl %eax, %esi
callq 0xef90
movl 0x1c(%rsp), %esi
movq 0x20(%rsp), %rdi
addl (%rax), %esi
callq 0x5680
movq %rax, %rdi
movq 0x2efc6(%rip), %rsi     # 0x92fb8
callq 0x53d0
movq 0x40(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x5330
movq %rax, %rdi
leaq 0xfd3d(%rip), %rsi      # 0x73d50
callq 0x5380
movq 0x48(%rsp), %rdi
movq %rax, 0x28(%rsp)
addq $0x350, %rdi            # imm = 0x350
movl $0x1, %esi
callq 0xef90
movq 0x28(%rsp), %rdi
movl (%rax), %esi
callq 0x5680
movq %rax, %rdi
movq 0x2ef6f(%rip), %rsi     # 0x92fb8
callq 0x53d0
movq 0x40(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x5330
movq %rax, %rdi
leaq 0xfd15(%rip), %rsi      # 0x73d7f
callq 0x5380
movq 0x48(%rsp), %rdi
movq %rax, 0x30(%rsp)
addq $0x350, %rdi            # imm = 0x350
xorl %eax, %eax
movl %eax, %esi
callq 0xef90
movq 0x30(%rsp), %rdi
movl (%rax), %esi
callq 0x5680
movq %rax, %rdi
movq 0x2ef19(%rip), %rsi     # 0x92fb8
callq 0x53d0
movq 0x40(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x5330
movq %rax, %rdi
leaq 0xfced(%rip), %rsi      # 0x73dad
callq 0x5380
movq %rax, %rdi
movq 0x48(%rsp), %rax
movq 0x330(%rax), %rsi
callq 0x50f0
movq %rax, %rdi
movq 0x2eed5(%rip), %rsi     # 0x92fb8
movq %rsi, (%rsp)
callq 0x53d0
movq 0x40(%rsp), %rsi
movq 0x88(%rsp), %rdi
callq 0x5330
movq %rax, %rdi
leaq 0xfccc(%rip), %rsi      # 0x73dd4
callq 0x5380
movq %rax, %rdi
movq 0x48(%rsp), %rax
movq 0x328(%rax), %rsi
callq 0x50f0
movq (%rsp), %rsi
movq %rax, %rdi
callq 0x53d0
movq 0x40(%rsp), %rsi
movq 0x88(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x60(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x51b0
movq 0x48(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x57bf0
jmp 0x64164
leaq 0x60(%rsp), %rdi
callq 0x5768
addq $0x98, %rsp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x5768
movq 0x58(%rsp), %rdi
callq 0x5690
nopl (%rax,%rax)