Advertisement
Guest User

Untitled

a guest
Aug 19th, 2010
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .globl _initPerlinNoise
  2.     .def    _initPerlinNoise;   .scl    2;  .type   32; .endef
  3. _initPerlinNoise:
  4.     pushl   %ebx
  5.     movl    $1024, %ecx
  6.     subl    $1048, %esp
  7.     movl    %ecx, 8(%esp)
  8.     leal    16(%esp), %eax
  9.     movl    $LC3, %edx
  10.     movl    %edx, 4(%esp)
  11.     movl    $_perm, %ebx
  12.     movl    %eax, (%esp)
  13.     call    _memcpy
  14.     xorl    %ecx, %ecx
  15.     .p2align 4,,15
  16. L242:
  17.     movl    16(%esp,%ecx,4), %eax
  18.     movl    %eax, _perm(,%ecx,4)
  19.     movl    %eax, 1024(%ebx,%ecx,4)
  20.     leal    1(%ecx), %eax
  21.     movl    16(%esp,%eax,4), %edx
  22.     movl    %edx, _perm(,%eax,4)
  23.     movl    %edx, 1024(%ebx,%eax,4)
  24.     leal    2(%ecx), %eax
  25.     movl    16(%esp,%eax,4), %edx
  26.     movl    %edx, _perm(,%eax,4)
  27.     movl    %edx, 1024(%ebx,%eax,4)
  28.     leal    3(%ecx), %eax
  29.     movl    16(%esp,%eax,4), %edx
  30.     movl    %edx, _perm(,%eax,4)
  31.     movl    %edx, 1024(%ebx,%eax,4)
  32.     leal    4(%ecx), %eax
  33.     movl    16(%esp,%eax,4), %edx
  34.     movl    %edx, _perm(,%eax,4)
  35.     movl    %edx, 1024(%ebx,%eax,4)
  36.     leal    5(%ecx), %eax
  37.     movl    16(%esp,%eax,4), %edx
  38.     movl    %edx, _perm(,%eax,4)
  39.     movl    %edx, 1024(%ebx,%eax,4)
  40.     leal    6(%ecx), %eax
  41.     movl    16(%esp,%eax,4), %edx
  42.     movl    %edx, _perm(,%eax,4)
  43.     movl    %edx, 1024(%ebx,%eax,4)
  44.     leal    7(%ecx), %eax
  45.     movl    16(%esp,%eax,4), %edx
  46.     addl    $8, %ecx
  47.     cmpl    $255, %ecx
  48.     movl    %edx, _perm(,%eax,4)
  49.     movl    %edx, 1024(%ebx,%eax,4)
  50.     jle L242
  51.     addl    $1048, %esp
  52.     popl    %ebx
  53.     ret
  54.     .section .rdata,"dr"
  55.     .align 4
  56. LC4:
  57.     .long   1086324736
  58.     .align 4
  59. LC5:
  60.     .long   1097859072
  61.     .align 4
  62. LC6:
  63.     .long   1092616192
  64.     .text
  65.     .p2align 4,,15
  66. .globl _fade
  67.     .def    _fade;  .scl    2;  .type   32; .endef
  68. _fade:
  69.     subl    $4, %esp
  70.     movss   8(%esp), %xmm0
  71.     movaps  %xmm0, %xmm1
  72.     movaps  %xmm0, %xmm2
  73.     mulss   LC4, %xmm1
  74.     mulss   %xmm0, %xmm2
  75.     mulss   %xmm0, %xmm2
  76.     subss   LC5, %xmm1
  77.     mulss   %xmm0, %xmm1
  78.     addss   LC6, %xmm1
  79.     mulss   %xmm1, %xmm2
  80.     movss   %xmm2, (%esp)
  81.     flds    (%esp)
  82.     popl    %eax
  83.     ret
  84.     .p2align 4,,15
  85. .globl _lerp
  86.     .def    _lerp;  .scl    2;  .type   32; .endef
  87. _lerp:
  88.     subl    $4, %esp
  89.     movss   12(%esp), %xmm1
  90.     movss   16(%esp), %xmm0
  91.     subss   %xmm1, %xmm0
  92.     mulss   8(%esp), %xmm0
  93.     addss   %xmm1, %xmm0
  94.     movss   %xmm0, (%esp)
  95.     flds    (%esp)
  96.     popl    %eax
  97.     ret
  98.     .section .rdata,"dr"
  99.     .align 16
  100. LC9:
  101.     .long   -2147483648
  102.     .long   0
  103.     .long   0
  104.     .long   0
  105.     .text
  106.     .p2align 4,,15
  107. .globl _grad
  108.     .def    _grad;  .scl    2;  .type   32; .endef
  109. _grad:
  110.     subl    $4, %esp
  111.     movl    16(%esp), %edx
  112.     movl    8(%esp), %ecx
  113.     flds    12(%esp)
  114.     movl    %edx, (%esp)
  115.     andl    $15, %ecx
  116.     cmpl    $7, %ecx
  117.     flds    (%esp)
  118.     setg    %al
  119.     testb   %al, %al
  120.     movss   (%esp), %xmm1
  121.     fcmove  %st(1), %st
  122.     cmpl    $3, %ecx
  123.     jle L266
  124.     flds    20(%esp)
  125.     cmpl    $12, %ecx
  126.     sete    %al
  127.     cmpl    $14, %ecx
  128.     sete    %dl
  129.     orl %edx, %eax
  130.     testb   $1, %al
  131.     fcmovne %st(2), %st
  132.     fstp    %st(2)
  133.     fxch    %st(1)
  134.     fstps   (%esp)
  135.     movss   (%esp), %xmm1
  136.     jmp L260
  137.     .p2align 4,,7
  138. L266:
  139.     fstp    %st(1)
  140. L260:
  141.     fstps   (%esp)
  142.     testb   $1, %cl
  143.     movss   (%esp), %xmm0
  144.     je  L263
  145.     xorps   LC9, %xmm0
  146. L263:
  147.     movaps  %xmm0, %xmm2
  148.     subss   %xmm1, %xmm0
  149.     addss   %xmm1, %xmm2
  150.     movss   %xmm2, (%esp)
  151.     testb   $2, %cl
  152.     flds    (%esp)
  153.     movss   %xmm0, (%esp)
  154.     flds    (%esp)
  155.     popl    %eax
  156.     fcmove  %st(1), %st
  157.     fstp    %st(1)
  158.     ret
  159.     .section .rdata,"dr"
  160.     .align 4
  161. LC11:
  162.     .long   1065353216
  163.     .align 16
  164. LC12:
  165.     .long   -2147483648
  166.     .long   0
  167.     .long   0
  168.     .long   0
  169.     .align 4
  170. LC13:
  171.     .long   1086324736
  172.     .align 4
  173. LC14:
  174.     .long   1097859072
  175.     .align 4
  176. LC15:
  177.     .long   1092616192
  178.     .text
  179.     .p2align 4,,15
  180. .globl _noise
  181.     .def    _noise; .scl    2;  .type   32; .endef
  182. _noise:
  183.     pushl   %esi
  184.     pushl   %ebx
  185.     subl    $44, %esp
  186.     movss   56(%esp), %xmm1
  187.     movss   60(%esp), %xmm2
  188.     movss   64(%esp), %xmm4
  189.     cvttss2si   %xmm1, %ebx
  190.     movaps  %xmm1, %xmm5
  191.     cvtsi2ss    %ebx, %xmm6
  192.     andl    $255, %ebx
  193.     movl    _perm+4(,%ebx,4), %esi
  194.     movl    _perm(,%ebx,4), %ecx
  195.     cvttss2si   %xmm2, %eax
  196.     cvttss2si   %xmm4, %edx
  197.     cvtsi2ss    %eax, %xmm3
  198.     andl    $255, %eax
  199.     cvtsi2ss    %edx, %xmm0
  200.     addl    %eax, %ecx
  201.     addl    %esi, %eax
  202.     movl    _perm(,%ecx,4), %ebx
  203.     movl    _perm(,%eax,4), %esi
  204.     andl    $255, %edx
  205.     subss   %xmm6, %xmm5
  206.     movl    _perm+4(,%ecx,4), %ecx
  207.     movaps  %xmm2, %xmm6
  208.     addl    %edx, %ebx
  209.     cvtsi2ss    _perm(,%ebx,4), %xmm7
  210.     addl    %edx, %esi
  211.     addl    %edx, %ecx
  212.     addl    _perm+4(,%eax,4), %edx
  213.     subss   %xmm3, %xmm6
  214.     subss   %xmm0, %xmm4
  215.     cvtsi2ss    _perm(,%ecx,4), %xmm1
  216.     cvtsi2ss    _perm+4(,%ecx,4), %xmm3
  217.     cvtsi2ss    _perm(,%edx,4), %xmm2
  218.     cvtsi2ss    _perm+4(,%edx,4), %xmm0
  219.     movss   %xmm4, 8(%esp)
  220.     cvtsi2ss    _perm(,%esi,4), %xmm4
  221.     movss   %xmm7, 40(%esp)
  222.     cvtsi2ss    _perm+4(,%ebx,4), %xmm7
  223.     movss   %xmm1, 36(%esp)
  224.     movaps  %xmm5, %xmm1
  225.     movss   %xmm2, 28(%esp)
  226.     cvttss2si   %xmm0, %ecx
  227.     andl    $15, %ecx
  228.     movss   LC11, %xmm2
  229.     movss   %xmm3, (%esp)
  230.     movaps  %xmm6, %xmm3
  231.     movss   %xmm4, 32(%esp)
  232.     cmpl    $7, %ecx
  233.     setg    %al
  234.     cvtsi2ss    _perm+4(,%esi,4), %xmm4
  235.     subss   %xmm2, %xmm1
  236.     subss   %xmm2, %xmm3
  237.     movss   %xmm1, 4(%esp)
  238.     movss   8(%esp), %xmm0
  239.     movl    4(%esp), %esi
  240.     movss   %xmm3, 4(%esp)
  241.     movl    4(%esp), %edx
  242.     testb   %al, %al
  243.     movaps  %xmm3, %xmm1
  244.     movl    %esi, %ebx
  245.     subss   %xmm2, %xmm0
  246.     cmovne  %edx, %ebx
  247.     cmpl    $3, %ecx
  248.     jle L271
  249.     movss   %xmm0, 4(%esp)
  250.     cmpl    $12, %ecx
  251.     sete    %al
  252.     cmpl    $14, %ecx
  253.     sete    %dl
  254.     orl %edx, %eax
  255.     movl    4(%esp), %edx
  256.     testb   $1, %al
  257.     cmovne  %esi, %edx
  258.     movl    %edx, 4(%esp)
  259.     movss   4(%esp), %xmm1
  260. L271:
  261.     movl    %ebx, 4(%esp)
  262.     testb   $1, %cl
  263.     movss   4(%esp), %xmm0
  264.     je  L274
  265.     xorps   LC12, %xmm0
  266. L274:
  267.     movaps  %xmm0, %xmm3
  268.     subss   %xmm1, %xmm0
  269.     addss   %xmm1, %xmm3
  270.     movss   %xmm0, 4(%esp)
  271.     testb   $2, %cl
  272.     movl    4(%esp), %ecx
  273.     movss   %xmm3, 24(%esp)
  274.     movaps  %xmm6, %xmm0
  275.     subss   %xmm2, %xmm0
  276.     cmove   24(%esp), %ecx
  277.     movss   %xmm0, 4(%esp)
  278.     movl    4(%esp), %esi
  279.     movss   %xmm5, 4(%esp)
  280.     movl    %ecx, 24(%esp)
  281.     cvttss2si   (%esp), %ecx
  282.     movss   8(%esp), %xmm0
  283.     andl    $15, %ecx
  284.     cmpl    $7, %ecx
  285.     setg    %bl
  286.     subss   %xmm2, %xmm0
  287.     testb   %bl, %bl
  288.     movl    4(%esp), %ebx
  289.     movl    %esi, 4(%esp)
  290.     movss   4(%esp), %xmm1
  291.     cmovne  %esi, %ebx
  292.     cmpl    $3, %ecx
  293.     jle L281
  294.     movss   %xmm5, 4(%esp)
  295.     cmpl    $12, %ecx
  296.     sete    %al
  297.     flds    4(%esp)
  298.     cmpl    $14, %ecx
  299.     sete    %dl
  300.     movss   %xmm0, 4(%esp)
  301.     orl %edx, %eax
  302.     testb   $1, %al
  303.     flds    4(%esp)
  304.     fcmovne %st(1), %st
  305.     fstp    %st(1)
  306.     fstps   4(%esp)
  307.     movss   4(%esp), %xmm1
  308. L281:
  309.     movl    %ebx, 4(%esp)
  310.     testb   $1, %cl
  311.     movss   4(%esp), %xmm0
  312.     je  L284
  313.     xorps   LC12, %xmm0
  314. L284:
  315.     movaps  %xmm0, %xmm3
  316.     subss   %xmm1, %xmm0
  317.     addss   %xmm1, %xmm3
  318.     movss   %xmm0, 4(%esp)
  319.     testb   $2, %cl
  320.     movl    4(%esp), %esi
  321.     movss   %xmm3, 20(%esp)
  322.     cvttss2si   %xmm4, %ecx
  323.     movaps  %xmm5, %xmm4
  324.     cmove   20(%esp), %esi
  325.     subss   %xmm2, %xmm4
  326.     andl    $15, %ecx
  327.     movss   %xmm4, 4(%esp)
  328.     cmpl    $7, %ecx
  329.     setg    %bl
  330.     movl    %esi, 20(%esp)
  331.     movl    4(%esp), %esi
  332.     testb   %bl, %bl
  333.     movss   %xmm6, 4(%esp)
  334.     movss   8(%esp), %xmm0
  335.     movl    4(%esp), %ebx
  336.     movaps  %xmm6, %xmm1
  337.     cmove   %esi, %ebx
  338.     cmpl    $3, %ecx
  339.     subss   %xmm2, %xmm0
  340.     jle L291
  341.     movl    %esi, 4(%esp)
  342.     cmpl    $12, %ecx
  343.     sete    %al
  344.     flds    4(%esp)
  345.     cmpl    $14, %ecx
  346.     sete    %dl
  347.     movss   %xmm0, 4(%esp)
  348.     orl %edx, %eax
  349.     testb   $1, %al
  350.     flds    4(%esp)
  351.     fcmovne %st(1), %st
  352.     fstp    %st(1)
  353.     fstps   4(%esp)
  354.     movss   4(%esp), %xmm1
  355. L291:
  356.     movl    %ebx, 4(%esp)
  357.     testb   $1, %cl
  358.     movss   4(%esp), %xmm0
  359.     je  L294
  360.     xorps   LC12, %xmm0
  361. L294:
  362.     movaps  %xmm0, %xmm4
  363.     subss   %xmm1, %xmm0
  364.     addss   %xmm1, %xmm4
  365.     movss   %xmm4, 4(%esp)
  366.     testb   $2, %cl
  367.     cvttss2si   %xmm7, %ecx
  368.     flds    4(%esp)
  369.     movss   %xmm0, 4(%esp)
  370.     movaps  %xmm6, %xmm1
  371.     flds    4(%esp)
  372.     movss   %xmm5, 4(%esp)
  373.     movss   8(%esp), %xmm0
  374.     fcmove  %st(1), %st
  375.     fstp    %st(1)
  376.     andl    $15, %ecx
  377.     cmpl    $7, %ecx
  378.     setg    %bl
  379.     subss   %xmm2, %xmm0
  380.     testb   %bl, %bl
  381.     movl    4(%esp), %ebx
  382.     movss   %xmm6, 4(%esp)
  383.     movl    4(%esp), %esi
  384.     cmovne  %esi, %ebx
  385.     cmpl    $3, %ecx
  386.     jle L301
  387.     movss   %xmm5, 4(%esp)
  388.     cmpl    $12, %ecx
  389.     sete    %al
  390.     flds    4(%esp)
  391.     cmpl    $14, %ecx
  392.     sete    %dl
  393.     movss   %xmm0, 4(%esp)
  394.     orl %edx, %eax
  395.     testb   $1, %al
  396.     flds    4(%esp)
  397.     fcmovne %st(1), %st
  398.     fstp    %st(1)
  399.     fstps   4(%esp)
  400.     movss   4(%esp), %xmm1
  401. L301:
  402.     movl    %ebx, 4(%esp)
  403.     testb   $1, %cl
  404.     movss   4(%esp), %xmm0
  405.     je  L304
  406.     xorps   LC12, %xmm0
  407. L304:
  408.     movaps  %xmm0, %xmm3
  409.     subss   %xmm1, %xmm0
  410.     addss   %xmm1, %xmm3
  411.     movss   %xmm0, 4(%esp)
  412.     testb   $2, %cl
  413.     movl    4(%esp), %ecx
  414.     movss   %xmm3, 16(%esp)
  415.     movaps  %xmm5, %xmm7
  416.     subss   %xmm2, %xmm7
  417.     cmove   16(%esp), %ecx
  418.     movaps  %xmm6, %xmm1
  419.     subss   %xmm2, %xmm1
  420.     movss   %xmm7, 4(%esp)
  421.     movl    4(%esp), %esi
  422.     movl    %ecx, 16(%esp)
  423.     cvttss2si   28(%esp), %ecx
  424.     movss   %xmm1, 4(%esp)
  425.     movl    4(%esp), %edx
  426.     andl    $15, %ecx
  427.     cmpl    $7, %ecx
  428.     setg    %bl
  429.     testb   %bl, %bl
  430.     movl    %esi, %ebx
  431.     cmovne  %edx, %ebx
  432.     cmpl    $3, %ecx
  433.     jle L311
  434.     cmpl    $12, %ecx
  435.     sete    %al
  436.     cmpl    $14, %ecx
  437.     sete    %dl
  438.     orl %edx, %eax
  439.     testb   $1, %al
  440.     movl    %esi, %eax
  441.     cmove   8(%esp), %eax
  442.     movl    %eax, 4(%esp)
  443.     movss   4(%esp), %xmm1
  444. L311:
  445.     movl    %ebx, 4(%esp)
  446.     testb   $1, %cl
  447.     movss   4(%esp), %xmm0
  448.     je  L314
  449.     xorps   LC12, %xmm0
  450. L314:
  451.     movaps  %xmm0, %xmm4
  452.     subss   %xmm1, %xmm0
  453.     addss   %xmm1, %xmm4
  454.     movss   %xmm4, 4(%esp)
  455.     testb   $2, %cl
  456.     flds    4(%esp)
  457.     cvttss2si   36(%esp), %ecx
  458.     movss   %xmm0, 4(%esp)
  459.     movaps  %xmm6, %xmm0
  460.     subss   %xmm2, %xmm0
  461.     flds    4(%esp)
  462.     movss   %xmm0, 4(%esp)
  463.     movl    4(%esp), %esi
  464.     movss   %xmm5, 4(%esp)
  465.     movaps  %xmm0, %xmm1
  466.     fcmove  %st(1), %st
  467.     fstp    %st(1)
  468.     andl    $15, %ecx
  469.     cmpl    $7, %ecx
  470.     setg    %bl
  471.     testb   %bl, %bl
  472.     movl    4(%esp), %ebx
  473.     cmovne  %esi, %ebx
  474.     cmpl    $3, %ecx
  475.     jle L321
  476.     cmpl    $12, %ecx
  477.     sete    %al
  478.     cmpl    $14, %ecx
  479.     sete    %dl
  480.     orl %edx, %eax
  481.     testb   $1, %al
  482.     movl    4(%esp), %eax
  483.     cmove   8(%esp), %eax
  484.     movl    %eax, 4(%esp)
  485.     movss   4(%esp), %xmm1
  486. L321:
  487.     movl    %ebx, 4(%esp)
  488.     testb   $1, %cl
  489.     movss   4(%esp), %xmm0
  490.     je  L324
  491.     xorps   LC12, %xmm0
  492. L324:
  493.     movaps  %xmm0, %xmm7
  494.     subss   %xmm1, %xmm0
  495.     addss   %xmm1, %xmm7
  496.     movss   %xmm0, 4(%esp)
  497.     testb   $2, %cl
  498.     movl    4(%esp), %ecx
  499.     movss   %xmm7, 12(%esp)
  500.     movaps  %xmm5, %xmm1
  501.     subss   %xmm2, %xmm1
  502.     cmove   12(%esp), %ecx
  503.     movss   %xmm1, 4(%esp)
  504.     movl    4(%esp), %ebx
  505.     movss   %xmm6, 4(%esp)
  506.     movl    4(%esp), %esi
  507.     movaps  %xmm6, %xmm1
  508.     movl    %ecx, 12(%esp)
  509.     cvttss2si   32(%esp), %ecx
  510.     andl    $15, %ecx
  511.     cmpl    $7, %ecx
  512.     setg    %al
  513.     testb   %al, %al
  514.     cmove   %ebx, %esi
  515.     cmpl    $3, %ecx
  516.     jle L331
  517.     cmpl    $12, %ecx
  518.     sete    %al
  519.     cmpl    $14, %ecx
  520.     sete    %dl
  521.     orl %edx, %eax
  522.     testb   $1, %al
  523.     movl    %ebx, %edx
  524.     cmove   8(%esp), %edx
  525.     movl    %edx, 4(%esp)
  526.     movss   4(%esp), %xmm1
  527. L331:
  528.     movl    %esi, 4(%esp)
  529.     testb   $1, %cl
  530.     movss   4(%esp), %xmm0
  531.     je  L334
  532.     xorps   LC12, %xmm0
  533. L334:
  534.     movaps  %xmm0, %xmm2
  535.     subss   %xmm1, %xmm0
  536.     addss   %xmm1, %xmm2
  537.     movss   %xmm2, 4(%esp)
  538.     testb   $2, %cl
  539.     movl    4(%esp), %esi
  540.     movss   %xmm0, 4(%esp)
  541.     movaps  %xmm6, %xmm1
  542.     movl    4(%esp), %ecx
  543.     movss   %xmm5, 4(%esp)
  544.     cmovne  %ecx, %esi
  545.     cvttss2si   40(%esp), %ecx
  546.     andl    $15, %ecx
  547.     cmpl    $7, %ecx
  548.     setg    %bl
  549.     testb   %bl, %bl
  550.     movl    4(%esp), %ebx
  551.     movss   %xmm6, 4(%esp)
  552.     movl    4(%esp), %eax
  553.     cmovne  %eax, %ebx
  554.     cmpl    $3, %ecx
  555.     jle L341
  556.     movss   %xmm5, 4(%esp)
  557.     cmpl    $12, %ecx
  558.     sete    %al
  559.     cmpl    $14, %ecx
  560.     sete    %dl
  561.     orl %edx, %eax
  562.     testb   $1, %al
  563.     movl    4(%esp), %edx
  564.     cmove   8(%esp), %edx
  565.     movl    %edx, 4(%esp)
  566.     movss   4(%esp), %xmm1
  567. L341:
  568.     movl    %ebx, 4(%esp)
  569.     testb   $1, %cl
  570.     movss   4(%esp), %xmm0
  571.     je  L344
  572.     xorps   LC12, %xmm0
  573. L344:
  574.     movss   LC14, %xmm4
  575.     movaps  %xmm0, %xmm2
  576.     addss   %xmm1, %xmm2
  577.     movss   %xmm2, 4(%esp)
  578.     subss   %xmm1, %xmm0
  579.     movaps  %xmm5, %xmm2
  580.     movss   LC13, %xmm1
  581.     mulss   %xmm5, %xmm2
  582.     mulss   %xmm5, %xmm2
  583.     flds    4(%esp)
  584.     movss   %xmm0, 4(%esp)
  585.     movaps  %xmm5, %xmm0
  586.     movss   LC15, %xmm3
  587.     mulss   %xmm1, %xmm0
  588.     flds    4(%esp)
  589.     subss   %xmm4, %xmm0
  590.     testb   $2, %cl
  591.     mulss   %xmm5, %xmm0
  592.     addss   %xmm3, %xmm0
  593.     movaps  %xmm6, %xmm5
  594.     fcmove  %st(1), %st
  595.     fstp    %st(1)
  596.     mulss   %xmm0, %xmm2
  597.     movaps  %xmm6, %xmm0
  598.     mulss   %xmm1, %xmm0
  599.     mulss   %xmm6, %xmm5
  600.     subss   %xmm4, %xmm0
  601.     mulss   8(%esp), %xmm1
  602.     mulss   %xmm6, %xmm5
  603.     fstps   4(%esp)
  604.     mulss   %xmm6, %xmm0
  605.     addss   %xmm3, %xmm0
  606.     movss   8(%esp), %xmm6
  607.     mulss   %xmm0, %xmm5
  608.     subss   %xmm4, %xmm1
  609.     mulss   8(%esp), %xmm1
  610.     movss   4(%esp), %xmm7
  611.     mulss   %xmm6, %xmm6
  612.     mulss   8(%esp), %xmm6
  613.     addss   %xmm3, %xmm1
  614.     movl    %esi, 4(%esp)
  615.     movss   24(%esp), %xmm3
  616.     mulss   %xmm1, %xmm6
  617.     movss   4(%esp), %xmm1
  618.     fstps   4(%esp)
  619.     movss   4(%esp), %xmm0
  620.     fstps   4(%esp)
  621.     subss   %xmm7, %xmm1
  622.     mulss   %xmm2, %xmm1
  623.     movss   4(%esp), %xmm4
  624.     addss   %xmm7, %xmm1
  625.     subss   12(%esp), %xmm0
  626.     subss   20(%esp), %xmm3
  627.     subss   16(%esp), %xmm4
  628.     mulss   %xmm2, %xmm0
  629.     addss   12(%esp), %xmm0
  630.     mulss   %xmm2, %xmm4
  631.     mulss   %xmm3, %xmm2
  632.     addss   16(%esp), %xmm4
  633.     subss   %xmm1, %xmm0
  634.     mulss   %xmm5, %xmm0
  635.     addss   20(%esp), %xmm2
  636.     addss   %xmm1, %xmm0
  637.     subss   %xmm4, %xmm2
  638.     mulss   %xmm2, %xmm5
  639.     addss   %xmm5, %xmm4
  640.     subss   %xmm0, %xmm4
  641.     mulss   %xmm4, %xmm6
  642.     addss   %xmm6, %xmm0
  643.     movss   %xmm0, 24(%esp)
  644.     flds    24(%esp)
  645.     addl    $44, %esp
  646.     popl    %ebx
  647.     popl    %esi
  648.     ret
  649.     .section .rdata,"dr"
  650.     .align 4
  651. LC17:
  652.     .long   1008981770
  653.     .text
  654.     .p2align 4,,15
  655. .globl _Java_pack_Code_sse_1noise@20
  656.     .def    _Java_pack_Code_sse_1noise@20;  .scl    2;  .type   32; .endef
  657. _Java_pack_Code_sse_1noise@20:
  658.     pushl   %ebp
  659.     movl    $1, %edx
  660.     pushl   %edi
  661.     pushl   %esi
  662.     pushl   %ebx
  663.     subl    $28, %esp
  664.     movl    64(%esp), %eax
  665.     movzbl  64(%esp), %ecx
  666.     movl    64(%esp), %ebx
  667.     addl    %eax, %eax
  668.     movl    %eax, 24(%esp)
  669.     movl    56(%esp), %eax
  670.     sall    %cl, %edx
  671.     movl    %edx, %ebp
  672.     leal    -1(%edx), %edi
  673.     movl    48(%esp), %esi
  674.     imull   %edx, %ebp
  675.     andl    $15, %eax
  676.     sall    $2, %ebx
  677.     movl    %ebx, 20(%esp)
  678.     imull   %edx, %ebp
  679.     xorl    %edx, %edx
  680.     movl    %edx, %ecx
  681.     orl %eax, %ecx
  682.     jne L376
  683. L359:
  684.     movl    56(%esp), %esi
  685.     movl    %ebp, %ebx
  686.     decl    %ebx
  687.     movl    %esi, 16(%esp)
  688.     js  L366
  689.     movzbl  64(%esp), %ecx
  690.     movl    %ebx, %esi
  691.     andl    $1, %esi
  692.     movl    %esi, 12(%esp)
  693.     movl    %ebx, %esi
  694.     movl    %ebx, %edx
  695.     movl    %ebx, %eax
  696.     sarl    %cl, %esi
  697.     andl    %edi, %esi
  698.     movzbl  24(%esp), %ecx
  699.     cvtsi2ss    %esi, %xmm0
  700.     movl    %ebp, %esi
  701.     sarl    %cl, %edx
  702.     andl    %edi, %edx
  703.     cvtsi2ss    %edx, %xmm1
  704.     movzbl  20(%esp), %ecx
  705.     mulss   LC17, %xmm0
  706.     sarl    %cl, %eax
  707.     andl    %edi, %eax
  708.     mulss   LC17, %xmm1
  709.     cvtsi2ss    %eax, %xmm2
  710.     movss   %xmm0, (%esp)
  711.     movss   %xmm1, 4(%esp)
  712.     mulss   LC17, %xmm2
  713.     movss   %xmm2, 8(%esp)
  714.     call    _noise
  715.     movl    16(%esp), %eax
  716.     subl    $2, %esi
  717.     fstps   (%eax,%ebx,4)
  718.     js  L366
  719.     movl    12(%esp), %ebx
  720.     testl   %ebx, %ebx
  721.     jne L377
  722.     .p2align 4,,15
  723. L364:
  724.     movzbl  64(%esp), %ecx
  725.     movl    %esi, %ebp
  726.     movl    %esi, %edx
  727.     movl    %esi, %eax
  728.     sarl    %cl, %ebp
  729.     andl    %edi, %ebp
  730.     movzbl  24(%esp), %ecx
  731.     cvtsi2ss    %ebp, %xmm3
  732.     sarl    %cl, %edx
  733.     movzbl  20(%esp), %ecx
  734.     andl    %edi, %edx
  735.     cvtsi2ss    %edx, %xmm1
  736.     mulss   LC17, %xmm3
  737.     sarl    %cl, %eax
  738.     andl    %edi, %eax
  739.     mulss   LC17, %xmm1
  740.     cvtsi2ss    %eax, %xmm2
  741.     movss   %xmm3, (%esp)
  742.     movss   %xmm1, 4(%esp)
  743.     mulss   LC17, %xmm2
  744.     movss   %xmm2, 8(%esp)
  745.     call    _noise
  746.     movzbl  64(%esp), %ecx
  747.     movl    16(%esp), %ebx
  748.     fstps   (%ebx,%esi,4)
  749.     leal    -1(%esi), %ebx
  750.     movl    %ebx, %ebp
  751.     sarl    %cl, %ebp
  752.     movzbl  24(%esp), %ecx
  753.     movl    %ebx, %edx
  754.     movl    %ebx, %eax
  755.     andl    %edi, %ebp
  756.     cvtsi2ss    %ebp, %xmm6
  757.     sarl    %cl, %edx
  758.     movzbl  20(%esp), %ecx
  759.     andl    %edi, %edx
  760.     cvtsi2ss    %edx, %xmm7
  761.     mulss   LC17, %xmm6
  762.     sarl    %cl, %eax
  763.     andl    %edi, %eax
  764.     mulss   LC17, %xmm7
  765.     cvtsi2ss    %eax, %xmm0
  766.     movss   %xmm6, (%esp)
  767.     movss   %xmm7, 4(%esp)
  768.     mulss   LC17, %xmm0
  769.     movss   %xmm0, 8(%esp)
  770.     call    _noise
  771.     movl    16(%esp), %ebp
  772.     subl    $2, %esi
  773.     fstps   (%ebp,%ebx,4)
  774. L375:
  775.     jns L364
  776. L366:
  777.     addl    $28, %esp
  778.     popl    %ebx
  779.     popl    %esi
  780.     popl    %edi
  781.     popl    %ebp
  782.     ret $20
  783. L377:
  784.     movzbl  64(%esp), %ecx
  785.     movl    %esi, %ebx
  786.     movl    %esi, %edx
  787.     movl    %esi, %eax
  788.     sarl    %cl, %ebx
  789.     andl    %edi, %ebx
  790.     movzbl  24(%esp), %ecx
  791.     cvtsi2ss    %ebx, %xmm3
  792.     sarl    %cl, %edx
  793.     movzbl  20(%esp), %ecx
  794.     andl    %edi, %edx
  795.     cvtsi2ss    %edx, %xmm4
  796.     mulss   LC17, %xmm3
  797.     sarl    %cl, %eax
  798.     andl    %edi, %eax
  799.     mulss   LC17, %xmm4
  800.     cvtsi2ss    %eax, %xmm5
  801.     movss   %xmm3, (%esp)
  802.     movss   %xmm4, 4(%esp)
  803.     mulss   LC17, %xmm5
  804.     movss   %xmm5, 8(%esp)
  805.     call    _noise
  806.     movl    16(%esp), %edx
  807.     fstps   (%edx,%esi,4)
  808.     movl    %ebp, %esi
  809.     subl    $3, %esi
  810.     jmp L375
  811. L376:
  812.     movl    (%esi), %ebx
  813.     movl    $LC0, %ecx
  814.     movl    %ecx, 4(%esp)
  815.     movl    %esi, (%esp)
  816.     call    *24(%ebx)
  817.     movl    $LC1, %edx
  818.     movl    %eax, %ebx
  819.     movl    (%esi), %eax
  820.     subl    $8, %esp
  821.     movl    %edx, 8(%esp)
  822.     movl    %ebx, 4(%esp)
  823.     movl    %esi, (%esp)
  824.     call    *56(%eax)
  825.     movl    (%esi), %eax
  826.     subl    $12, %esp
  827.     movl    %ebx, 4(%esp)
  828.     movl    %esi, (%esp)
  829.     call    *92(%eax)
  830.     subl    $8, %esp
  831.     jmp L359
  832.     .comm   _perm, 2048  # 2048
  833.     .def    _memcpy;    .scl    2;  .type   32; .endef
  834.     .section .drectve
  835.  
  836.     .ascii " -export:Java_pack_Code_sse_1noise@20"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement