.file "loop.c" # GNU C17 (x86_64-posix-seh-rev1, Built by MinGW-Builds project) version 14.2.0 (x86_64-w64-mingw32) # compiled by GNU C version 14.2.0, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version isl-0.25-GMP # GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 # options passed: -mtune=core2 -march=nocona -O1 .text .def printf; .scl 3; .type 32; .endef .seh_proc printf printf: pushq %rsi # .seh_pushreg %rsi pushq %rbx # .seh_pushreg %rbx subq $56, %rsp #, .seh_stackalloc 56 .seh_endprologue movq %rcx, %rbx # tmp105, __format movq %rdx, 88(%rsp) #, movq %r8, 96(%rsp) #, movq %r9, 104(%rsp) #, # C:/Program Files/mingw64/x86_64-w64-mingw32/include/stdio.h:382: __builtin_va_list __local_argv; __builtin_va_start( __local_argv, __format ); leaq 88(%rsp), %rsi #, tmp102 movq %rsi, 40(%rsp) # tmp102, MEM[(char * *)&__local_argv] # C:/Program Files/mingw64/x86_64-w64-mingw32/include/stdio.h:383: __retval = __mingw_vfprintf( stdout, __format, __local_argv ); movl $1, %ecx #, call *__imp___acrt_iob_func(%rip) # movq %rax, %rcx # tmp106, _2 # C:/Program Files/mingw64/x86_64-w64-mingw32/include/stdio.h:383: __retval = __mingw_vfprintf( stdout, __format, __local_argv ); movq %rsi, %r8 # tmp102, movq %rbx, %rdx # __format, call __mingw_vfprintf # # C:/Program Files/mingw64/x86_64-w64-mingw32/include/stdio.h:386: } addq $56, %rsp #, popq %rbx # popq %rsi # ret .seh_endproc .section .rdata,"dr" .align 8 .LC0: .ascii "What... You've Jumped here! Your value %d is not appropriate.\0" .text .globl multimes .def multimes; .scl 2; .type 32; .endef .seh_proc multimes multimes: subq $40, %rsp #, .seh_stackalloc 40 .seh_endprologue # loop.c:5: int result = 1; movl $1, %eax #, # loop.c:6: if (n < 0) goto wow; testl %ecx, %ecx # n js .L8 #, .p2align 4 .L3: # loop.c:8: result *= i; imull %ecx, %eax # n, # loop.c:9: i--; subl $1, %ecx #, n # loop.c:10: if( i > 0 ) goto loop; testl %ecx, %ecx # n jg .L3 #, .L4: .L2: # loop.c:16: } addq $40, %rsp #, ret .L8: # loop.c:13: printf("What... You've Jumped here! Your value %d is not appropriate.", n); movl %ecx, %edx # n, leaq .LC0(%rip), %rcx #, tmp100 call printf # # loop.c:5: int result = 1; movl $1, %eax #, jmp .L2 # .seh_endproc .section .rdata,"dr" .LC1: .ascii "%d, %d, %d\0" .text .globl main .def main; .scl 2; .type 32; .endef .seh_proc main main: pushq %rsi # .seh_pushreg %rsi pushq %rbx # .seh_pushreg %rbx subq $40, %rsp #, .seh_stackalloc 40 .seh_endprologue # loop.c:18: int main(){ call __main # # loop.c:20: printf("%d, %d, %d", multimes(a), multimes(b), multimes(c)); movl $-1, %ecx #, call multimes # movl %eax, %esi # tmp104, _1 # loop.c:20: printf("%d, %d, %d", multimes(a), multimes(b), multimes(c)); movl $5, %ecx #, call multimes # movl %eax, %ebx # tmp105, _2 # loop.c:20: printf("%d, %d, %d", multimes(a), multimes(b), multimes(c)); movl $10, %ecx #, call multimes # movl %eax, %edx # tmp106, _3 # loop.c:20: printf("%d, %d, %d", multimes(a), multimes(b), multimes(c)); movl %esi, %r9d # _1, movl %ebx, %r8d # _2, leaq .LC1(%rip), %rcx #, tmp102 call printf # # loop.c:22: } movl $0, %eax #, addq $40, %rsp #, popq %rbx # popq %rsi # ret .seh_endproc .def __main; .scl 2; .type 32; .endef .ident "GCC: (x86_64-posix-seh-rev1, Built by MinGW-Builds project) 14.2.0" .def __mingw_vfprintf; .scl 2; .type 32; .endef