// File: cybozu[P]yrmcds/src/memcache/stats.cpp
// Function: yrmcds::memcache::statistics::reset()
void statistics::reset() noexcept {
    objects = 0;
    objects_under_1k = 0;
    objects_under_4k = 0;
    objects_under_16k = 0;
    objects_under_64k = 0;
    objects_under_256k = 0;
    objects_under_1m = 0;
    objects_under_4m = 0;
    objects_huge = 0;

    /* bucket statistics.  Updated at every GC. */
    used_memory = 0;
    conflicts = 0;

    /* GC statistics. Updated at every GC, of course. */
    gc_count = 0;
    oldest_age = 0;
    largest_object_size = 0;
    last_expirations = 0;
    last_evictions = 0;
    total_evictions = 0;
    last_gc_elapsed = 0;
    total_gc_elapsed = 0;

    /* Replication statistics - non atomic. */
    repl_created = 0;
    repl_updated = 0;
    repl_removed = 0;

    /* Realtime staticstics. */
    total_objects = 0;
    flush_time = 0;
    curr_connections = 0;
    total_connections = 0;
    for( auto& v: text_ops )
        v = 0;
    for( auto& v: bin_ops )
        v = 0;
    get_hits = 0;
    get_misses = 0;
    cas_hits = 0;
    cas_misses = 0;
    cas_badval = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x50(%rbp)
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x4, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x8, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0xc, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x10, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x14, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x18, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x1c, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x20, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x30, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x34, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x38, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x40, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x48, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x4c, %rdi
xorl %esi, %esi
callq 0x36ad0
movq -0x50(%rbp), %rdi
addq $0x50, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x58, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x60, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
movq $0x0, 0x68(%rdi)
movq $0x0, 0x70(%rdi)
movq $0x0, 0x78(%rdi)
addq $0x80, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0xc0, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x54f00
movq -0x50(%rbp), %rdi
addq $0x100, %rdi            # imm = 0x100
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x108, %rdi            # imm = 0x108
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rax
addq $0x140, %rax            # imm = 0x140
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
addq $0xb8, %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
je 0x54e1c
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x18(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
jmp 0x54def
movq -0x50(%rbp), %rax
addq $0x1f8, %rax            # imm = 0x1F8
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
addq $0x290, %rax            # imm = 0x290
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
je 0x54e6d
movq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0x54e40
movq -0x50(%rbp), %rdi
addq $0x488, %rdi            # imm = 0x488
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x490, %rdi            # imm = 0x490
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x498, %rdi            # imm = 0x498
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x4a0, %rdi            # imm = 0x4A0
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
movq -0x50(%rbp), %rdi
addq $0x4a8, %rdi            # imm = 0x4A8
xorl %eax, %eax
movl %eax, %esi
callq 0x36b70
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)