// File: /workspace/github_cpp_makefile_star2_O2/CMU-SAFARI[P]ramulator/src/DRAM.h
// Function: ramulator::DRAM<ramulator::DDR3>::regStats(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void DRAM<T>::regStats(const std::string& identifier) {
    active_cycles
        .name("active_cycles" + identifier + "_" + to_string(id))
        .desc("Total active cycles for level " + identifier + "_" + to_string(id))
        .precision(0)
        ;
    refresh_cycles
        .name("refresh_cycles" + identifier + "_" + to_string(id))
        .desc("(All-bank refresh only, only valid for rank level) The sum of cycles that is under refresh per memory cycle for level " + identifier + "_" + to_string(id))
        .precision(0)
        .flags(Stats::nozero)
        ;
    busy_cycles
        .name("busy_cycles" + identifier + "_" + to_string(id))
        .desc("(All-bank refresh only. busy cycles only include refresh time in rank level) The sum of cycles that the DRAM part is active or under refresh for level " + identifier + "_" + to_string(id))
        .precision(0)
        ;
    active_refresh_overlap_cycles
        .name("active_refresh_overlap_cycles" + identifier + "_" + to_string(id))
        .desc("(All-bank refresh only, only valid for rank level) The sum of cycles that are both active and under refresh per memory cycle for level " + identifier + "_" + to_string(id))
        .precision(0)
        .flags(Stats::nozero)
        ;
    serving_requests
        .name("serving_requests" + identifier + "_" + to_string(id))
        .desc("The sum of read and write requests that are served in this DRAM element per memory cycle for level " + identifier + "_" + to_string(id))
        .precision(0)
        ;
    average_serving_requests
        .name("average_serving_requests" + identifier + "_" + to_string(id))
        .desc("The average of read and write requests that are served in this DRAM element per memory cycle for level " + identifier + "_" + to_string(id))
        .precision(6)
        ;

    if (!children.size()) {
      return;
    }

    // recursively register children statistics
    for (auto child : children) {
      child->regStats(identifier + "_" + to_string(id));
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x258, %rsp            # imm = 0x258
movq %rsi, %rdx
movq %rdi, %r12
leaq 0xbe36a(%rip), %rsi     # 0xd246e
leaq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq %rdx, 0x8(%rsp)
callq 0x1a8ad
leaq 0xcdaab(%rip), %rdx     # 0xe1bcb
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x10(%rsp), %rdi
callq 0x1a923
leaq 0x238(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1a827
leaq 0x238(%rsp), %rsi
movq %r12, %rdi
callq 0x1a7c6
movq %rax, %r15
leaq 0xbd447(%rip), %rsi     # 0xd15b7
leaq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcda45(%rip), %rdx     # 0xe1bcb
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x50(%rsp), %rdi
callq 0x1a923
leaq 0x218(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1a827
leaq 0x28(%r15), %rdi
leaq 0x218(%rsp), %rsi
callq 0xb1c0
andl $0x0, 0x48(%r15)
leaq 0x218(%rsp), %rdi
callq 0xb568
leaq 0x50(%rsp), %rdi
callq 0xb568
leaq 0x90(%rsp), %rdi
callq 0xb568
leaq 0x70(%rsp), %rdi
callq 0xb568
leaq 0x238(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
leaq 0xbd399(%rip), %rsi     # 0xd15d6
leaq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd972(%rip), %rdx     # 0xe1bcb
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x10(%rsp), %rdi
callq 0x1a923
leaq 0x1f8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1a827
leaq 0x98(%r12), %rdi
leaq 0x1f8(%rsp), %rsi
callq 0x1a7c6
movq %rax, %r15
leaq 0xbd337(%rip), %rsi     # 0xd15e5
leaq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd907(%rip), %rdx     # 0xe1bcb
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x50(%rsp), %rdi
callq 0x1a923
leaq 0x1d8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1a827
leaq 0x28(%r15), %rdi
leaq 0x1d8(%rsp), %rsi
callq 0xb1c0
andl $0x0, 0x48(%r15)
movw $0x100, 0x4c(%r15)      # imm = 0x100
leaq 0x1d8(%rsp), %rdi
callq 0xb568
leaq 0x50(%rsp), %rdi
callq 0xb568
leaq 0x90(%rsp), %rdi
callq 0xb568
leaq 0x70(%rsp), %rdi
callq 0xb568
leaq 0x1f8(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
leaq 0xbd2da(%rip), %rsi     # 0xd165c
leaq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd82d(%rip), %rdx     # 0xe1bcb
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x10(%rsp), %rdi
callq 0x1a923
leaq 0x1b8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1a827
leaq 0x130(%r12), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x1a7c6
movq %rax, %r15
leaq 0xbd275(%rip), %rsi     # 0xd1668
leaq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd7c2(%rip), %rdx     # 0xe1bcb
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x50(%rsp), %rdi
callq 0x1a923
leaq 0x198(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1a827
leaq 0x28(%r15), %rdi
leaq 0x198(%rsp), %rsi
callq 0xb1c0
andl $0x0, 0x48(%r15)
leaq 0x198(%rsp), %rdi
callq 0xb568
leaq 0x50(%rsp), %rdi
callq 0xb568
leaq 0x90(%rsp), %rdi
callq 0xb568
leaq 0x70(%rsp), %rdi
callq 0xb568
leaq 0x1b8(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
leaq 0xbd240(%rip), %rsi     # 0xd1700
leaq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd6ef(%rip), %rdx     # 0xe1bcb
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x10(%rsp), %rdi
callq 0x1a923
leaq 0x178(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1a827
leaq 0x1c8(%r12), %rdi
leaq 0x178(%rsp), %rsi
callq 0x1a7c6
movq %rax, %r15
leaq 0xbd1ed(%rip), %rsi     # 0xd171e
leaq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd684(%rip), %rdx     # 0xe1bcb
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x50(%rsp), %rdi
callq 0x1a923
leaq 0x158(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1a827
leaq 0x28(%r15), %rdi
leaq 0x158(%rsp), %rsi
callq 0xb1c0
andl $0x0, 0x48(%r15)
movw $0x100, 0x4c(%r15)      # imm = 0x100
leaq 0x158(%rsp), %rdi
callq 0xb568
leaq 0x50(%rsp), %rdi
callq 0xb568
leaq 0x90(%rsp), %rdi
callq 0xb568
leaq 0x70(%rsp), %rdi
callq 0xb568
leaq 0x178(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
leaq 0xbd20d(%rip), %rsi     # 0xd1812
leaq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd5aa(%rip), %rdx     # 0xe1bcb
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x10(%rsp), %rdi
callq 0x1a923
leaq 0x138(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1a827
leaq 0x260(%r12), %rdi
leaq 0x138(%rsp), %rsi
callq 0x1a7c6
movq %rax, %r15
leaq 0xbd130(%rip), %rsi     # 0xd17a6
leaq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd53f(%rip), %rdx     # 0xe1bcb
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x50(%rsp), %rdi
callq 0x1a923
leaq 0x118(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1a827
leaq 0x28(%r15), %rdi
leaq 0x118(%rsp), %rsi
callq 0xb1c0
andl $0x0, 0x48(%r15)
leaq 0x118(%rsp), %rdi
callq 0xb568
leaq 0x50(%rsp), %rdi
callq 0xb568
leaq 0x90(%rsp), %rdi
callq 0xb568
leaq 0x70(%rsp), %rdi
callq 0xb568
leaq 0x138(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
leaq 0xbd0c7(%rip), %rsi     # 0xd180a
leaq 0xb0(%rsp), %rbx
movq %rbx, %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd46c(%rip), %rdx     # 0xe1bcb
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x10(%rsp), %rdi
callq 0x1a923
leaq 0xf8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x1a827
leaq 0x2f8(%r12), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x1a7c6
movq %rax, %r15
leaq 0xbd06f(%rip), %rsi     # 0xd1823
leaq 0x70(%rsp), %rdi
movq 0x8(%rsp), %rdx
callq 0x1a8ad
leaq 0xcd401(%rip), %rdx     # 0xe1bcb
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x1a88e
movl 0x39c(%r12), %esi
leaq 0x50(%rsp), %rdi
callq 0x1a923
leaq 0xd8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x1a827
leaq 0x28(%r15), %rdi
leaq 0xd8(%rsp), %rsi
callq 0xb1c0
movl $0x6, 0x48(%r15)
leaq 0xd8(%rsp), %rdi
callq 0xb568
leaq 0x50(%rsp), %rdi
callq 0xb568
leaq 0x90(%rsp), %rdi
callq 0xb568
leaq 0x70(%rsp), %rdi
callq 0xb568
leaq 0xf8(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
movq 0x3b0(%r12), %r14
movq %r12, 0xd0(%rsp)
movq 0x3b8(%r12), %r15
cmpq %r14, %r15
je 0x14915
leaq 0xb0(%rsp), %r12
leaq 0x10(%rsp), %r13
leaq 0x30(%rsp), %rbp
cmpq %r15, %r14
je 0x14915
movq (%r14), %rbx
movq %r12, %rdi
movq 0x8(%rsp), %rsi
leaq 0xcd308(%rip), %rdx     # 0xe1bcb
callq 0x11053
movq 0xd0(%rsp), %rax
movl 0x39c(%rax), %esi
movq %r13, %rdi
callq 0x1a923
movq %rbp, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x1a827
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x140e6
movq %rbp, %rdi
callq 0xb568
movq %r13, %rdi
callq 0xb568
movq %r12, %rdi
callq 0xb568
addq $0x8, %r14
jmp 0x148ac
addq $0x258, %rsp            # imm = 0x258
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
callq 0xb568
jmp 0x1493c
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xb568
jmp 0x1494b
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb568
jmp 0x1495d
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb568
jmp 0x1496e
jmp 0x1496b
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
jmp 0x14b59
jmp 0x14b6f
jmp 0x14b74
jmp 0x14b7b
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0xb568
jmp 0x1499f
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xb568
jmp 0x149ae
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb568
jmp 0x149c0
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb568
jmp 0x149d1
jmp 0x149ce
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
jmp 0x14b59
jmp 0x14b6f
jmp 0x14b74
jmp 0x14b7b
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0xb568
jmp 0x14a02
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xb568
jmp 0x14a11
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb568
jmp 0x14a23
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb568
jmp 0x14a34
jmp 0x14a31
movq %rax, %rbx
leaq 0x178(%rsp), %rdi
jmp 0x14b59
jmp 0x14b6f
jmp 0x14b74
jmp 0x14b7b
movq %rax, %rbx
leaq 0x198(%rsp), %rdi
callq 0xb568
jmp 0x14a65
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xb568
jmp 0x14a74
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb568
jmp 0x14a86
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb568
jmp 0x14a97
jmp 0x14a94
movq %rax, %rbx
leaq 0x1b8(%rsp), %rdi
jmp 0x14b59
jmp 0x14b6f
jmp 0x14b74
jmp 0x14b7b
movq %rax, %rbx
leaq 0x1d8(%rsp), %rdi
callq 0xb568
jmp 0x14ac8
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xb568
jmp 0x14ad7
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb568
jmp 0x14ae9
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb568
jmp 0x14afa
jmp 0x14af7
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
jmp 0x14b59
jmp 0x14b6f
jmp 0x14b74
jmp 0x14b7b
movq %rax, %rbx
leaq 0x218(%rsp), %rdi
callq 0xb568
jmp 0x14b1f
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xb568
jmp 0x14b2e
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb568
jmp 0x14b40
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xb568
jmp 0x14b51
jmp 0x14b4e
movq %rax, %rbx
leaq 0x238(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0x30(%rsp), %rdi
jmp 0x14b97
movq %rax, %rbx
jmp 0x14b5e
movq %rax, %rbx
jmp 0x14b68
jmp 0x14b7b
movq %rax, %rbx
jmp 0x14b9c
movq %rax, %rbx
jmp 0x14b92
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xb568
leaq 0x10(%rsp), %rdi
callq 0xb568
leaq 0xb0(%rsp), %rdi
callq 0xb568
movq %rbx, %rdi
callq 0xb4d0
nop