15e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh/* 25e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 35e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 45e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 55e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh */ 65e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 75e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/gsm_implode.c,v 1.2 1996/07/02 14:32:43 jutta Exp jutta $ */ 85e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 95e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#include "private.h" 105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#include "gsm.h" 125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#include "proto.h" 135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yehvoid gsm_implode P3((s, source, c), gsm s, gsm_signal * source, gsm_byte * c) 155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh{ 165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh /* variable size index 175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh GSM_MAGIC 4 - 195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[0] 6 0 215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[1] 6 1 225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[2] 5 2 235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[3] 5 3 245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[4] 4 4 255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[5] 4 5 265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[6] 3 6 275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh LARc[7] 3 7 285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Nc[0] 7 8 305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh bc[0] 2 9 315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Mc[0] 2 10 325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmaxc[0] 6 11 335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[0] 3 12 345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[1] 3 13 355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[2] 3 14 365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[3] 3 15 375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[4] 3 16 385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[5] 3 17 395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[6] 3 18 405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[7] 3 19 415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[8] 3 20 425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[9] 3 21 435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[10] 3 22 445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[11] 3 23 455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[12] 3 24 465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Nc[1] 7 25 485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh bc[1] 2 26 495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Mc[1] 2 27 505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmaxc[1] 6 28 515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[13] 3 29 525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[14] 3 30 535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[15] 3 31 545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[16] 3 32 555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[17] 3 33 565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[18] 3 34 575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[19] 3 35 585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[20] 3 36 595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[21] 3 37 605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[22] 3 38 615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[23] 3 39 625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[24] 3 40 635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[25] 3 41 645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Nc[2] 7 42 665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh bc[2] 2 43 675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Mc[2] 2 44 685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmaxc[2] 6 45 695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[26] 3 46 705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[27] 3 47 715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[28] 3 48 725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[29] 3 49 735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[30] 3 50 745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[31] 3 51 755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[32] 3 52 765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[33] 3 53 775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[34] 3 54 785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[35] 3 55 795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[36] 3 56 805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[37] 3 57 815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[38] 3 58 825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Nc[3] 7 59 845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh bc[3] 2 60 855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh Mc[3] 2 61 865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmaxc[3] 6 62 875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[39] 3 63 885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[40] 3 64 895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[41] 3 65 905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[42] 3 66 915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[43] 3 67 925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[44] 3 68 935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[45] 3 69 945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[46] 3 70 955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[47] 3 71 965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[48] 3 72 975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[49] 3 73 985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[50] 3 74 995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh xmc[51] 3 75 1005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh */ 1015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh /* There are 76 parameters per frame. The first eight are 1035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * unique. The remaining 68 are four identical subframes of 1045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * 17 parameters each. gsm_implode converts from a representation 1055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * of these parameters as values in one array of signed words 1065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh * to the "packed" version of a GSM frame. 1075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh */ 1085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh# define LARc source 1105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh# define Nc *((gsm_signal (*) [17])(source + 8)) 1115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh# define bc *((gsm_signal (*) [17])(source + 9)) 1125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh# define Mc *((gsm_signal (*) [17])(source + 10)) 1135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh# define xmaxc *((gsm_signal (*) [17])(source + 11)) 1145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#ifdef WAV49 1165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh if (s->wav_fmt) { 1175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh uword sr = 0; 1195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh if (s->frame_index) { 1205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | LARc[0] << 10; 1215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | LARc[1] << 10; 1225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 4; 1235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 5 | LARc[2] << 11; 1245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 1255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 5 | LARc[3] << 11; 1265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 4 | LARc[4] << 12; 1275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 1285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 4 | LARc[5] << 12; 1295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | LARc[6] << 13; 1305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 1315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | LARc[7] << 13; 1325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[0] << 9; 1335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 5; 1345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[0] << 14; 1355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[0] << 14; 1365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[0] << 10; 1375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 3; 1385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 1395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 12) 1405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[0] << 13; 1425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 1435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[1] << 13; 1445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[2] << 13; 1455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[3] << 13; 1465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 1475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[4] << 13; 1485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[5] << 13; 1495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[6] << 13; 1505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 1515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[7] << 13; 1525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[8] << 13; 1535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 1545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[9] << 13; 1555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[10] << 13; 1565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[11] << 13; 1575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 1585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[12] << 13; 1595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[1] << 9; 1605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 5; 1615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[1] << 14; 1625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[1] << 14; 1635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[1] << 10; 1645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 3; 1655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 1665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 29 - 13) 1675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[13] << 13; 1695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 1705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[14] << 13; 1715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[15] << 13; 1725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[16] << 13; 1735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 1745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[17] << 13; 1755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[18] << 13; 1765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[19] << 13; 1775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 1785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[20] << 13; 1795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[21] << 13; 1805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 1815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[22] << 13; 1825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[23] << 13; 1835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[24] << 13; 1845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 1855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[25] << 13; 1865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[2] << 9; 1875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 5; 1885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[2] << 14; 1895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[2] << 14; 1905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[2] << 10; 1915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 3; 1925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 1935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 46 - 26) 1945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 1955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[26] << 13; 1965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 1975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[27] << 13; 1985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[28] << 13; 1995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[29] << 13; 2005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[30] << 13; 2025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[31] << 13; 2035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[32] << 13; 2045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[33] << 13; 2065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[34] << 13; 2075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[35] << 13; 2095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[36] << 13; 2105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[37] << 13; 2115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[38] << 13; 2135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[3] << 9; 2145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 5; 2155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[3] << 14; 2165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[3] << 14; 2175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[3] << 10; 2185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 3; 2195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 2205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 63 - 39) 2215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 2225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[39] << 13; 2235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[40] << 13; 2255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[41] << 13; 2265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[42] << 13; 2275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[43] << 13; 2295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[44] << 13; 2305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[45] << 13; 2315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[46] << 13; 2335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[47] << 13; 2345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[48] << 13; 2365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[49] << 13; 2375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[50] << 13; 2385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[51] << 13; 2405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 4; 2415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c = sr >> 8; 2425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh s->frame_chain = *c; 2435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh } 2445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh else { 2455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 4 | s->frame_chain << 12; 2465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | LARc[0] << 10; 2475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | LARc[1] << 10; 2495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 5 | LARc[2] << 11; 2515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 5 | LARc[3] << 11; 2525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 4 | LARc[4] << 12; 2545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 4 | LARc[5] << 12; 2555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | LARc[6] << 13; 2575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | LARc[7] << 13; 2585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[0] << 9; 2605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[0] << 14; 2615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[0] << 14; 2635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[0] << 10; 2645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 2665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 12) 2675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 2685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[0] << 13; 2695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[1] << 13; 2705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[2] << 13; 2715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[3] << 13; 2735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[4] << 13; 2745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[5] << 13; 2765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[6] << 13; 2775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[7] << 13; 2785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[8] << 13; 2805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[9] << 13; 2815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[10] << 13; 2825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[11] << 13; 2845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[12] << 13; 2855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 2865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[1] << 9; 2875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[1] << 14; 2885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[1] << 14; 2905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[1] << 10; 2915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 2925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 2935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 29 - 13) 2945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 2955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[13] << 13; 2965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[14] << 13; 2975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[15] << 13; 2985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 2995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[16] << 13; 3005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[17] << 13; 3015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 3025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[18] << 13; 3035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[19] << 13; 3045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[20] << 13; 3055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[21] << 13; 3075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[22] << 13; 3085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[23] << 13; 3095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 3105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[24] << 13; 3115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[25] << 13; 3125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 3135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[2] << 9; 3145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[2] << 14; 3155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[2] << 14; 3175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[2] << 10; 3185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 3205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 46 - 26) 3215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[26] << 13; 3235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[27] << 13; 3245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[28] << 13; 3255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 3265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[29] << 13; 3275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[30] << 13; 3285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 3295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[31] << 13; 3305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[32] << 13; 3315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[33] << 13; 3325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[34] << 13; 3345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[35] << 13; 3355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[36] << 13; 3365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 3375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[37] << 13; 3385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[38] << 13; 3395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 3405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 7 | Nc[3] << 9; 3415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | bc[3] << 14; 3425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 2 | Mc[3] << 14; 3445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 6 | xmaxc[3] << 10; 3455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 3475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 63 - 39) 3485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[39] << 13; 3505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[40] << 13; 3515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[41] << 13; 3525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 3535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[42] << 13; 3545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[43] << 13; 3555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 3565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[44] << 13; 3575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[45] << 13; 3585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[46] << 13; 3595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 7; 3605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[47] << 13; 3615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[48] << 13; 3625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[49] << 13; 3635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 6; 3645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[50] << 13; 3655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh sr = sr >> 3 | xmc[51] << 13; 3665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = sr >> 8; 3675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh } 3685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh } 3695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh else 3705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#endif 3715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh { 3725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */ 3745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((LARc[0] >> 2) & 0xF); 3755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((LARc[0] & 0x3) << 6) 3765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (LARc[1] & 0x3F); 3775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((LARc[2] & 0x1F) << 3) 3785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((LARc[3] >> 2) & 0x7); 3795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((LARc[3] & 0x3) << 6) 3805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((LARc[4] & 0xF) << 2) 3815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((LARc[5] >> 2) & 0x3); 3825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((LARc[5] & 0x3) << 6) 3835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((LARc[6] & 0x7) << 3) 3845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (LARc[7] & 0x7); 3855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((Nc[0] & 0x7F) << 1) 3885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((bc[0] >> 1) & 0x1); 3915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((bc[0] & 0x1) << 7) 3925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((Mc[0] & 0x3) << 5) 3955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmaxc[0] >> 1) & 0x1F); 3975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmaxc[0] & 0x1) << 7) 3985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 3995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 4005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 12) 4015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[0] & 0x7) << 4) 4035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[1] & 0x7) << 1) 4045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[2] >> 2) & 0x1); 4055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[2] & 0x3) << 6) 4065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[3] & 0x7) << 3) 4075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[4] & 0x7); 4085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[5] & 0x7) << 5) /* 10 */ 4095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[6] & 0x7) << 2) 4105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[7] >> 1) & 0x3); 4115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[7] & 0x1) << 7) 4125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[8] & 0x7) << 4) 4135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[9] & 0x7) << 1) 4145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[10] >> 2) & 0x1); 4155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[10] & 0x3) << 6) 4165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[11] & 0x7) << 3) 4175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[12] & 0x7); 4185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((Nc[1] & 0x7F) << 1) 4215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4225e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4235e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((bc[1] >> 1) & 0x1); 4245e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((bc[1] & 0x1) << 7) 4255e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4265e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4275e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((Mc[1] & 0x3) << 5) 4285e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4295e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4305e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmaxc[1] >> 1) & 0x1F); 4315e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmaxc[1] & 0x1) << 7) 4325e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4335e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 4345e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 29 - 13) 4355e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4365e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[13] & 0x7) << 4) 4375e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[14] & 0x7) << 1) 4385e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[15] >> 2) & 0x1); 4395e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[15] & 0x3) << 6) 4405e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[16] & 0x7) << 3) 4415e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[17] & 0x7); 4425e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[18] & 0x7) << 5) 4435e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[19] & 0x7) << 2) 4445e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[20] >> 1) & 0x3); 4455e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[20] & 0x1) << 7) 4465e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[21] & 0x7) << 4) 4475e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[22] & 0x7) << 1) 4485e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[23] >> 2) & 0x1); 4495e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[23] & 0x3) << 6) 4505e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[24] & 0x7) << 3) 4515e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[25] & 0x7); 4525e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4535e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4545e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((Nc[2] & 0x7F) << 1) /* 20 */ 4555e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4565e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4575e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((bc[2] >> 1) & 0x1); 4585e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((bc[2] & 0x1) << 7) 4595e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4605e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4615e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((Mc[2] & 0x3) << 5) 4625e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4635e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4645e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmaxc[2] >> 1) & 0x1F); 4655e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmaxc[2] & 0x1) << 7) 4665e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4675e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 4685e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 46 - 26) 4695e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4705e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[26] & 0x7) << 4) 4715e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[27] & 0x7) << 1) 4725e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[28] >> 2) & 0x1); 4735e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[28] & 0x3) << 6) 4745e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[29] & 0x7) << 3) 4755e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[30] & 0x7); 4765e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[31] & 0x7) << 5) 4775e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[32] & 0x7) << 2) 4785e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[33] >> 1) & 0x3); 4795e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[33] & 0x1) << 7) 4805e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[34] & 0x7) << 4) 4815e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[35] & 0x7) << 1) 4825e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[36] >> 2) & 0x1); 4835e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[36] & 0x3) << 6) 4845e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[37] & 0x7) << 3) 4855e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[38] & 0x7); 4865e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4875e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4885e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((Nc[3] & 0x7F) << 1) 4895e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4905e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4915e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((bc[3] >> 1) & 0x1); 4925e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((bc[3] & 0x1) << 7) 4935e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4945e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4955e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((Mc[3] & 0x3) << 5) 4965e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4975e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 4985e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmaxc[3] >> 1) & 0x1F); 4995e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmaxc[3] & 0x1) << 7) 5005e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 5015e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#undef xmc 5025e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh#define xmc (source + 63 - 39) 5035e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh 5045e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[39] & 0x7) << 4) 5055e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[40] & 0x7) << 1) 5065e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[41] >> 2) & 0x1); 5075e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[41] & 0x3) << 6) /* 30 */ 5085e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[42] & 0x7) << 3) 5095e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[43] & 0x7); 5105e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[44] & 0x7) << 5) 5115e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[45] & 0x7) << 2) 5125e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[46] >> 1) & 0x3); 5135e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[46] & 0x1) << 7) 5145e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[47] & 0x7) << 4) 5155e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[48] & 0x7) << 1) 5165e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[49] >> 2) & 0x1); 5175e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh *c++ = ((xmc[49] & 0x3) << 6) 5185e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | ((xmc[50] & 0x7) << 3) 5195e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh | (xmc[51] & 0x7); 5205e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh } 5215e4516958690b9a1b2c98f88eeecba3edd2dbda4Chia-chi Yeh} 522