anchor.diff:        JpegComponent component = frame.components[id];
         components[i] = component;
   
  -      int dc_tbl_no = (c >> 4) & 15;
  +      int dc_tbl_no = _shiftR(c, 4) & 15;
         int ac_tbl_no = c & 15;
   
         if (dc_tbl_no < huffmanTablesDC.length) {
  
positive.code:       }
  
        // stage 4
        int v0 = ((Jpeg.dctSqrt2 * p[0 * 8 + col] + 2048) >> 12);
        int v1 = ((Jpeg.dctSqrt2 * p[4 * 8 + col] + 2048) >> 12);
        int v2 = p[2 * 8 + col];
        int v3 = p[6 * 8 + col];
        int v4 = ((Jpeg.dctSqrt1d2 * (p[1 * 8 + col] - p[7*8 + col]) + 2048) >> 12);
        int v7 = ((Jpeg.dctSqrt1d2 * (p[1 * 8 + col] + p[7*8 + col]) + 2048) >> 12);
        int v5 = p[3 * 8 + col];
        int v6 = p[5 * 8 + col];
  
        // stage 3
        int t = ((v0 - v1 + 1) >> 1);
        v0 = ((v0 + v1 + 1) >> 1);
        v1 = t;
        t = ((v2 * Jpeg.dctSin6 + v3 * Jpeg.dctCos6 + 2048) >> 12);
        v2 = ((v2 * Jpeg.dctCos6 - v3 * Jpeg.dctSin6 + 2048) >> 12);
        v3 = t;
        t = ((v4 - v6 + 1) >> 1);
        v4 = ((v4 + v6 + 1) >> 1);
        v6 = t;
        t = ((v7 + v5 + 1) >> 1);
        v5 = ((v7 - v5 + 1) >> 1);
        v7 = t;
  
        // stage 2
        t = ((v0 - v3 + 1) >> 1);
        v0 = ((v0 + v3 + 1) >> 1);
        v3 = t;
        t = ((v1 - v2 + 1) >> 1);
        v1 = ((v1 + v2 + 1) >> 1);
        v2 = t;
        t = ((v4 * Jpeg.dctSin3 + v7 * Jpeg.dctCos3 + 2048) >> 12);
        v4 = ((v4 * Jpeg.dctCos3 - v7 * Jpeg.dctSin3 + 2048) >> 12);
        v7 = t;
        t = ((v5 * Jpeg.dctSin1 + v6 * Jpeg.dctCos1 + 2048) >> 12);
        v5 = ((v5 * Jpeg.dctCos1 - v6 * Jpeg.dctSin1 + 2048) >> 12);
        v6 = t;
  
        // stage 1
  
negative.code: 
      // convert to 8-bit integers
      for (int i = 0; i < 64; ++i) {
        int sample = (128 + _shiftR((p[i] + 8), 4));
        dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample;
      }
    }
  