"%0 = (A0 -= R0.L*R1.L) (IS) || R0.L = W[%1++%4] || R1.L = W[I0++];\n\t"
void vq_nbest(spx_word16_t *in, const spx_word16_t *codebook, int len, int entries, spx_word32_t *E, int N, int *nbest, spx_word32_t *best_dist, char *stack){   int i,k,used;   used = 0;   for (i=0;i<entries;i++)   {      spx_word32_t dist;      __asm__            (            "%0 >>= 1;\n\t"            "A0 = %0;\n\t"            "I0 = %3;\n\t"            "L0 = 0;\n\t"            "R0.L = W[%1++%4] || R1.L = W[I0++];\n\t"            "LOOP vq_loop%= LC0 = %2;\n\t"            "LOOP_BEGIN vq_loop%=;\n\t"            "LOOP_END vq_loop%=;\n\t"               "%0 = (A0 -= R0.L*R1.L) (IS) || R0.L = W[%1++%4] || R1.L = W[I0++];\n\t"            "%0 = (A0 -= R0.L*R1.L) (IS);\n\t"         : "=D" (dist), "=a" (codebook)         : "a" (len-1), "a" (in), "a" (2), "1" (codebook), "0" (E[i])         : "R0", "R1", "I0", "L0", "A0"            );      if (i<N || dist<best_dist[N-1])      {         for (k=N-1; (k >= 1) && (k > used || dist < best_dist[k-1]); k--)         {            best_dist[k]=best_dist[k-1];            nbest[k] = nbest[k-1];         }         best_dist[k]=dist;         nbest[k]=i;         used++;      }   }}