Subversion Repositories Kolibri OS

Rev

Rev 1905 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /*
  2.         dct64_mmx.s: MMX optimized DCT64
  3.  
  4.         copyright ?-2006 by the mpg123 project - free software under the terms of the LGPL 2.1
  5.         see COPYING and AUTHORS files in distribution or http://mpg123.org
  6.         initially written by the mysterious higway (apparently)
  7. */
  8.  
  9. #include "mangle.h"
  10.  
  11. .text
  12.  
  13.         ALIGN32
  14. .globl ASM_NAME(dct64_mmx)
  15. ASM_NAME(dct64_mmx):
  16.  
  17.         xorl %ecx,%ecx
  18. .globl ASM_NAME(dct64_MMX)
  19. ASM_NAME(dct64_MMX):
  20.         pushl %ebx
  21.         pushl %esi
  22.         pushl %edi
  23.         subl $256,%esp
  24.         movl 280(%esp),%eax
  25.         flds     (%eax)
  26.         leal 128(%esp),%edx
  27.         fadds 124(%eax)
  28.         movl 272(%esp),%esi
  29.         fstps    (%edx)
  30.         movl 276(%esp),%edi
  31.         flds    4(%eax)
  32.         movl ASM_VALUE(costab_mmxsse),%ebx
  33.         fadds 120(%eax)
  34.         orl %ecx,%ecx
  35.         fstps   4(%edx)
  36.         flds     (%eax)
  37.         movl %esp,%ecx
  38.         fsubs 124(%eax)
  39.         fmuls    (%ebx)
  40.         fstps 124(%edx)
  41.         flds    4(%eax)
  42.         fsubs 120(%eax)
  43.         fmuls   4(%ebx)
  44.         fstps 120(%edx)
  45.         flds    8(%eax)
  46.         fadds 116(%eax)
  47.         fstps   8(%edx)
  48.         flds   12(%eax)
  49.         fadds 112(%eax)
  50.         fstps  12(%edx)
  51.         flds    8(%eax)
  52.         fsubs 116(%eax)
  53.         fmuls   8(%ebx)
  54.         fstps 116(%edx)
  55.         flds   12(%eax)
  56.         fsubs 112(%eax)
  57.         fmuls  12(%ebx)
  58.         fstps 112(%edx)
  59.         flds   16(%eax)
  60.         fadds 108(%eax)
  61.         fstps  16(%edx)
  62.         flds   20(%eax)
  63.         fadds 104(%eax)
  64.         fstps  20(%edx)
  65.         flds   16(%eax)
  66.         fsubs 108(%eax)
  67.         fmuls  16(%ebx)
  68.         fstps 108(%edx)
  69.         flds   20(%eax)
  70.         fsubs 104(%eax)
  71.         fmuls  20(%ebx)
  72.         fstps 104(%edx)
  73.         flds   24(%eax)
  74.         fadds 100(%eax)
  75.         fstps  24(%edx)
  76.         flds   28(%eax)
  77.         fadds  96(%eax)
  78.         fstps  28(%edx)
  79.         flds   24(%eax)
  80.         fsubs 100(%eax)
  81.         fmuls  24(%ebx)
  82.         fstps 100(%edx)
  83.         flds   28(%eax)
  84.         fsubs  96(%eax)
  85.         fmuls  28(%ebx)
  86.         fstps  96(%edx)
  87.         flds   32(%eax)
  88.         fadds  92(%eax)
  89.         fstps  32(%edx)
  90.         flds   36(%eax)
  91.         fadds  88(%eax)
  92.         fstps  36(%edx)
  93.         flds   32(%eax)
  94.         fsubs  92(%eax)
  95.         fmuls  32(%ebx)
  96.         fstps  92(%edx)
  97.         flds   36(%eax)
  98.         fsubs  88(%eax)
  99.         fmuls  36(%ebx)
  100.         fstps  88(%edx)
  101.         flds   40(%eax)
  102.         fadds  84(%eax)
  103.         fstps  40(%edx)
  104.         flds   44(%eax)
  105.         fadds  80(%eax)
  106.         fstps  44(%edx)
  107.         flds   40(%eax)
  108.         fsubs  84(%eax)
  109.         fmuls  40(%ebx)
  110.         fstps  84(%edx)
  111.         flds   44(%eax)
  112.         fsubs  80(%eax)
  113.         fmuls  44(%ebx)
  114.         fstps  80(%edx)
  115.         flds   48(%eax)
  116.         fadds  76(%eax)
  117.         fstps  48(%edx)
  118.         flds   52(%eax)
  119.         fadds  72(%eax)
  120.         fstps  52(%edx)
  121.         flds   48(%eax)
  122.         fsubs  76(%eax)
  123.         fmuls  48(%ebx)
  124.         fstps  76(%edx)
  125.         flds   52(%eax)
  126.         fsubs  72(%eax)
  127.         fmuls  52(%ebx)
  128.         fstps  72(%edx)
  129.         flds   56(%eax)
  130.         fadds  68(%eax)
  131.         fstps  56(%edx)
  132.         flds   60(%eax)
  133.         fadds  64(%eax)
  134.         fstps  60(%edx)
  135.         flds   56(%eax)
  136.         fsubs  68(%eax)
  137.         fmuls  56(%ebx)
  138.         fstps  68(%edx)
  139.         flds   60(%eax)
  140.         fsubs  64(%eax)
  141.         fmuls  60(%ebx)
  142.         fstps  64(%edx)
  143.        
  144.         flds     (%edx)
  145.         fadds  60(%edx)
  146.         fstps    (%ecx)
  147.         flds    4(%edx)
  148.         fadds  56(%edx)
  149.         fstps   4(%ecx)
  150.         flds     (%edx)
  151.         fsubs  60(%edx)
  152.         fmuls  64(%ebx)
  153.         fstps  60(%ecx)
  154.         flds    4(%edx)
  155.         fsubs  56(%edx)
  156.         fmuls  68(%ebx)
  157.         fstps  56(%ecx)
  158.         flds    8(%edx)
  159.         fadds  52(%edx)
  160.         fstps   8(%ecx)
  161.         flds   12(%edx)
  162.         fadds  48(%edx)
  163.         fstps  12(%ecx)
  164.         flds    8(%edx)
  165.         fsubs  52(%edx)
  166.         fmuls  72(%ebx)
  167.         fstps  52(%ecx)
  168.         flds   12(%edx)
  169.         fsubs  48(%edx)
  170.         fmuls  76(%ebx)
  171.         fstps  48(%ecx)
  172.         flds   16(%edx)
  173.         fadds  44(%edx)
  174.         fstps  16(%ecx)
  175.         flds   20(%edx)
  176.         fadds  40(%edx)
  177.         fstps  20(%ecx)
  178.         flds   16(%edx)
  179.         fsubs  44(%edx)
  180.         fmuls  80(%ebx)
  181.         fstps  44(%ecx)
  182.         flds   20(%edx)
  183.         fsubs  40(%edx)
  184.         fmuls  84(%ebx)
  185.         fstps  40(%ecx)
  186.         flds   24(%edx)
  187.         fadds  36(%edx)
  188.         fstps  24(%ecx)
  189.         flds   28(%edx)
  190.         fadds  32(%edx)
  191.         fstps  28(%ecx)
  192.         flds   24(%edx)
  193.         fsubs  36(%edx)
  194.         fmuls  88(%ebx)
  195.         fstps  36(%ecx)
  196.         flds   28(%edx)
  197.         fsubs  32(%edx)
  198.         fmuls  92(%ebx)
  199.         fstps  32(%ecx)
  200.        
  201.         flds   64(%edx)
  202.         fadds 124(%edx)
  203.         fstps  64(%ecx)
  204.         flds   68(%edx)
  205.         fadds 120(%edx)
  206.         fstps  68(%ecx)
  207.         flds  124(%edx)
  208.         fsubs  64(%edx)
  209.         fmuls  64(%ebx)
  210.         fstps 124(%ecx)
  211.         flds  120(%edx)
  212.         fsubs  68(%edx)
  213.         fmuls  68(%ebx)
  214.         fstps 120(%ecx)
  215.         flds   72(%edx)
  216.         fadds 116(%edx)
  217.         fstps  72(%ecx)
  218.         flds   76(%edx)
  219.         fadds 112(%edx)
  220.         fstps  76(%ecx)
  221.         flds  116(%edx)
  222.         fsubs  72(%edx)
  223.         fmuls  72(%ebx)
  224.         fstps 116(%ecx)
  225.         flds  112(%edx)
  226.         fsubs  76(%edx)
  227.         fmuls  76(%ebx)
  228.         fstps 112(%ecx)
  229.         flds   80(%edx)
  230.         fadds 108(%edx)
  231.         fstps  80(%ecx)
  232.         flds   84(%edx)
  233.         fadds 104(%edx)
  234.         fstps  84(%ecx)
  235.         flds  108(%edx)
  236.         fsubs  80(%edx)
  237.         fmuls  80(%ebx)
  238.         fstps 108(%ecx)
  239.         flds  104(%edx)
  240.         fsubs  84(%edx)
  241.         fmuls  84(%ebx)
  242.         fstps 104(%ecx)
  243.         flds   88(%edx)
  244.         fadds 100(%edx)
  245.         fstps  88(%ecx)
  246.         flds   92(%edx)
  247.         fadds  96(%edx)
  248.         fstps  92(%ecx)
  249.         flds  100(%edx)
  250.         fsubs  88(%edx)
  251.         fmuls  88(%ebx)
  252.         fstps 100(%ecx)
  253.         flds   96(%edx)
  254.         fsubs  92(%edx)
  255.         fmuls  92(%ebx)
  256.         fstps  96(%ecx)
  257.        
  258.         flds     (%ecx)
  259.         fadds  28(%ecx)
  260.         fstps    (%edx)
  261.         flds     (%ecx)
  262.         fsubs  28(%ecx)
  263.         fmuls  96(%ebx)
  264.         fstps  28(%edx)
  265.         flds    4(%ecx)
  266.         fadds  24(%ecx)
  267.         fstps   4(%edx)
  268.         flds    4(%ecx)
  269.         fsubs  24(%ecx)
  270.         fmuls 100(%ebx)
  271.         fstps  24(%edx)
  272.         flds    8(%ecx)
  273.         fadds  20(%ecx)
  274.         fstps   8(%edx)
  275.         flds    8(%ecx)
  276.         fsubs  20(%ecx)
  277.         fmuls 104(%ebx)
  278.         fstps  20(%edx)
  279.         flds   12(%ecx)
  280.         fadds  16(%ecx)
  281.         fstps  12(%edx)
  282.         flds   12(%ecx)
  283.         fsubs  16(%ecx)
  284.         fmuls 108(%ebx)
  285.         fstps  16(%edx)
  286.         flds   32(%ecx)
  287.         fadds  60(%ecx)
  288.         fstps  32(%edx)
  289.         flds   60(%ecx)
  290.         fsubs  32(%ecx)
  291.         fmuls  96(%ebx)
  292.         fstps  60(%edx)
  293.         flds   36(%ecx)
  294.         fadds  56(%ecx)
  295.         fstps  36(%edx)
  296.         flds   56(%ecx)
  297.         fsubs  36(%ecx)
  298.         fmuls 100(%ebx)
  299.         fstps  56(%edx)
  300.         flds   40(%ecx)
  301.         fadds  52(%ecx)
  302.         fstps  40(%edx)
  303.         flds   52(%ecx)
  304.         fsubs  40(%ecx)
  305.         fmuls 104(%ebx)
  306.         fstps  52(%edx)
  307.         flds   44(%ecx)
  308.         fadds  48(%ecx)
  309.         fstps  44(%edx)
  310.         flds   48(%ecx)
  311.         fsubs  44(%ecx)
  312.         fmuls 108(%ebx)
  313.         fstps  48(%edx)
  314.         flds   64(%ecx)
  315.         fadds  92(%ecx)
  316.         fstps  64(%edx)
  317.         flds   64(%ecx)
  318.         fsubs  92(%ecx)
  319.         fmuls  96(%ebx)
  320.         fstps  92(%edx)
  321.         flds   68(%ecx)
  322.         fadds  88(%ecx)
  323.         fstps  68(%edx)
  324.         flds   68(%ecx)
  325.         fsubs  88(%ecx)
  326.         fmuls 100(%ebx)
  327.         fstps  88(%edx)
  328.         flds   72(%ecx)
  329.         fadds  84(%ecx)
  330.         fstps  72(%edx)
  331.         flds   72(%ecx)
  332.         fsubs  84(%ecx)
  333.         fmuls 104(%ebx)
  334.         fstps  84(%edx)
  335.         flds   76(%ecx)
  336.         fadds  80(%ecx)
  337.         fstps  76(%edx)
  338.         flds   76(%ecx)
  339.         fsubs  80(%ecx)
  340.         fmuls 108(%ebx)
  341.         fstps  80(%edx)
  342.         flds   96(%ecx)
  343.         fadds 124(%ecx)
  344.         fstps  96(%edx)
  345.         flds  124(%ecx)
  346.         fsubs  96(%ecx)
  347.         fmuls  96(%ebx)
  348.         fstps 124(%edx)
  349.         flds  100(%ecx)
  350.         fadds 120(%ecx)
  351.         fstps 100(%edx)
  352.         flds  120(%ecx)
  353.         fsubs 100(%ecx)
  354.         fmuls 100(%ebx)
  355.         fstps 120(%edx)
  356.         flds  104(%ecx)
  357.         fadds 116(%ecx)
  358.         fstps 104(%edx)
  359.         flds  116(%ecx)
  360.         fsubs 104(%ecx)
  361.         fmuls 104(%ebx)
  362.         fstps 116(%edx)
  363.         flds  108(%ecx)
  364.         fadds 112(%ecx)
  365.         fstps 108(%edx)
  366.         flds  112(%ecx)
  367.         fsubs 108(%ecx)
  368.         fmuls 108(%ebx)
  369.         fstps 112(%edx)
  370.         flds     (%edx)
  371.         fadds  12(%edx)
  372.         fstps    (%ecx)
  373.         flds     (%edx)
  374.         fsubs  12(%edx)
  375.         fmuls 112(%ebx)
  376.         fstps  12(%ecx)
  377.         flds    4(%edx)
  378.         fadds   8(%edx)
  379.         fstps   4(%ecx)
  380.         flds    4(%edx)
  381.         fsubs   8(%edx)
  382.         fmuls 116(%ebx)
  383.         fstps   8(%ecx)
  384.         flds   16(%edx)
  385.         fadds  28(%edx)
  386.         fstps  16(%ecx)
  387.         flds   28(%edx)
  388.         fsubs  16(%edx)
  389.         fmuls 112(%ebx)
  390.         fstps  28(%ecx)
  391.         flds   20(%edx)
  392.         fadds  24(%edx)
  393.         fstps  20(%ecx)
  394.         flds   24(%edx)
  395.         fsubs  20(%edx)
  396.         fmuls 116(%ebx)
  397.         fstps  24(%ecx)
  398.         flds   32(%edx)
  399.         fadds  44(%edx)
  400.         fstps  32(%ecx)
  401.         flds   32(%edx)
  402.         fsubs  44(%edx)
  403.         fmuls 112(%ebx)
  404.         fstps  44(%ecx)
  405.         flds   36(%edx)
  406.         fadds  40(%edx)
  407.         fstps  36(%ecx)
  408.         flds   36(%edx)
  409.         fsubs  40(%edx)
  410.         fmuls 116(%ebx)
  411.         fstps  40(%ecx)
  412.         flds   48(%edx)
  413.         fadds  60(%edx)
  414.         fstps  48(%ecx)
  415.         flds   60(%edx)
  416.         fsubs  48(%edx)
  417.         fmuls 112(%ebx)
  418.         fstps  60(%ecx)
  419.         flds   52(%edx)
  420.         fadds  56(%edx)
  421.         fstps  52(%ecx)
  422.         flds   56(%edx)
  423.         fsubs  52(%edx)
  424.         fmuls 116(%ebx)
  425.         fstps  56(%ecx)
  426.         flds   64(%edx)
  427.         fadds  76(%edx)
  428.         fstps  64(%ecx)
  429.         flds   64(%edx)
  430.         fsubs  76(%edx)
  431.         fmuls 112(%ebx)
  432.         fstps  76(%ecx)
  433.         flds   68(%edx)
  434.         fadds  72(%edx)
  435.         fstps  68(%ecx)
  436.         flds   68(%edx)
  437.         fsubs  72(%edx)
  438.         fmuls 116(%ebx)
  439.         fstps  72(%ecx)
  440.         flds   80(%edx)
  441.         fadds  92(%edx)
  442.         fstps  80(%ecx)
  443.         flds   92(%edx)
  444.         fsubs  80(%edx)
  445.         fmuls 112(%ebx)
  446.         fstps  92(%ecx)
  447.         flds   84(%edx)
  448.         fadds  88(%edx)
  449.         fstps  84(%ecx)
  450.         flds   88(%edx)
  451.         fsubs  84(%edx)
  452.         fmuls 116(%ebx)
  453.         fstps  88(%ecx)
  454.         flds   96(%edx)
  455.         fadds 108(%edx)
  456.         fstps  96(%ecx)
  457.         flds   96(%edx)
  458.         fsubs 108(%edx)
  459.         fmuls 112(%ebx)
  460.         fstps 108(%ecx)
  461.         flds  100(%edx)
  462.         fadds 104(%edx)
  463.         fstps 100(%ecx)
  464.         flds  100(%edx)
  465.         fsubs 104(%edx)
  466.         fmuls 116(%ebx)
  467.         fstps 104(%ecx)
  468.         flds  112(%edx)
  469.         fadds 124(%edx)
  470.         fstps 112(%ecx)
  471.         flds  124(%edx)
  472.         fsubs 112(%edx)
  473.         fmuls 112(%ebx)
  474.         fstps 124(%ecx)
  475.         flds  116(%edx)
  476.         fadds 120(%edx)
  477.         fstps 116(%ecx)
  478.         flds  120(%edx)
  479.         fsubs 116(%edx)
  480.         fmuls 116(%ebx)
  481.         fstps 120(%ecx)
  482.        
  483.         flds   32(%ecx)
  484.         fadds  36(%ecx)
  485.         fstps  32(%edx)
  486.         flds   32(%ecx)
  487.         fsubs  36(%ecx)
  488.         fmuls 120(%ebx)
  489.         fstps  36(%edx)
  490.         flds   44(%ecx)
  491.         fsubs  40(%ecx)
  492.         fmuls 120(%ebx)
  493.         fsts   44(%edx)
  494.         fadds  40(%ecx)
  495.         fadds  44(%ecx)
  496.         fstps  40(%edx)
  497.         flds   48(%ecx)
  498.         fsubs  52(%ecx)
  499.         fmuls 120(%ebx)
  500.         flds   60(%ecx)
  501.         fsubs  56(%ecx)
  502.         fmuls 120(%ebx)
  503.         fld      %st(0)
  504.         fadds  56(%ecx)
  505.         fadds  60(%ecx)
  506.         fld      %st(0)
  507.         fadds  48(%ecx)
  508.         fadds  52(%ecx)
  509.         fstps  48(%edx)
  510.         fadd     %st(2)
  511.         fstps  56(%edx)
  512.         fsts   60(%edx)
  513.         faddp    %st(1)
  514.         fstps  52(%edx)
  515.         flds   64(%ecx)
  516.         fadds  68(%ecx)
  517.         fstps  64(%edx)
  518.         flds   64(%ecx)
  519.         fsubs  68(%ecx)
  520.         fmuls 120(%ebx)
  521.         fstps  68(%edx)
  522.         flds   76(%ecx)
  523.         fsubs  72(%ecx)
  524.         fmuls 120(%ebx)
  525.         fsts   76(%edx)
  526.         fadds  72(%ecx)
  527.         fadds  76(%ecx)
  528.         fstps  72(%edx)
  529.         flds   92(%ecx)
  530.         fsubs  88(%ecx)
  531.         fmuls 120(%ebx)
  532.         fsts   92(%edx)
  533.         fadds  92(%ecx)
  534.         fadds  88(%ecx)
  535.         fld      %st(0)
  536.         fadds  80(%ecx)
  537.         fadds  84(%ecx)
  538.         fstps  80(%edx)
  539.         flds   80(%ecx)
  540.         fsubs  84(%ecx)
  541.         fmuls 120(%ebx)
  542.         fadd  %st(0), %st(1)
  543.         fadds 92(%edx)
  544.         fstps 84(%edx)
  545.         fstps 88(%edx)
  546.         flds   96(%ecx)
  547.         fadds 100(%ecx)
  548.         fstps  96(%edx)
  549.         flds   96(%ecx)
  550.         fsubs 100(%ecx)
  551.         fmuls 120(%ebx)
  552.         fstps 100(%edx)
  553.         flds  108(%ecx)
  554.         fsubs 104(%ecx)
  555.         fmuls 120(%ebx)
  556.         fsts  108(%edx)
  557.         fadds 104(%ecx)
  558.         fadds 108(%ecx)
  559.         fstps 104(%edx)
  560.         flds  124(%ecx)
  561.         fsubs 120(%ecx)
  562.         fmuls 120(%ebx)
  563.         fsts  124(%edx)
  564.         fadds 120(%ecx)
  565.         fadds 124(%ecx)
  566.         fld      %st(0)
  567.         fadds 112(%ecx)
  568.         fadds 116(%ecx)
  569.         fstps 112(%edx)
  570.         flds  112(%ecx)
  571.         fsubs 116(%ecx)
  572.         fmuls 120(%ebx)
  573.         fadd  %st(0),%st(1)
  574.         fadds 124(%edx)
  575.         fstps 116(%edx)
  576.         fstps 120(%edx)
  577.         jnz .L01
  578.        
  579.         flds      (%ecx)
  580.         fadds    4(%ecx)
  581.         fstps 1024(%esi)
  582.         flds      (%ecx)
  583.         fsubs    4(%ecx)
  584.         fmuls  120(%ebx)
  585.         fsts      (%esi)
  586.         fstps     (%edi)
  587.         flds   12(%ecx)
  588.         fsubs   8(%ecx)
  589.         fmuls 120(%ebx)
  590.         fsts  512(%edi)
  591.         fadds  12(%ecx)
  592.         fadds   8(%ecx)
  593.         fstps 512(%esi)
  594.         flds   16(%ecx)
  595.         fsubs  20(%ecx)
  596.         fmuls 120(%ebx)
  597.         flds   28(%ecx)
  598.         fsubs  24(%ecx)
  599.         fmuls 120(%ebx)
  600.         fsts  768(%edi)
  601.         fld      %st(0)
  602.         fadds  24(%ecx)
  603.         fadds  28(%ecx)
  604.         fld      %st(0)
  605.         fadds  16(%ecx)
  606.         fadds  20(%ecx)
  607.         fstps 768(%esi)
  608.         fadd     %st(2)
  609.         fstps 256(%esi)
  610.         faddp    %st(1)
  611.         fstps 256(%edi)
  612.        
  613.         flds   32(%edx)
  614.         fadds  48(%edx)
  615.         fstps 896(%esi)
  616.         flds   48(%edx)
  617.         fadds  40(%edx)
  618.         fstps 640(%esi)
  619.         flds   40(%edx)
  620.         fadds  56(%edx)
  621.         fstps 384(%esi)
  622.         flds   56(%edx)
  623.         fadds  36(%edx)
  624.         fstps 128(%esi)
  625.         flds   36(%edx)
  626.         fadds  52(%edx)
  627.         fstps 128(%edi)
  628.         flds   52(%edx)
  629.         fadds  44(%edx)
  630.         fstps 384(%edi)
  631.         flds   60(%edx)
  632.         fsts  896(%edi)
  633.         fadds  44(%edx)
  634.         fstps 640(%edi)
  635.         flds   96(%edx)
  636.         fadds 112(%edx)
  637.         fld      %st(0)
  638.         fadds  64(%edx)
  639.         fstps 960(%esi)
  640.         fadds  80(%edx)
  641.         fstps 832(%esi)
  642.         flds  112(%edx)
  643.         fadds 104(%edx)
  644.         fld      %st(0)
  645.         fadds  80(%edx)
  646.         fstps 704(%esi)
  647.         fadds  72(%edx)
  648.         fstps 576(%esi)
  649.         flds  104(%edx)
  650.         fadds 120(%edx)
  651.         fld      %st(0)
  652.         fadds  72(%edx)
  653.         fstps 448(%esi)
  654.         fadds  88(%edx)
  655.         fstps 320(%esi)
  656.         flds  120(%edx)
  657.         fadds 100(%edx)
  658.         fld      %st(0)
  659.         fadds  88(%edx)
  660.         fstps 192(%esi)
  661.         fadds  68(%edx)
  662.         fstps  64(%esi)
  663.         flds  100(%edx)
  664.         fadds 116(%edx)
  665.         fld      %st(0)
  666.         fadds  68(%edx)
  667.         fstps  64(%edi)
  668.         fadds  84(%edx)
  669.         fstps 192(%edi)
  670.         flds  116(%edx)
  671.         fadds 108(%edx)
  672.         fld      %st(0)
  673.         fadds  84(%edx)
  674.         fstps 320(%edi)
  675.         fadds  76(%edx)
  676.         fstps 448(%edi)
  677.         flds  108(%edx)
  678.         fadds 124(%edx)
  679.         fld      %st(0)
  680.         fadds  76(%edx)
  681.         fstps 576(%edi)
  682.         fadds  92(%edx)
  683.         fstps 704(%edi)
  684.         flds  124(%edx)
  685.         fsts  960(%edi)
  686.         fadds  92(%edx)
  687.         fstps 832(%edi)
  688.         addl $256,%esp
  689.         popl %edi
  690.         popl %esi
  691.         popl %ebx
  692.         ret
  693. .L01:  
  694.         flds      (%ecx)
  695.         fadds    4(%ecx)
  696.         fistps 512(%esi)
  697.         flds      (%ecx)
  698.         fsubs    4(%ecx)
  699.         fmuls  120(%ebx)
  700.  
  701.         fistps    (%esi)
  702.  
  703.         flds    12(%ecx)
  704.         fsubs    8(%ecx)
  705.         fmuls  120(%ebx)
  706.         fists  256(%edi)
  707.         fadds   12(%ecx)
  708.         fadds    8(%ecx)
  709.         fistps 256(%esi)
  710.         flds   16(%ecx)
  711.         fsubs  20(%ecx)
  712.         fmuls 120(%ebx)
  713.         flds   28(%ecx)
  714.         fsubs  24(%ecx)
  715.         fmuls 120(%ebx)
  716.         fists 384(%edi)
  717.         fld      %st(0)
  718.         fadds  24(%ecx)
  719.         fadds  28(%ecx)
  720.         fld      %st(0)
  721.         fadds  16(%ecx)
  722.         fadds  20(%ecx)
  723.         fistps 384(%esi)
  724.         fadd     %st(2)
  725.         fistps 128(%esi)
  726.         faddp    %st(1)
  727.         fistps 128(%edi)
  728.        
  729.         flds    32(%edx)
  730.         fadds   48(%edx)
  731.         fistps 448(%esi)
  732.         flds   48(%edx)
  733.         fadds  40(%edx)
  734.         fistps 320(%esi)
  735.         flds   40(%edx)
  736.         fadds  56(%edx)
  737.         fistps 192(%esi)
  738.         flds   56(%edx)
  739.         fadds  36(%edx)
  740.         fistps 64(%esi)
  741.         flds   36(%edx)
  742.         fadds  52(%edx)
  743.         fistps 64(%edi)
  744.         flds   52(%edx)
  745.         fadds  44(%edx)
  746.         fistps 192(%edi)
  747.         flds   60(%edx)
  748.         fists  448(%edi)
  749.         fadds  44(%edx)
  750.         fistps 320(%edi)
  751.         flds   96(%edx)
  752.         fadds 112(%edx)
  753.         fld      %st(0)
  754.         fadds  64(%edx)
  755.         fistps 480(%esi)
  756.         fadds  80(%edx)
  757.         fistps 416(%esi)
  758.         flds  112(%edx)
  759.         fadds 104(%edx)
  760.         fld      %st(0)
  761.         fadds  80(%edx)
  762.         fistps 352(%esi)
  763.         fadds  72(%edx)
  764.         fistps 288(%esi)
  765.         flds  104(%edx)
  766.         fadds 120(%edx)
  767.         fld      %st(0)
  768.         fadds  72(%edx)
  769.         fistps 224(%esi)
  770.         fadds  88(%edx)
  771.         fistps 160(%esi)
  772.         flds  120(%edx)
  773.         fadds 100(%edx)
  774.         fld      %st(0)
  775.         fadds  88(%edx)
  776.         fistps 96(%esi)
  777.         fadds  68(%edx)
  778.         fistps 32(%esi)
  779.         flds  100(%edx)
  780.         fadds 116(%edx)
  781.         fld      %st(0)
  782.         fadds  68(%edx)
  783.         fistps 32(%edi)
  784.         fadds  84(%edx)
  785.         fistps 96(%edi)
  786.         flds  116(%edx)
  787.         fadds 108(%edx)
  788.         fld      %st(0)
  789.         fadds  84(%edx)
  790.         fistps 160(%edi)
  791.         fadds  76(%edx)
  792.         fistps 224(%edi)
  793.         flds  108(%edx)
  794.         fadds 124(%edx)
  795.         fld      %st(0)
  796.         fadds  76(%edx)
  797.         fistps 288(%edi)
  798.         fadds  92(%edx)
  799.         fistps 352(%edi)
  800.         flds  124(%edx)
  801.         fists  480(%edi)
  802.         fadds  92(%edx)
  803.         fistps 416(%edi)
  804.         movsw
  805.         addl $256,%esp
  806.         popl %edi
  807.         popl %esi
  808.         popl %ebx
  809.         ret
  810.  
  811. NONEXEC_STACK
  812.