/[svn]/linuxsampler/trunk/src/engines/gig/Synthesizer.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/gig/Synthesizer.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 335 by senkov, Sat Jan 1 03:06:06 2005 UTC revision 336 by senkov, Mon Jan 3 03:33:51 2005 UTC
# Line 183  namespace LinuxSampler { namespace gig { Line 183  namespace LinuxSampler { namespace gig {
183                      }                      }
184                      #if ARCH_X86                      #if ARCH_X86
185                      case ASM_X86_MMX_SSE: {                      case ASM_X86_MMX_SSE: {
186                          int result;                          int result = 0;
187                          __asm__ __volatile__ (                          __asm__ __volatile__ (
188                              "movss  (%2), %%xmm0          # load LoopEnd\n\t"                              "movss  (%2), %%xmm0          # load LoopEnd\n\t"
189                              "movss  (%1), %%xmm1          # load Pos\n\t"                              "movss  (%1), %%xmm1          # load Pos\n\t"
190                              "comiss %%xmm0, %%xmm1      # LoopEnd <> Pos\n\t"                              "comiss %%xmm0, %%xmm1      # LoopEnd <> Pos\n\t"
                             "movl    $0,%%eax            # result = 0\n\t"  
191                              "jb     1f                  # jump if no work needs to be done\n\t"                              "jb     1f                  # jump if no work needs to be done\n\t"
192                              "movss    (%3), %%xmm2        # load LoopSize\n\t"                              "movss    (%3), %%xmm2        # load LoopSize\n\t"
193                              "subss    %%xmm0, %%xmm1    # Pos - LoopEnd\n\t"                              "subss    %%xmm0, %%xmm1    # Pos - LoopEnd\n\t"
# Line 203  namespace LinuxSampler { namespace gig { Line 202  namespace LinuxSampler { namespace gig {
202                              //done with fmodf                              //done with fmodf
203                              "addss    %%xmm0, %%xmm3      # add LoopStart\n\t"                              "addss    %%xmm0, %%xmm3      # add LoopStart\n\t"
204                              "movss    %%xmm3, (%1)        # update Pos\n\t"                              "movss    %%xmm3, (%1)        # update Pos\n\t"
205                              "movl    $1,%%eax            # result = 1\n\t"                              "movl    $1, (%0)             # result = 1\n\t"
206                              ".balign 16 \n\t"                              ".balign 16 \n\t"
207                              "1:\n\t"                              "1:\n\t"
208                              : "=a" (result)     /* %0 */                              :: "r" (&result),   /* %0 */
209                              : "r"  (vPos),      /* %1 */                                "r"  (vPos),      /* %1 */
210                                "r"  (&LoopEnd),  /* %2 */                                "r"  (&LoopEnd),  /* %2 */
211                                "r"  (&LoopSize), /* %3 */                                "r"  (&LoopSize), /* %3 */
212                                "r"  (&LoopStart) /* %4 */                                "r"  (&LoopStart) /* %4 */

Legend:
Removed from v.335  
changed lines
  Added in v.336

  ViewVC Help
Powered by ViewVC