"P2 += 2;\n\t"
void compute_weighted_codebook(const signed char *shape_cb, const spx_word16_t *r, spx_word16_t *resp, spx_word16_t *resp2, spx_word32_t *E, int shape_cb_size, int subvect_size, char *stack){   int i;   for (i=0;i<shape_cb_size;i++)   {      __asm__ __volatile__ (         "P0 = %0;\n\t"         "LC0 = P0;\n\t"         "P1 = %1;\n\t"         "P2 = %2;\n\t"         "P3 = %3;\n\t"         "P0 = 1;\n\t"         "L0 = 0;\n\t"         "L1 = 0;\n\t"         "R2 = 0;\n\t"         "A1 = 0;\n\t"         "LOOP outter%= LC0;\n\t"         "LOOP_BEGIN outter%=;\n\t"            "A0 = 0;\n\t"            "P4 = P1;\n\t"            "I1 = P2;\n\t"            "R0 = B[P4++] (X) || R1.L = W[I1--];\n\t"            "LOOP inner%= LC1 = P0;\n\t"            "LOOP_BEGIN inner%=;\n\t"            "LOOP_END inner%=;\n\t"               "A0 += R0.L*R1.L (IS) || R0 = B[P4++] (X) || R1.L = W[I1--];\n\t" /* Is there a danger of reading too far? */            "R0 = A0;\n\t"            "R0 >>>= 11;\n\t"            "A1 += R0.L*R0.L (IS);\n\t"            "W[P3++] = R0;\n\t"            "P0 += 1;\n\t"         "LOOP_END outter%=;\n\t"            "P2 += 2;\n\t"         "P4 = %4;\n\t"         "R1 = A1;\n\t"         "[P4] = R1;\n\t"         :      : "m" (subvect_size), "m" (shape_cb), "m" (r), "m" (resp), "m" (E)      : "P0", "P1", "P2", "P3", "P4", "R0", "R1", "R2", "R3", "R4", "R5", "R6", "R7", "I0", "I1", "L0", "L1", "B0", "B1", "A0", "A1", "memory"      );      shape_cb += subvect_size;      resp += subvect_size;      E++;   }}