Advertisement
Guest User

Untitled

a guest
Nov 23rd, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .section    __TEXT,__text,regular,pure_instructions
  2.     .build_version macos, 10, 14
  3.     .globl  _payload                ## -- Begin function payload
  4.     .p2align    4, 0x90
  5. _payload:                               ## @payload
  6.     .cfi_startproc
  7. ## %bb.0:
  8.     pushq   %rbp
  9.     .cfi_def_cfa_offset 16
  10.     .cfi_offset %rbp, -16
  11.     movq    %rsp, %rbp
  12.     .cfi_def_cfa_register %rbp
  13.     andq    $-32, %rsp
  14.     subq    $256, %rsp              ## imm = 0x100
  15.     movabsq $4621819117588971520, %rax ## imm = 0x4024000000000000
  16.     movq    %rax, 152(%rsp)
  17.     movabsq $4652007308841189376, %rax ## imm = 0x408F400000000000
  18.     movq    %rax, 144(%rsp)
  19.     movabsq $4666723172467343360, %rax ## imm = 0x40C3880000000000
  20.     movq    %rax, 136(%rsp)
  21.     movabsq $4672076419705077760, %rax ## imm = 0x40D68CC000000000
  22.     movq    %rax, 128(%rsp)
  23.     vmovsd  152(%rsp), %xmm0        ## xmm0 = mem[0],zero
  24.     vmovsd  144(%rsp), %xmm1        ## xmm1 = mem[0],zero
  25.     vunpcklpd   %xmm0, %xmm1, %xmm0 ## xmm0 = xmm1[0],xmm0[0]
  26.     vmovsd  136(%rsp), %xmm1        ## xmm1 = mem[0],zero
  27.     vmovsd  128(%rsp), %xmm2        ## xmm2 = mem[0],zero
  28.     vunpcklpd   %xmm1, %xmm2, %xmm1 ## xmm1 = xmm2[0],xmm1[0]
  29.                                        ## implicit-def: %ymm3
  30.     vmovaps %xmm1, %xmm3
  31.     vinsertf128 $1, %xmm0, %ymm3, %ymm3
  32.     vmovapd %ymm3, 96(%rsp)
  33.     vmovapd 96(%rsp), %ymm3
  34.     vmovapd %ymm3, 64(%rsp)
  35.     movabsq $4636807660098813952, %rcx ## imm = 0x4059400000000000
  36.     movq    %rcx, 232(%rsp)
  37.     movabsq $4667261933164953600, %rcx ## imm = 0x40C5720000000000
  38.     movq    %rcx, 224(%rsp)
  39.     movq    %rax, 216(%rsp)
  40.     movabsq $4642542712749293568, %rax ## imm = 0x406DA00000000000
  41.     movq    %rax, 208(%rsp)
  42.     vmovsd  232(%rsp), %xmm0        ## xmm0 = mem[0],zero
  43.     vmovsd  224(%rsp), %xmm1        ## xmm1 = mem[0],zero
  44.     vunpcklpd   %xmm0, %xmm1, %xmm0 ## xmm0 = xmm1[0],xmm0[0]
  45.     vmovsd  216(%rsp), %xmm1        ## xmm1 = mem[0],zero
  46.     vmovsd  208(%rsp), %xmm2        ## xmm2 = mem[0],zero
  47.     vunpcklpd   %xmm1, %xmm2, %xmm1 ## xmm1 = xmm2[0],xmm1[0]
  48.                                        ## implicit-def: %ymm3
  49.     vmovaps %xmm1, %xmm3
  50.     vinsertf128 $1, %xmm0, %ymm3, %ymm3
  51.     vmovapd %ymm3, 160(%rsp)
  52.     vmovapd 160(%rsp), %ymm3
  53.     vmovapd %ymm3, 32(%rsp)
  54.     movl    $0, 28(%rsp)
  55. LBB0_1:                                 ## =>This Inner Loop Header: Depth=1
  56.     cmpl    $100000, 28(%rsp)       ## imm = 0x186A0
  57.     jge LBB0_4
  58. ## %bb.2:                               ##   in Loop: Header=BB0_1 Depth=1
  59.     ## InlineAsm Start
  60.     vdivpd  %ymm0, %ymm1, %ymm7
  61.     vdivpd  %ymm0, %ymm1, %ymm6
  62.     vdivpd  %ymm0, %ymm1, %ymm5
  63.     vdivpd  %ymm0, %ymm1, %ymm4
  64.     vdivpd  %ymm0, %ymm1, %ymm3
  65.     vdivpd  %ymm0, %ymm1, %ymm2
  66.     vdivpd  %ymm0, %ymm1, %ymm7
  67.     vdivpd  %ymm0, %ymm1, %ymm6
  68.     vdivpd  %ymm0, %ymm1, %ymm5
  69.     vdivpd  %ymm0, %ymm1, %ymm4
  70.     vdivpd  %ymm0, %ymm1, %ymm3
  71.     vdivpd  %ymm0, %ymm1, %ymm2
  72.     vdivpd  %ymm0, %ymm1, %ymm7
  73.     vdivpd  %ymm0, %ymm1, %ymm6
  74.     vdivpd  %ymm0, %ymm1, %ymm5
  75.     vdivpd  %ymm0, %ymm1, %ymm4
  76.     vdivpd  %ymm0, %ymm1, %ymm3
  77.     vdivpd  %ymm0, %ymm1, %ymm2
  78.     vdivpd  %ymm0, %ymm1, %ymm7
  79.     vdivpd  %ymm0, %ymm1, %ymm6
  80.     vdivpd  %ymm0, %ymm1, %ymm5
  81.     vdivpd  %ymm0, %ymm1, %ymm4
  82.     vdivpd  %ymm0, %ymm1, %ymm3
  83.     vdivpd  %ymm0, %ymm1, %ymm2
  84.     vdivpd  %ymm0, %ymm1, %ymm7
  85.     vdivpd  %ymm0, %ymm1, %ymm6
  86.     vdivpd  %ymm0, %ymm1, %ymm5
  87.     vdivpd  %ymm0, %ymm1, %ymm4
  88.     vdivpd  %ymm0, %ymm1, %ymm3
  89.     vdivpd  %ymm0, %ymm1, %ymm2
  90.     vdivpd  %ymm0, %ymm1, %ymm7
  91.     vdivpd  %ymm0, %ymm1, %ymm6
  92.     vdivpd  %ymm0, %ymm1, %ymm5
  93.     vdivpd  %ymm0, %ymm1, %ymm4
  94.     vdivpd  %ymm0, %ymm1, %ymm3
  95.     vdivpd  %ymm0, %ymm1, %ymm2
  96.     vdivpd  %ymm0, %ymm1, %ymm7
  97.     vdivpd  %ymm0, %ymm1, %ymm6
  98.     vdivpd  %ymm0, %ymm1, %ymm5
  99.     vdivpd  %ymm0, %ymm1, %ymm4
  100.     vdivpd  %ymm0, %ymm1, %ymm3
  101.     vdivpd  %ymm0, %ymm1, %ymm2
  102.     vdivpd  %ymm0, %ymm1, %ymm7
  103.     vdivpd  %ymm0, %ymm1, %ymm6
  104.     vdivpd  %ymm0, %ymm1, %ymm5
  105.     vdivpd  %ymm0, %ymm1, %ymm4
  106.     vdivpd  %ymm0, %ymm1, %ymm3
  107.     vdivpd  %ymm0, %ymm1, %ymm2
  108.     ## InlineAsm End
  109. ## %bb.3:                               ##   in Loop: Header=BB0_1 Depth=1
  110.     movl    28(%rsp), %eax
  111.     addl    $1, %eax
  112.     movl    %eax, 28(%rsp)
  113.     jmp LBB0_1
  114. LBB0_4:
  115.     movq    %rbp, %rsp
  116.     popq    %rbp
  117.     vzeroupper
  118.     retq
  119.     .cfi_endproc
  120.                                        ## -- End function
  121.     .globl  _payload2               ## -- Begin function payload2
  122.     .p2align    4, 0x90
  123. _payload2:                              ## @payload2
  124.     .cfi_startproc
  125. ## %bb.0:
  126.     pushq   %rbp
  127.     .cfi_def_cfa_offset 16
  128.     .cfi_offset %rbp, -16
  129.     movq    %rsp, %rbp
  130.     .cfi_def_cfa_register %rbp
  131.     andq    $-32, %rsp
  132.     subq    $256, %rsp              ## imm = 0x100
  133.     movabsq $4621819117588971520, %rax ## imm = 0x4024000000000000
  134.     movq    %rax, 152(%rsp)
  135.     movabsq $4652007308841189376, %rax ## imm = 0x408F400000000000
  136.     movq    %rax, 144(%rsp)
  137.     movabsq $4666723172467343360, %rax ## imm = 0x40C3880000000000
  138.     movq    %rax, 136(%rsp)
  139.     movabsq $4672076419705077760, %rax ## imm = 0x40D68CC000000000
  140.     movq    %rax, 128(%rsp)
  141.     vmovsd  152(%rsp), %xmm0        ## xmm0 = mem[0],zero
  142.     vmovsd  144(%rsp), %xmm1        ## xmm1 = mem[0],zero
  143.     vunpcklpd   %xmm0, %xmm1, %xmm0 ## xmm0 = xmm1[0],xmm0[0]
  144.     vmovsd  136(%rsp), %xmm1        ## xmm1 = mem[0],zero
  145.     vmovsd  128(%rsp), %xmm2        ## xmm2 = mem[0],zero
  146.     vunpcklpd   %xmm1, %xmm2, %xmm1 ## xmm1 = xmm2[0],xmm1[0]
  147.                                        ## implicit-def: %ymm3
  148.     vmovaps %xmm1, %xmm3
  149.     vinsertf128 $1, %xmm0, %ymm3, %ymm3
  150.     vmovapd %ymm3, 96(%rsp)
  151.     vmovapd 96(%rsp), %ymm3
  152.     vmovapd %ymm3, 64(%rsp)
  153.     movabsq $4636807660098813952, %rcx ## imm = 0x4059400000000000
  154.     movq    %rcx, 232(%rsp)
  155.     movabsq $4667261933164953600, %rcx ## imm = 0x40C5720000000000
  156.     movq    %rcx, 224(%rsp)
  157.     movq    %rax, 216(%rsp)
  158.     movabsq $4642542712749293568, %rax ## imm = 0x406DA00000000000
  159.     movq    %rax, 208(%rsp)
  160.     vmovsd  232(%rsp), %xmm0        ## xmm0 = mem[0],zero
  161.     vmovsd  224(%rsp), %xmm1        ## xmm1 = mem[0],zero
  162.     vunpcklpd   %xmm0, %xmm1, %xmm0 ## xmm0 = xmm1[0],xmm0[0]
  163.     vmovsd  216(%rsp), %xmm1        ## xmm1 = mem[0],zero
  164.     vmovsd  208(%rsp), %xmm2        ## xmm2 = mem[0],zero
  165.     vunpcklpd   %xmm1, %xmm2, %xmm1 ## xmm1 = xmm2[0],xmm1[0]
  166.                                        ## implicit-def: %ymm3
  167.     vmovaps %xmm1, %xmm3
  168.     vinsertf128 $1, %xmm0, %ymm3, %ymm3
  169.     vmovapd %ymm3, 160(%rsp)
  170.     vmovapd 160(%rsp), %ymm3
  171.     vmovapd %ymm3, 32(%rsp)
  172.     movl    $0, 28(%rsp)
  173. LBB1_1:                                 ## =>This Inner Loop Header: Depth=1
  174.     cmpl    $100000, 28(%rsp)       ## imm = 0x186A0
  175.     jge LBB1_4
  176. ## %bb.2:                               ##   in Loop: Header=BB1_1 Depth=1
  177.     ## InlineAsm Start
  178.     vdivpd  %ymm0, %ymm1, %ymm0
  179.     vdivpd  %ymm0, %ymm1, %ymm0
  180.     vdivpd  %ymm0, %ymm1, %ymm0
  181.     vdivpd  %ymm0, %ymm1, %ymm0
  182.     vdivpd  %ymm0, %ymm1, %ymm0
  183.     vdivpd  %ymm0, %ymm1, %ymm0
  184.     vdivpd  %ymm0, %ymm1, %ymm0
  185.     vdivpd  %ymm0, %ymm1, %ymm0
  186.     vdivpd  %ymm0, %ymm1, %ymm0
  187.     vdivpd  %ymm0, %ymm1, %ymm0
  188.     vdivpd  %ymm0, %ymm1, %ymm0
  189.     vdivpd  %ymm0, %ymm1, %ymm0
  190.     vdivpd  %ymm0, %ymm1, %ymm0
  191.     vdivpd  %ymm0, %ymm1, %ymm0
  192.     vdivpd  %ymm0, %ymm1, %ymm0
  193.     vdivpd  %ymm0, %ymm1, %ymm0
  194.     vdivpd  %ymm0, %ymm1, %ymm0
  195.     vdivpd  %ymm0, %ymm1, %ymm0
  196.     vdivpd  %ymm0, %ymm1, %ymm0
  197.     vdivpd  %ymm0, %ymm1, %ymm0
  198.     vdivpd  %ymm0, %ymm1, %ymm0
  199.     vdivpd  %ymm0, %ymm1, %ymm0
  200.     vdivpd  %ymm0, %ymm1, %ymm0
  201.     vdivpd  %ymm0, %ymm1, %ymm0
  202.     vdivpd  %ymm0, %ymm1, %ymm0
  203.     vdivpd  %ymm0, %ymm1, %ymm0
  204.     vdivpd  %ymm0, %ymm1, %ymm0
  205.     vdivpd  %ymm0, %ymm1, %ymm0
  206.     vdivpd  %ymm0, %ymm1, %ymm0
  207.     vdivpd  %ymm0, %ymm1, %ymm0
  208.     vdivpd  %ymm0, %ymm1, %ymm0
  209.     vdivpd  %ymm0, %ymm1, %ymm0
  210.     vdivpd  %ymm0, %ymm1, %ymm0
  211.     vdivpd  %ymm0, %ymm1, %ymm0
  212.     vdivpd  %ymm0, %ymm1, %ymm0
  213.     vdivpd  %ymm0, %ymm1, %ymm0
  214.     vdivpd  %ymm0, %ymm1, %ymm0
  215.     vdivpd  %ymm0, %ymm1, %ymm0
  216.     vdivpd  %ymm0, %ymm1, %ymm0
  217.     vdivpd  %ymm0, %ymm1, %ymm0
  218.     vdivpd  %ymm0, %ymm1, %ymm0
  219.     vdivpd  %ymm0, %ymm1, %ymm0
  220.     vdivpd  %ymm0, %ymm1, %ymm0
  221.     vdivpd  %ymm0, %ymm1, %ymm0
  222.     vdivpd  %ymm0, %ymm1, %ymm0
  223.     vdivpd  %ymm0, %ymm1, %ymm0
  224.     vdivpd  %ymm0, %ymm1, %ymm0
  225.     vdivpd  %ymm0, %ymm1, %ymm0
  226.     vdivpd  %ymm0, %ymm1, %ymm0
  227.     vdivpd  %ymm0, %ymm1, %ymm0
  228.  
  229.     ## InlineAsm End
  230. ## %bb.3:                               ##   in Loop: Header=BB1_1 Depth=1
  231.     movl    28(%rsp), %eax
  232.     addl    $1, %eax
  233.     movl    %eax, 28(%rsp)
  234.     jmp LBB1_1
  235. LBB1_4:
  236.     movq    %rbp, %rsp
  237.     popq    %rbp
  238.     vzeroupper
  239.     retq
  240.     .cfi_endproc
  241.                                        ## -- End function
  242.     .section    __TEXT,__literal8,8byte_literals
  243.     .p2align    3               ## -- Begin function main
  244. LCPI2_0:
  245.     .quad   4707126720094797824     ## double 5.0E+6
  246. LCPI2_3:
  247.     .quad   4706911971729997824     ## double 4.8E+6
  248.     .section    __TEXT,__literal16,16byte_literals
  249.     .p2align    4
  250. LCPI2_1:
  251.     .long   1127219200              ## 0x43300000
  252.     .long   1160773632              ## 0x45300000
  253.     .long   0                       ## 0x0
  254.     .long   0                       ## 0x0
  255. LCPI2_2:
  256.     .quad   4841369599423283200     ## double 4503599627370496
  257.     .quad   4985484787499139072     ## double 1.9342813113834067E+25
  258.     .section    __TEXT,__text,regular,pure_instructions
  259.     .globl  _main
  260.     .p2align    4, 0x90
  261. _main:                                  ## @main
  262.     .cfi_startproc
  263. ## %bb.0:
  264.     pushq   %rbp
  265.     .cfi_def_cfa_offset 16
  266.     .cfi_offset %rbp, -16
  267.     movq    %rsp, %rbp
  268.     .cfi_def_cfa_register %rbp
  269.     subq    $112, %rsp
  270.     movl    $0, -4(%rbp)
  271.     movl    %edi, -8(%rbp)
  272.     movq    %rsi, -16(%rbp)
  273.     movl    $0, -20(%rbp)
  274. LBB2_1:                                 ## =>This Inner Loop Header: Depth=1
  275.     cmpl    $200, -20(%rbp)
  276.     jge LBB2_4
  277. ## %bb.2:                               ##   in Loop: Header=BB2_1 Depth=1
  278.     callq   _payload
  279. ## %bb.3:                               ##   in Loop: Header=BB2_1 Depth=1
  280.     movl    -20(%rbp), %eax
  281.     addl    $1, %eax
  282.     movl    %eax, -20(%rbp)
  283.     jmp LBB2_1
  284. LBB2_4:
  285.     leaq    L_.str.1(%rip), %rdi
  286.     vmovsd  LCPI2_0(%rip), %xmm0    ## xmm0 = mem[0],zero
  287.     movq    %rdi, -48(%rbp)         ## 8-byte Spill
  288.     vmovsd  %xmm0, -56(%rbp)        ## 8-byte Spill
  289.     callq   _rdtsc
  290.     movq    %rax, -32(%rbp)
  291.     callq   _payload
  292.     callq   _rdtsc
  293.     movq    %rax, -40(%rbp)
  294.     movq    -40(%rbp), %rax
  295.     movq    -32(%rbp), %rdi
  296.     subq    %rdi, %rax
  297.     vmovq   %rax, %xmm0
  298.     vmovdqa LCPI2_1(%rip), %xmm1    ## xmm1 = [1127219200,1160773632,0,0]
  299.     vpunpckldq  %xmm1, %xmm0, %xmm0 ## xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
  300.     vmovapd LCPI2_2(%rip), %xmm2    ## xmm2 = [4.503600e+15,1.934281e+25]
  301.     vsubpd  %xmm2, %xmm0, %xmm0
  302.     vhaddpd %xmm0, %xmm0, %xmm0
  303.     vmovsd  LCPI2_3(%rip), %xmm3    ## xmm3 = mem[0],zero
  304.     vdivsd  %xmm3, %xmm0, %xmm0
  305.     leaq    L_.str(%rip), %rdi
  306.     movb    $1, %cl
  307.     movq    %rax, %rsi
  308.     movb    %cl, %al
  309.     vmovaps %xmm2, -80(%rbp)        ## 16-byte Spill
  310.     vmovaps %xmm1, -96(%rbp)        ## 16-byte Spill
  311.     callq   _printf
  312.     movl    %eax, -100(%rbp)        ## 4-byte Spill
  313.     callq   _payload2
  314.     callq   _rdtsc
  315.     movq    %rax, -32(%rbp)
  316.     callq   _payload2
  317.     callq   _rdtsc
  318.     movq    %rax, -40(%rbp)
  319.     movq    -40(%rbp), %rax
  320.     movq    -32(%rbp), %rsi
  321.     subq    %rsi, %rax
  322.     vmovq   %rax, %xmm0
  323.     vmovaps -96(%rbp), %xmm1        ## 16-byte Reload
  324.     vpunpckldq  %xmm1, %xmm0, %xmm0 ## xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
  325.     vmovaps -80(%rbp), %xmm2        ## 16-byte Reload
  326.     vsubpd  %xmm2, %xmm0, %xmm0
  327.     vhaddpd %xmm0, %xmm0, %xmm0
  328.     vmovsd  -56(%rbp), %xmm3        ## 8-byte Reload
  329.                                        ## xmm3 = mem[0],zero
  330.     vdivsd  %xmm3, %xmm0, %xmm0
  331.     movq    -48(%rbp), %rdi         ## 8-byte Reload
  332.     movq    %rax, %rsi
  333.     movb    $1, %al
  334.     callq   _printf
  335.     xorl    %edx, %edx
  336.     movl    %eax, -104(%rbp)        ## 4-byte Spill
  337.     movl    %edx, %eax
  338.     addq    $112, %rsp
  339.     popq    %rbp
  340.     retq
  341.     .cfi_endproc
  342.                                        ## -- End function
  343.     .p2align    4, 0x90         ## -- Begin function rdtsc
  344. _rdtsc:                                 ## @rdtsc
  345.     .cfi_startproc
  346. ## %bb.0:
  347.     pushq   %rbp
  348.     .cfi_def_cfa_offset 16
  349.     .cfi_offset %rbp, -16
  350.     movq    %rsp, %rbp
  351.     .cfi_def_cfa_register %rbp
  352.     ## InlineAsm Start
  353.     rdtsc
  354.     ## InlineAsm End
  355.     movl    %eax, -8(%rbp)
  356.     movl    %edx, -4(%rbp)
  357.     movl    -8(%rbp), %eax
  358.     movl    %eax, %ecx
  359.     movl    -4(%rbp), %eax
  360.     movl    %eax, %esi
  361.     shlq    $32, %rsi
  362.     orq %rsi, %rcx
  363.     movq    %rcx, %rax
  364.     popq    %rbp
  365.     retq
  366.     .cfi_endproc
  367.                                        ## -- End function
  368.     .section    __TEXT,__cstring,cstring_literals
  369. L_.str:                                 ## @.str
  370.     .asciz  "ticks: %llu\ntpc: %lf\n"
  371.  
  372. L_.str.1:                               ## @.str.1
  373.     .asciz  "ticks2: %llu\ntpc2: %lf\n"
  374.  
  375.  
  376. .subsections_via_symbols
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement