.file "fps.c" .text .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string " INIT TIME COUNTER: %d FPS \n" .text .p2align 4 .globl InitTimeCounter .type InitTimeCounter, @function InitTimeCounter: .LFB22: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 1: call mcount xorl %esi, %esi movl $tv0, %edi call gettimeofday movl $60, %esi movl $.LC0, %edi popq %rbp .cfi_def_cfa 7, 8 movl $60, FramesPerFPS(%rip) xorl %eax, %eax jmp printf .cfi_endproc .LFE22: .size InitTimeCounter, .-InitTimeCounter .p2align 4 .globl UpdateTimeCounter .type UpdateTimeCounter, @function UpdateTimeCounter: .LFB23: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 1: call mcount movss TimeCounter(%rip), %xmm0 xorl %esi, %esi movl $tv, %edi movss %xmm0, LastFrameTimeCounter(%rip) call gettimeofday pxor %xmm0, %xmm0 pxor %xmm1, %xmm1 popq %rbp .cfi_def_cfa 7, 8 movq tv+8(%rip), %rax subq tv0+8(%rip), %rax cvtsi2ssq %rax, %xmm0 movq tv(%rip), %rax subq tv0(%rip), %rax cvtsi2ssq %rax, %xmm1 cvtss2sd %xmm0, %xmm0 mulsd .LC1(%rip), %xmm0 cvtss2sd %xmm1, %xmm1 addsd %xmm1, %xmm0 cvtsd2ss %xmm0, %xmm0 movss %xmm0, TimeCounter(%rip) ret .cfi_endproc .LFE23: .size UpdateTimeCounter, .-UpdateTimeCounter .section .rodata.str1.1 .LC2: .string "%4.1f SECONDS * %04.2f FPS \n" .text .p2align 4 .globl CalculateFPS .type CalculateFPS, @function CalculateFPS: .LFB24: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 1: call mcount movl Frame(%rip), %eax movl FramesPerFPS(%rip), %ecx movss TimeCounter(%rip), %xmm0 movss FPS(%rip), %xmm1 addl $1, %eax cltd movl %eax, Frame(%rip) idivl %ecx testl %edx, %edx jne .L6 pxor %xmm1, %xmm1 movaps %xmm0, %xmm2 subss prevTime(%rip), %xmm2 movss %xmm0, prevTime(%rip) cvtsi2ssl %ecx, %xmm1 divss %xmm2, %xmm1 movss %xmm1, FPS(%rip) .L6: movl $.LC2, %edi movl $2, %eax popq %rbp .cfi_def_cfa 7, 8 cvtss2sd %xmm0, %xmm0 cvtss2sd %xmm1, %xmm1 jmp printf .cfi_endproc .LFE24: .size CalculateFPS, .-CalculateFPS .globl FPS .bss .align 4 .type FPS, @object .size FPS, 4 FPS: .zero 4 .globl prevTime .align 4 .type prevTime, @object .size prevTime, 4 prevTime: .zero 4 .globl LastFrameTimeCounter .align 4 .type LastFrameTimeCounter, @object .size LastFrameTimeCounter, 4 LastFrameTimeCounter: .zero 4 .globl TimeCounter .align 4 .type TimeCounter, @object .size TimeCounter, 4 TimeCounter: .zero 4 .globl FramesPerFPS .align 4 .type FramesPerFPS, @object .size FramesPerFPS, 4 FramesPerFPS: .zero 4 .globl Frame .data .align 4 .type Frame, @object .size Frame, 4 Frame: .long 1 .globl tv0 .bss .align 16 .type tv0, @object .size tv0, 16 tv0: .zero 16 .globl tv .align 16 .type tv, @object .size tv, 16 tv: .zero 16 .section .rodata.cst8,"aM",@progbits,8 .align 8 .LC1: .long -1598689907 .long 1051772663 .ident "GCC: (GNU) 12.2.1 20220819 (Red Hat 12.2.1-2)" .section .note.GNU-stack,"",@progbits