Advertisement
Guest User

o3_native

a guest
Mar 8th, 2025
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 23.18 KB | None | 0 0
  1.     .file   "galsim.c"
  2. # GNU C17 (Debian 12.2.0-14) version 12.2.0 (x86_64-linux-gnu)
  3. #   compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.1-p1, MPC version 1.3.1, isl version isl-0.25-GMP
  4.  
  5. # warning: MPFR header version 4.1.1-p1 differs from library version 4.2.0.
  6. # GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  7. # options passed: -march=znver3 -mmmx -mpopcnt -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -msse4a -mno-fma4 -mno-xop -mfma -mno-avx512f -mbmi -mbmi2 -maes -mpclmul -mno-avx512vl -mno-avx512bw -mno-avx512dq -mno-avx512cd -mno-avx512er -mno-avx512pf -mno-avx512vbmi -mno-avx512ifma -mno-avx5124vnniw -mno-avx5124fmaps -mno-avx512vpopcntdq -mno-avx512vbmi2 -mno-gfni -mvpclmulqdq -mno-avx512vnni -mno-avx512bitalg -mno-avx512bf16 -mno-avx512vp2intersect -mno-3dnow -madx -mabm -mno-cldemote -mclflushopt -mclwb -mclzero -mcx16 -mno-enqcmd -mf16c -mfsgsbase -mfxsr -mno-hle -msahf -mno-lwp -mlzcnt -mmovbe -mno-movdir64b -mno-movdiri -mno-mwaitx -mno-pconfig -mno-pku -mno-prefetchwt1 -mprfchw -mno-ptwrite -mrdpid -mrdrnd -mrdseed -mno-rtm -mno-serialize -mno-sgx -msha -mshstk -mno-tbm -mno-tsxldtrk -mvaes -mno-waitpkg -mno-wbnoinvd -mxsave -mxsavec -mxsaveopt -mxsaves -mno-amx-tile -mno-amx-int8 -mno-amx-bf16 -mno-uintr -mno-hreset -mno-kl -mno-widekl -mno-avxvnni -mno-avx512fp16 --param=l1-cache-size=32 --param=l1-cache-line-size=64 --param=l2-cache-size=512 -mtune=znver3 -O3 -fasynchronous-unwind-tables
  8.     .text
  9.     .section    .rodata.str1.8,"aMS",@progbits,1
  10.     .align 8
  11. .LC1:
  12.     .string "Correct Format: %s N inputfile timesteps deltaT graphics\n"
  13.     .section    .rodata.str1.1,"aMS",@progbits,1
  14. .LC2:
  15.     .string "Memory allocation error!"
  16. .LC3:
  17.     .string "File open error!"
  18. .LC5:
  19.     .string "Time for File to DS(s): %lf\n"
  20. .LC8:
  21.     .string "Time for Processing(s): %lf\n"
  22. .LC9:
  23.     .string "result.gal"
  24. .LC10:
  25.     .string "File create error!"
  26. .LC11:
  27.     .string "Time for DS to File(s): %lf\n"
  28.     .section    .text.startup,"ax",@progbits
  29.     .p2align 4
  30.     .globl  main
  31.     .type   main, @function
  32. main:
  33. .LFB22:
  34.     .cfi_startproc
  35.     pushq   %r15    #
  36.     .cfi_def_cfa_offset 16
  37.     .cfi_offset 15, -16
  38.     pushq   %r14    #
  39.     .cfi_def_cfa_offset 24
  40.     .cfi_offset 14, -24
  41.     pushq   %r13    #
  42.     .cfi_def_cfa_offset 32
  43.     .cfi_offset 13, -32
  44.     pushq   %r12    #
  45.     .cfi_def_cfa_offset 40
  46.     .cfi_offset 12, -40
  47.     pushq   %rbp    #
  48.     .cfi_def_cfa_offset 48
  49.     .cfi_offset 6, -48
  50.     pushq   %rbx    #
  51.     .cfi_def_cfa_offset 56
  52.     .cfi_offset 3, -56
  53.     movq    %rsi, %rbx  # tmp230, av
  54.     subq    $136, %rsp  #,
  55.     .cfi_def_cfa_offset 192
  56. # galsim.c:16:     if(ac != 6){
  57.     cmpl    $6, %edi    #, tmp229
  58.     je  .L2 #,
  59. # galsim.c:17:         printf("Correct Format: %s N inputfile timesteps deltaT graphics\n", av[0]);
  60.     movq    (%rsi), %rsi    # *av_77(D),
  61.     leaq    .LC1(%rip), %rdi    #, tmp169
  62.     xorl    %eax, %eax  #
  63.     call    printf@PLT  #
  64. .L3:
  65. # galsim.c:18:         return 1;
  66.     movl    $1, %eax    #, <retval>
  67. .L1:
  68. # galsim.c:126: }
  69.     addq    $136, %rsp  #,
  70.     .cfi_remember_state
  71.     .cfi_def_cfa_offset 56
  72.     popq    %rbx    #
  73.     .cfi_def_cfa_offset 48
  74.     popq    %rbp    #
  75.     .cfi_def_cfa_offset 40
  76.     popq    %r12    #
  77.     .cfi_def_cfa_offset 32
  78.     popq    %r13    #
  79.     .cfi_def_cfa_offset 24
  80.     popq    %r14    #
  81.     .cfi_def_cfa_offset 16
  82.     popq    %r15    #
  83.     .cfi_def_cfa_offset 8
  84.     ret
  85. .L2:
  86.     .cfi_restore_state
  87. # /usr/include/stdlib.h:364:   return (int) strtol (__nptr, (char **) NULL, 10);
  88.     movq    8(%rsi), %rdi   # MEM[(char * *)av_77(D) + 8B], MEM[(char * *)av_77(D) + 8B]
  89.     movl    $10, %edx   #,
  90.     xorl    %esi, %esi  #
  91.     call    strtol@PLT  #
  92.     movq    24(%rbx), %rdi  # MEM[(char * *)av_77(D) + 24B], MEM[(char * *)av_77(D) + 24B]
  93.     movl    $10, %edx   #,
  94.     xorl    %esi, %esi  #
  95. # galsim.c:23:     const char *inputfile = av[2];
  96.     movq    16(%rbx), %r15  # MEM[(char * *)av_77(D) + 16B], inputfile
  97. # /usr/include/stdlib.h:364:   return (int) strtol (__nptr, (char **) NULL, 10);
  98.     movq    %rax, %r14  # tmp231, _151
  99. # /usr/include/stdlib.h:364:   return (int) strtol (__nptr, (char **) NULL, 10);
  100.     movl    %eax, 32(%rsp)  # _152, %sfp
  101. # /usr/include/stdlib.h:364:   return (int) strtol (__nptr, (char **) NULL, 10);
  102.     call    strtol@PLT  #
  103. # /usr/include/x86_64-linux-gnu/bits/stdlib-float.h:27:   return strtod (__nptr, (char **) NULL);
  104.     movq    32(%rbx), %rdi  # MEM[(char * *)av_77(D) + 32B], MEM[(char * *)av_77(D) + 32B]
  105.     xorl    %esi, %esi  #
  106. # /usr/include/stdlib.h:364:   return (int) strtol (__nptr, (char **) NULL, 10);
  107.     movq    %rax, 48(%rsp)  # _149, %sfp
  108. # /usr/include/stdlib.h:364:   return (int) strtol (__nptr, (char **) NULL, 10);
  109.     movl    %eax, 24(%rsp)  # _150, %sfp
  110. # /usr/include/x86_64-linux-gnu/bits/stdlib-float.h:27:   return strtod (__nptr, (char **) NULL);
  111.     call    strtod@PLT  #
  112.     vmovsd  %xmm0, 16(%rsp) # _148, %sfp
  113. # galsim.c:28:     start = clock();
  114.     call    clock@PLT   #
  115.     movq    %rax, 40(%rsp)  # tmp234, %sfp
  116. # galsim.c:32:     particles.x = (double *) malloc(N * sizeof(double));
  117.     movslq  %r14d, %rax # _151, _152
  118.     leaq    0(,%rax,8), %r13    #, _8
  119.     movq    %r13, %rdi  # _8,
  120.     call    malloc@PLT  #
  121. # galsim.c:33:     particles.y = (double *) malloc(N * sizeof(double));
  122.     movq    %r13, %rdi  # _8,
  123. # galsim.c:32:     particles.x = (double *) malloc(N * sizeof(double));
  124.     movq    %rax, 8(%rsp)   # _9, %sfp
  125. # galsim.c:33:     particles.y = (double *) malloc(N * sizeof(double));
  126.     call    malloc@PLT  #
  127. # galsim.c:34:     particles.mass = (double *) malloc(N * sizeof(double));
  128.     movq    %r13, %rdi  # _8,
  129. # galsim.c:33:     particles.y = (double *) malloc(N * sizeof(double));
  130.     movq    %rax, (%rsp)    # _12, %sfp
  131. # galsim.c:34:     particles.mass = (double *) malloc(N * sizeof(double));
  132.     call    malloc@PLT  #
  133. # galsim.c:35:     particles.vx = (double *) malloc(N * sizeof(double));
  134.     movq    %r13, %rdi  # _8,
  135. # galsim.c:34:     particles.mass = (double *) malloc(N * sizeof(double));
  136.     movq    %rax, %r12  # tmp237, _13
  137. # galsim.c:35:     particles.vx = (double *) malloc(N * sizeof(double));
  138.     call    malloc@PLT  #
  139. # galsim.c:36:     particles.vy = (double *) malloc(N * sizeof(double));
  140.     movq    %r13, %rdi  # _8,
  141. # galsim.c:35:     particles.vx = (double *) malloc(N * sizeof(double));
  142.     movq    %rax, %rbp  # tmp238, _14
  143. # galsim.c:36:     particles.vy = (double *) malloc(N * sizeof(double));
  144.     call    malloc@PLT  #
  145. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  146.     movq    8(%rsp), %r8    # %sfp, _9
  147. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  148.     movq    (%rsp), %rcx    # %sfp, _12
  149. # galsim.c:36:     particles.vy = (double *) malloc(N * sizeof(double));
  150.     movq    %rax, %rbx  # tmp239, _15
  151. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  152.     testq   %r8, %r8    # _9
  153.     sete    %al #, tmp180
  154. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  155.     testq   %rcx, %rcx  # _12
  156.     sete    %dl #, tmp182
  157. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  158.     orl %edx, %eax  # tmp182, tmp183
  159. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  160.     testq   %rbp, %rbp  # _14
  161.     sete    %dl #, tmp185
  162. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  163.     testq   %r12, %r12  # _13
  164.     sete    %sil    #, tmp187
  165. # galsim.c:38:     if (!particles.x || !particles.y || !particles.mass || !particles.vx || !particles.vy) {
  166.     orl %esi, %edx  # tmp187, tmp188
  167.     orb %dl, %al    # tmp188, tmp253
  168.     jne .L19    #,
  169.     testq   %rbx, %rbx  # _15
  170.     vmovsd  16(%rsp), %xmm9 # %sfp, _148
  171.     movl    24(%rsp), %r11d # %sfp, _150
  172.     movl    32(%rsp), %r10d # %sfp, _152
  173.     je  .L19    #,
  174. # galsim.c:43:     int inputfd = open(inputfile, O_RDONLY);
  175.     xorl    %esi, %esi  #
  176.     movq    %r15, %rdi  # inputfile,
  177.     xorl    %eax, %eax  #
  178.     movl    %r10d, 32(%rsp) # _152, %sfp
  179.     movl    %r11d, 24(%rsp) # _150, %sfp
  180.     vmovsd  %xmm9, 16(%rsp) # _148, %sfp
  181.     movq    %rcx, 8(%rsp)   # _12, %sfp
  182.     movq    %r8, (%rsp) # _9, %sfp
  183.     call    open@PLT    #
  184. # galsim.c:44:     if(inputfd == -1) {
  185.     cmpl    $-1, %eax   #, inputfd
  186.     vmovsd  16(%rsp), %xmm9 # %sfp, _148
  187.     movq    (%rsp), %r8 # %sfp, _9
  188. # galsim.c:43:     int inputfd = open(inputfile, O_RDONLY);
  189.     movl    %eax, %r15d # tmp240, inputfd
  190. # galsim.c:44:     if(inputfd == -1) {
  191.     movq    8(%rsp), %rcx   # %sfp, _12
  192.     movl    24(%rsp), %r11d # %sfp, _150
  193.     movl    32(%rsp), %r10d # %sfp, _152
  194.     je  .L28    #,
  195. # galsim.c:49:     read(inputfd, particles.x, N * sizeof(double));
  196.     movq    %r8, %rsi   # _9,
  197.     movq    %r13, %rdx  # _8,
  198.     movl    %eax, %edi  # inputfd,
  199.     movq    %r8, 16(%rsp)   # _9, %sfp
  200.     movl    %r10d, 56(%rsp) # _152, %sfp
  201.     movl    %r11d, 32(%rsp) # _150, %sfp
  202.     vmovsd  %xmm9, 24(%rsp) # _148, %sfp
  203.     movq    %rcx, (%rsp)    # _12, %sfp
  204.     call    read@PLT    #
  205. # galsim.c:50:     read(inputfd, particles.y, N * sizeof(double));
  206.     movq    %r13, %rdx  # _8,
  207.     movl    %r15d, %edi # inputfd,
  208.     movq    (%rsp), %rcx    # %sfp, _12
  209.     movq    %rcx, %rsi  # _12,
  210.     movq    %rcx, 8(%rsp)   # _12, %sfp
  211.     call    read@PLT    #
  212. # galsim.c:51:     read(inputfd, particles.mass, N * sizeof(double));
  213.     movq    %r13, %rdx  # _8,
  214.     movq    %r12, %rsi  # _13,
  215.     movl    %r15d, %edi # inputfd,
  216.     call    read@PLT    #
  217. # galsim.c:52:     read(inputfd, particles.vx, N * sizeof(double));
  218.     movq    %r13, %rdx  # _8,
  219.     movq    %rbp, %rsi  # _14,
  220.     movl    %r15d, %edi # inputfd,
  221.     call    read@PLT    #
  222. # galsim.c:53:     read(inputfd, particles.vy, N * sizeof(double));
  223.     movq    %r13, %rdx  # _8,
  224.     movq    %rbx, %rsi  # _15,
  225.     movl    %r15d, %edi # inputfd,
  226.     call    read@PLT    #
  227. # galsim.c:55:     close(inputfd);
  228.     movl    %r15d, %edi # inputfd,
  229.     call    close@PLT   #
  230. # galsim.c:57:     printf("Time for File to DS(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  231.     call    clock@PLT   #
  232. # galsim.c:57:     printf("Time for File to DS(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  233.     vxorpd  %xmm7, %xmm7, %xmm7 # tmp296
  234. # galsim.c:57:     printf("Time for File to DS(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  235.     movq    40(%rsp), %rdi  # %sfp, start
  236.     subq    %rdi, %rax  # start, tmp194
  237. # galsim.c:57:     printf("Time for File to DS(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  238.     leaq    .LC5(%rip), %rdi    #, tmp198
  239. # galsim.c:57:     printf("Time for File to DS(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  240.     vcvtsi2sdq  %rax, %xmm7, %xmm0  # tmp194, tmp296, tmp249
  241. # galsim.c:57:     printf("Time for File to DS(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  242.     vdivsd  .LC4(%rip), %xmm0, %xmm0    #, tmp195, tmp196
  243.     movl    $1, %eax    #,
  244.     call    printf@PLT  #
  245. # galsim.c:58:     start = clock();
  246.     call    clock@PLT   #
  247. # galsim.c:62:     while (instant < timesteps) {
  248.     cmpl    $0, 48(%rsp)    #, %sfp
  249.     movq    8(%rsp), %rcx   # %sfp, _12
  250. # galsim.c:58:     start = clock();
  251.     movq    %rax, (%rsp)    # tmp242, %sfp
  252. # galsim.c:62:     while (instant < timesteps) {
  253.     movq    16(%rsp), %r8   # %sfp, _9
  254.     jle .L8 #,
  255. # galsim.c:22:     const double G = 100.0 / N;
  256.     vmovsd  .LC6(%rip), %xmm6   #, tmp200
  257. # galsim.c:22:     const double G = 100.0 / N;
  258.     vxorpd  %xmm7, %xmm7, %xmm7 # tmp297
  259. # galsim.c:61:     int instant = 0, i = 0, j = 0;
  260.     xorl    %r15d, %r15d    # instant
  261.     leal    -1(%r14), %eax  #,
  262. # galsim.c:22:     const double G = 100.0 / N;
  263.     vcvtsi2sdl  %r14d, %xmm7, %xmm0 # _151, tmp297, tmp250
  264. # galsim.c:22:     const double G = 100.0 / N;
  265.     vdivsd  %xmm0, %xmm6, %xmm6 # tmp199, tmp200, G
  266.     testl   %r14d, %r14d    # _151
  267.     jle .L8 #,
  268.     vmovsd  .LC7(%rip), %xmm8   #, tmp226
  269.     vmovsd  24(%rsp), %xmm9 # %sfp, _148
  270.     movl    %r15d, %edi # instant, instant
  271.     movq    %r13, %r14  # _8, _8
  272.     movl    32(%rsp), %r11d # %sfp, _150
  273.     movl    56(%rsp), %r10d # %sfp, _152
  274.     movq    %rcx, %r15  # _12, _12
  275.     addq    $2, %rax    #, _279
  276.     vxorpd  %xmm7, %xmm7, %xmm7 # tmp228
  277.     movq    %r8, %r13   # _9, _9
  278.     movq    %r12, %rdx  # _13, _13
  279.     movl    %edi, %ecx  # instant, instant
  280.     .p2align 4
  281.     .p2align 3
  282. .L9:
  283. # galsim.c:15: int main(int ac, char *av[]) {
  284.     movl    $1, %r12d   #, ivtmp.31
  285.     .p2align 4
  286.     .p2align 3
  287. .L15:
  288. # galsim.c:65:             double dmi = deltaT * mi;
  289.     vmulsd  -8(%rdx,%r12,8), %xmm9, %xmm12  # MEM[(double *)_13 + -8B + ivtmp.31_271 * 8], _148, dmi
  290. # galsim.c:66:             double x = particles.x[i], y = particles.y[i];
  291.     vmovsd  -8(%r13,%r12,8), %xmm10 # MEM[(double *)_9 + -8B + ivtmp.31_271 * 8], x
  292. # galsim.c:66:             double x = particles.x[i], y = particles.y[i];
  293.     vmovsd  -8(%r15,%r12,8), %xmm5  # MEM[(double *)_12 + -8B + ivtmp.31_271 * 8], y
  294. # galsim.c:69:             for (j = i + 1; j < N; j++) {
  295.     cmpl    %r12d, %r10d    # ivtmp.31, _152
  296.     jle .L18    #,
  297. # galsim.c:67:             double a_x = 0.0, a_y = 0.0;
  298.     vxorpd  %xmm4, %xmm4, %xmm4 # a_y
  299. # galsim.c:69:             for (j = i + 1; j < N; j++) {
  300.     movq    %r12, %rsi  # ivtmp.31, ivtmp.18
  301. # galsim.c:67:             double a_x = 0.0, a_y = 0.0;
  302.     vmovsd  %xmm4, %xmm4, %xmm11    #, a_x
  303.     .p2align 4
  304.     .p2align 3
  305. .L14:
  306. # galsim.c:72:                 double dy = particles.y[j] - y;
  307.     vmovsd  (%r15,%rsi,8), %xmm1    # MEM[(double *)_12 + ivtmp.18_266 * 8], MEM[(double *)_12 + ivtmp.18_266 * 8]
  308. # galsim.c:71:                 double dx = particles.x[j] - x;
  309.     vmovsd  0(%r13,%rsi,8), %xmm2   # MEM[(double *)_9 + ivtmp.18_266 * 8], MEM[(double *)_9 + ivtmp.18_266 * 8]
  310. # galsim.c:70:                 double mj = particles.mass[j];
  311.     vmovsd  (%rdx,%rsi,8), %xmm3    # MEM[(double *)_13 + ivtmp.18_266 * 8], mj
  312. # galsim.c:72:                 double dy = particles.y[j] - y;
  313.     vsubsd  %xmm5, %xmm1, %xmm1 # y, MEM[(double *)_12 + ivtmp.18_266 * 8], dy
  314. # galsim.c:71:                 double dx = particles.x[j] - x;
  315.     vsubsd  %xmm10, %xmm2, %xmm2    # x, MEM[(double *)_9 + ivtmp.18_266 * 8], dx
  316. # galsim.c:73:                 double rij2 = dx * dx + dy * dy;
  317.     vmulsd  %xmm1, %xmm1, %xmm0 # dy, dy, tmp203
  318. # galsim.c:73:                 double rij2 = dx * dx + dy * dy;
  319.     vfmadd231sd %xmm2, %xmm2, %xmm0 # dx, dx, rij2
  320.     vucomisd    %xmm0, %xmm7    # rij2, tmp228
  321.     ja  .L24    #,
  322. # galsim.c:74:                 double radius = (__builtin_sqrt(rij2) + eps);
  323.     vsqrtsd %xmm0, %xmm0, %xmm0 # rij2, _34
  324. .L13:
  325. # galsim.c:74:                 double radius = (__builtin_sqrt(rij2) + eps);
  326.     vaddsd  %xmm8, %xmm0, %xmm0 # tmp226, _34, radius
  327. # galsim.c:75:                 double radius_cubed = radius * radius * radius;
  328.     vmulsd  %xmm0, %xmm0, %xmm13    # radius, radius, tmp206
  329. # galsim.c:75:                 double radius_cubed = radius * radius * radius;
  330.     vmulsd  %xmm0, %xmm13, %xmm0    # radius, tmp206, radius_cubed
  331. # galsim.c:76:                 double force = G / radius_cubed;
  332.     vdivsd  %xmm0, %xmm6, %xmm0 # radius_cubed, G, force
  333. # galsim.c:78:                 double fx = force * dx;
  334.     vmulsd  %xmm0, %xmm2, %xmm2 # force, dx, fx
  335. # galsim.c:79:                 double fy = force * dy;
  336.     vmulsd  %xmm0, %xmm1, %xmm1 # force, dy, fy
  337. # galsim.c:82:                 a_x += fx * mj;
  338.     vfmadd231sd %xmm2, %xmm3, %xmm11    # fx, mj, a_x
  339. # galsim.c:83:                 a_y += fy * mj;
  340.     vfmadd231sd %xmm1, %xmm3, %xmm4 # fy, mj, a_y
  341. # galsim.c:86:                 particles.vx[j] -= dmi * fx;
  342.     vfnmadd213sd    0(%rbp,%rsi,8), %xmm12, %xmm2   # MEM[(double *)_14 + ivtmp.18_266 * 8], dmi, _41
  343. # galsim.c:87:                 particles.vy[j] -= dmi * fy;
  344.     vfnmadd213sd    (%rbx,%rsi,8), %xmm12, %xmm1    # MEM[(double *)_15 + ivtmp.18_266 * 8], dmi, _45
  345. # galsim.c:86:                 particles.vx[j] -= dmi * fx;
  346.     vmovsd  %xmm2, 0(%rbp,%rsi,8)   # _41, MEM[(double *)_14 + ivtmp.18_266 * 8]
  347. # galsim.c:87:                 particles.vy[j] -= dmi * fy;
  348.     vmovsd  %xmm1, (%rbx,%rsi,8)    # _45, MEM[(double *)_15 + ivtmp.18_266 * 8]
  349. # galsim.c:69:             for (j = i + 1; j < N; j++) {
  350.     incq    %rsi    # ivtmp.18
  351.     cmpl    %esi, %r10d # ivtmp.18, _152
  352.     jg  .L14    #,
  353. .L10:
  354. # galsim.c:91:             particles.vx[i] += deltaT * a_x;
  355.     vfmadd213sd -8(%rbp,%r12,8), %xmm9, %xmm11  # MEM[(double *)_14 + -8B + ivtmp.31_271 * 8], _148, _49
  356. # galsim.c:92:             particles.vy[i] += deltaT * a_y;
  357.     vfmadd213sd -8(%rbx,%r12,8), %xmm9, %xmm4   # MEM[(double *)_15 + -8B + ivtmp.31_271 * 8], _148, _53
  358. # galsim.c:91:             particles.vx[i] += deltaT * a_x;
  359.     vmovsd  %xmm11, -8(%rbp,%r12,8) # _49, MEM[(double *)_14 + -8B + ivtmp.31_271 * 8]
  360. # galsim.c:93:             particles.x[i] += deltaT * particles.vx[i];
  361.     vfmadd132sd %xmm9, %xmm10, %xmm11   # _148, x, _55
  362. # galsim.c:92:             particles.vy[i] += deltaT * a_y;
  363.     vmovsd  %xmm4, -8(%rbx,%r12,8)  # _53, MEM[(double *)_15 + -8B + ivtmp.31_271 * 8]
  364. # galsim.c:94:             particles.y[i] += deltaT * particles.vy[i];
  365.     vfmadd132sd %xmm9, %xmm5, %xmm4 # _148, y, _57
  366. # galsim.c:93:             particles.x[i] += deltaT * particles.vx[i];
  367.     vmovsd  %xmm11, -8(%r13,%r12,8) # _55, MEM[(double *)_9 + -8B + ivtmp.31_271 * 8]
  368. # galsim.c:94:             particles.y[i] += deltaT * particles.vy[i];
  369.     vmovsd  %xmm4, -8(%r15,%r12,8)  # _57, MEM[(double *)_12 + -8B + ivtmp.31_271 * 8]
  370. # galsim.c:63:         for (i = 0; i < N; i++) {
  371.     incq    %r12    # ivtmp.31
  372.     cmpq    %rax, %r12  # _279, ivtmp.31
  373.     jne .L15    #,
  374. # galsim.c:96:         instant++;
  375.     incl    %ecx    # instant
  376. # galsim.c:62:     while (instant < timesteps) {
  377.     cmpl    %r11d, %ecx # _150, instant
  378.     jne .L9 #,
  379.     movq    %r13, %r8   # _9, _9
  380.     movq    %r15, %rcx  # _12, _12
  381.     movq    %r14, %r13  # _8, _8
  382.     movq    %rdx, %r12  # _13, _13
  383. .L8:
  384.     movq    %rcx, 16(%rsp)  # _12, %sfp
  385.     movq    %r8, 8(%rsp)    # _9, %sfp
  386. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  387.     call    clock@PLT   #
  388. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  389.     movq    (%rsp), %rdi    # %sfp, start
  390. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  391.     vxorpd  %xmm7, %xmm7, %xmm7 # tmp299
  392. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  393.     subq    %rdi, %rax  # start, tmp210
  394. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  395.     leaq    .LC8(%rip), %rdi    #, tmp214
  396. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  397.     vcvtsi2sdq  %rax, %xmm7, %xmm0  # tmp210, tmp299, tmp251
  398. # galsim.c:99:     printf("Time for Processing(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  399.     vdivsd  .LC4(%rip), %xmm0, %xmm0    #, tmp211, tmp212
  400.     movl    $1, %eax    #,
  401.     call    printf@PLT  #
  402. # galsim.c:100:     start = clock();
  403.     call    clock@PLT   #
  404. # galsim.c:103:     int outputfd = open("result.gal", O_RDWR | O_CREAT, 0666);
  405.     movl    $438, %edx  #,
  406.     movl    $66, %esi   #,
  407. # galsim.c:100:     start = clock();
  408.     movq    %rax, %r15  # tmp245, start
  409. # galsim.c:103:     int outputfd = open("result.gal", O_RDWR | O_CREAT, 0666);
  410.     leaq    .LC9(%rip), %rdi    #, tmp215
  411.     xorl    %eax, %eax  #
  412.     call    open@PLT    #
  413. # galsim.c:104:     if(outputfd == -1) {
  414.     movq    8(%rsp), %r8    # %sfp, _9
  415.     cmpl    $-1, %eax   #, outputfd
  416.     movq    16(%rsp), %rcx  # %sfp, _12
  417. # galsim.c:103:     int outputfd = open("result.gal", O_RDWR | O_CREAT, 0666);
  418.     movl    %eax, %r14d # tmp246, outputfd
  419. # galsim.c:104:     if(outputfd == -1) {
  420.     je  .L29    #,
  421. # galsim.c:109:     write(outputfd, particles.x, N * sizeof(double));
  422.     movq    %r8, %rsi   # _9,
  423.     movq    %r13, %rdx  # _8,
  424.     movl    %eax, %edi  # outputfd,
  425.     movq    %rcx, (%rsp)    # _12, %sfp
  426.     movq    %r8, 8(%rsp)    # _9, %sfp
  427.     call    write@PLT   #
  428. # galsim.c:110:     write(outputfd, particles.y, N * sizeof(double));
  429.     movq    %r13, %rdx  # _8,
  430.     movl    %r14d, %edi # outputfd,
  431.     movq    (%rsp), %rsi    # %sfp,
  432.     call    write@PLT   #
  433. # galsim.c:111:     write(outputfd, particles.mass, N * sizeof(double));
  434.     movq    %r13, %rdx  # _8,
  435.     movq    %r12, %rsi  # _13,
  436.     movl    %r14d, %edi # outputfd,
  437.     call    write@PLT   #
  438. # galsim.c:112:     write(outputfd, particles.vx, N * sizeof(double));
  439.     movq    %r13, %rdx  # _8,
  440.     movq    %rbp, %rsi  # _14,
  441.     movl    %r14d, %edi # outputfd,
  442.     call    write@PLT   #
  443. # galsim.c:113:     write(outputfd, particles.vy, N * sizeof(double));
  444.     movq    %r13, %rdx  # _8,
  445.     movq    %rbx, %rsi  # _15,
  446.     movl    %r14d, %edi # outputfd,
  447.     call    write@PLT   #
  448. # galsim.c:115:     close(outputfd);
  449.     movl    %r14d, %edi # outputfd,
  450.     call    close@PLT   #
  451. # galsim.c:117:     free(particles.x);
  452.     movq    8(%rsp), %rdi   # %sfp,
  453.     call    free@PLT    #
  454. # galsim.c:118:     free(particles.y);
  455.     movq    (%rsp), %rdi    # %sfp,
  456.     call    free@PLT    #
  457. # galsim.c:119:     free(particles.mass);
  458.     movq    %r12, %rdi  # _13,
  459.     call    free@PLT    #
  460. # galsim.c:120:     free(particles.vx);
  461.     movq    %rbp, %rdi  # _14,
  462.     call    free@PLT    #
  463. # galsim.c:121:     free(particles.vy);
  464.     movq    %rbx, %rdi  # _15,
  465.     call    free@PLT    #
  466. # galsim.c:123:     printf("Time for DS to File(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  467.     call    clock@PLT   #
  468. # galsim.c:123:     printf("Time for DS to File(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  469.     vxorpd  %xmm7, %xmm7, %xmm7 # tmp300
  470. # galsim.c:123:     printf("Time for DS to File(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  471.     leaq    .LC11(%rip), %rdi   #, tmp221
  472. # galsim.c:123:     printf("Time for DS to File(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  473.     subq    %r15, %rax  # start, tmp217
  474. # galsim.c:123:     printf("Time for DS to File(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  475.     vcvtsi2sdq  %rax, %xmm7, %xmm0  # tmp217, tmp300, tmp252
  476. # galsim.c:123:     printf("Time for DS to File(s): %lf\n", (double) (clock() - start) / CLOCKS_PER_SEC);
  477.     vdivsd  .LC4(%rip), %xmm0, %xmm0    #, tmp218, tmp219
  478.     movl    $1, %eax    #,
  479.     call    printf@PLT  #
  480. # galsim.c:125:     return 0;
  481.     xorl    %eax, %eax  # <retval>
  482.     jmp .L1 #
  483.     .p2align 4
  484.     .p2align 3
  485. .L18:
  486. # galsim.c:67:             double a_x = 0.0, a_y = 0.0;
  487.     vxorpd  %xmm4, %xmm4, %xmm4 # a_y
  488. # galsim.c:67:             double a_x = 0.0, a_y = 0.0;
  489.     vmovsd  %xmm4, %xmm4, %xmm11    #, a_x
  490.     jmp .L10    #
  491. .L28:
  492. # galsim.c:45:         printf("File open error!\n");
  493.     leaq    .LC3(%rip), %rdi    #, tmp193
  494.     call    puts@PLT    #
  495. # galsim.c:46:         return 1;
  496.     jmp .L3 #
  497. .L29:
  498. # galsim.c:105:         printf("File create error!\n");
  499.     leaq    .LC10(%rip), %rdi   #, tmp216
  500.     call    puts@PLT    #
  501. # galsim.c:106:         return 1;
  502.     jmp .L3 #
  503. .L24:
  504.     movq    %rax, 120(%rsp) # _279, %sfp
  505.     movq    %rsi, 112(%rsp) # ivtmp.18, %sfp
  506.     movl    %r10d, 108(%rsp)    # _152, %sfp
  507.     movl    %r11d, 104(%rsp)    # _150, %sfp
  508.     vmovsd  %xmm4, 96(%rsp) # a_y, %sfp
  509.     vmovsd  %xmm11, 88(%rsp)    # a_x, %sfp
  510.     vmovsd  %xmm12, 80(%rsp)    # dmi, %sfp
  511.     movl    %ecx, 76(%rsp)  # instant, %sfp
  512.     vmovsd  %xmm6, 64(%rsp) # G, %sfp
  513.     movq    %rdx, 56(%rsp)  # _13, %sfp
  514.     vmovsd  %xmm9, 48(%rsp) # _148, %sfp
  515.     vmovsd  %xmm1, 40(%rsp) # dy, %sfp
  516.     vmovsd  %xmm2, 32(%rsp) # dx, %sfp
  517.     vmovsd  %xmm3, 24(%rsp) # mj, %sfp
  518.     vmovsd  %xmm5, 16(%rsp) # y, %sfp
  519.     vmovsd  %xmm10, 8(%rsp) # x, %sfp
  520. # galsim.c:74:                 double radius = (__builtin_sqrt(rij2) + eps);
  521.     call    sqrt@PLT    #
  522.     vxorpd  %xmm7, %xmm7, %xmm7 # tmp228
  523.     movq    .LC7(%rip), %rdi    #, tmp343
  524.     vmovsd  96(%rsp), %xmm4 # %sfp, a_y
  525.     vmovsd  88(%rsp), %xmm11    # %sfp, a_x
  526.     vmovsd  80(%rsp), %xmm12    # %sfp, dmi
  527.     vmovsd  64(%rsp), %xmm6 # %sfp, G
  528.     vmovsd  48(%rsp), %xmm9 # %sfp, _148
  529.     vmovsd  40(%rsp), %xmm1 # %sfp, dy
  530.     vmovsd  32(%rsp), %xmm2 # %sfp, dx
  531.     vmovsd  24(%rsp), %xmm3 # %sfp, mj
  532.     vmovsd  16(%rsp), %xmm5 # %sfp, y
  533.     vmovq   %rdi, %xmm8 # tmp343, tmp226
  534.     vmovsd  8(%rsp), %xmm10 # %sfp, x
  535.     movq    120(%rsp), %rax # %sfp, _279
  536.     movq    112(%rsp), %rsi # %sfp, ivtmp.18
  537.     movl    108(%rsp), %r10d    # %sfp, _152
  538.     movl    104(%rsp), %r11d    # %sfp, _150
  539.     movl    76(%rsp), %ecx  # %sfp, instant
  540.     movq    56(%rsp), %rdx  # %sfp, _13
  541.     jmp .L13    #
  542. .L19:
  543. # galsim.c:39:         printf("Memory allocation error!\n");
  544.     leaq    .LC2(%rip), %rdi    #, tmp192
  545.     call    puts@PLT    #
  546. # galsim.c:40:         return 1;
  547.     jmp .L3 #
  548.     .cfi_endproc
  549. .LFE22:
  550.     .size   main, .-main
  551.     .section    .rodata.cst8,"aM",@progbits,8
  552.     .align 8
  553. .LC4:
  554.     .long   0
  555.     .long   1093567616
  556.     .align 8
  557. .LC6:
  558.     .long   0
  559.     .long   1079574528
  560.     .align 8
  561. .LC7:
  562.     .long   -755914244
  563.     .long   1062232653
  564.     .ident  "GCC: (Debian 12.2.0-14) 12.2.0"
  565.     .section    .note.GNU-stack,"",@progbits
  566.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement