亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? math32x.h

?? FreeRTOS 是一個源碼公開的免費的嵌入式實時操作系統
?? H
?? 第 1 頁 / 共 2 頁
字號:
#pragma library 1
/*
fixed8_24 operator* _xmul8_24( fixed8_24 arg1, fixed8_24 arg2);
fixedU8_24 operator* _xmulU8_24( fixedU8_24 arg1, fixedU8_24 arg2);
fixed8_24 operator/ _xdiv8_24( fixed8_24 arg1, fixed8_24 arg2);
fixedU8_24 operator/ _xdivU8_24( fixedU8_24 arg1, fixedU8_24 arg2);
fixed16_16 operator* _xmul16_16( fixed16_16 arg1, fixed16_16 arg2);
fixedU16_16 operator* _xmulU16_16( fixedU16_16 arg1, fixedU16_16 arg2);
fixed16_16 operator/ _xdiv16_16( fixed16_16 arg1, fixed16_16 arg2);
fixedU16_16 operator/ _xdivU16_16( fixedU16_16 arg1, fixedU16_16 arg2);
fixed24_8 operator* _xmul24_8( fixed24_8 arg1, fixed24_8 arg2);
fixedU24_8 operator* _xmulU24_8( fixedU24_8 arg1, fixedU24_8 arg2);
fixed24_8 operator/ _xdiv24_8( fixed24_8 arg1, fixed24_8 arg2);
fixedU24_8 operator/ _xdivU24_8( fixedU24_8 arg1, fixedU24_8 arg2);
*/

// DEFINABLE SYMBOLS (in the application code):
//#define FX_OPTIM_SPEED  // optimize for SPEED: default
//#define FX_OPTIM_SIZE   // optimize for SIZE

#if __CoreSet__ < 1200  ||  __CoreSet__ >= 2100
 #error math32x.h does not support the selected device
#endif

#if __CoreSet__ < 1600
 #define genAdd(r,a) W=a; btsc(Carry); W=incsz(a); r+=W;
 #define genSub(r,a) W=a; btss(Carry); W=incsz(a); r-=W;
 #define genAddW(r,a) W=a; btsc(Carry); W=incsz(a); W=r+W;
 #define genSubW(r,a) W=a; btss(Carry); W=incsz(a); W=r-W;
#else
 #define genAdd(r,a) W=a; r=addWFC(r);
 #define genSub(r,a) W=a; r=subWFB(r);
 #define genAddW(r,a) W=a; W=addWFC(r);
 #define genSubW(r,a) W=a; W=subWFB(r);
#endif

#if defined FX_OPTIM_SIZE
 // do not use 8*8 bit HW multiplier
#elif __CoreSet__ == 1700 || __CoreSet__ == 1800
 #define hw_mult8x8(a,b)  { W = a; multiply(b); }
 #define loRES PRODL
 #define hiRES PRODH
#elif __CoreSet__ == 2000
 #define hw_mult8x8(a,b)  { W = a; multiply(b); }
 #define loRES W
 #define hiRES MULH
#endif


fixed8_24 operator* _xmul8_24( fixed8_24 arg1, fixed8_24 arg2)
{
    fixed8_24 rval;
    char sign = arg1.high8 ^ arg2.high8;
    if (arg1 < 0)
        arg1 = -arg1;
    if (arg2 < 0)
        arg2 = -arg2;

   #ifdef hw_mult8x8

    uns8 tmpL, tmpH;

    hw_mult8x8( arg1.low8, arg2.low8);   // p1
    tmpL = hiRES;
    tmpH = 0;
    rval = 0;

    hw_mult8x8( arg1.midL8, arg2.low8);  // p2
    tmpL += loRES;
    genAdd( tmpH, hiRES);
    genAdd( rval.low8, 0);

    hw_mult8x8( arg1.low8, arg2.midL8);  // p2
    tmpL += loRES;
    genAdd( tmpH, hiRES);
    genAdd( rval.low8, 0);

    hw_mult8x8( arg1.midH8, arg2.low8);  // p3
    tmpH += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.midL8, arg2.midL8);  // p3
    tmpH += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.low8, arg2.midH8);  // p3
    tmpH += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.high8, arg2.low8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.midH8, arg2.midL8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.midL8, arg2.midH8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.low8, arg2.high8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.high8, arg2.midL8);  // p5
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.midH8, arg2.midH8);  // p5
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.midL8, arg2.high8);  // p5
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.high8, arg2.midH8);  // p6
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.midH8, arg2.high8);  // p6
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.high8, arg2.high8);  // p7
    rval.high8 += loRES;

   #else

    char counter = sizeof(arg1)*8;
    uns8 rvalH = 0;
    rval.high24 = 0;
    do  {
        arg1 = rr( arg1);
        if (Carry)  {
            rval.midL8 += arg2.low8;
            genAdd( rval.midH8, arg2.midL8);
            genAdd( rval.high8, arg2.midH8);
            genAdd( rvalH, arg2.high8);
        }
        rvalH = rr( rvalH);
        rval = rr( rval);
        counter = decsz(counter);
    } while (1);

   #endif

    if (sign & 0x80)
        rval = -rval;
    return rval;
}



fixedU8_24 operator* _xmulU8_24( fixedU8_24 arg1, fixedU8_24 arg2)
{
    fixedU8_24 rval;

   #ifdef hw_mult8x8

    uns8 tmpL, tmpH;

    hw_mult8x8( arg1.low8, arg2.low8);   // p1
    tmpL = hiRES;
    tmpH = 0;
    rval = 0;

    hw_mult8x8( arg1.midL8, arg2.low8);  // p2
    tmpL += loRES;
    genAdd( tmpH, hiRES);
    genAdd( rval.low8, 0);

    hw_mult8x8( arg1.low8, arg2.midL8);  // p2
    tmpL += loRES;
    genAdd( tmpH, hiRES);
    genAdd( rval.low8, 0);

    hw_mult8x8( arg1.midH8, arg2.low8);  // p3
    tmpH += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.midL8, arg2.midL8);  // p3
    tmpH += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.low8, arg2.midH8);  // p3
    tmpH += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.high8, arg2.low8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.midH8, arg2.midL8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.midL8, arg2.midH8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.low8, arg2.high8);  // p4
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.high8, arg2.midL8);  // p5
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.midH8, arg2.midH8);  // p5
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.midL8, arg2.high8);  // p5
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.high8, arg2.midH8);  // p6
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.midH8, arg2.high8);  // p6
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.high8, arg2.high8);  // p7
    rval.high8 += loRES;

   #else

    char counter = sizeof(arg1)*8;
    uns8 rvalH = 0;
    rval.high24 = 0;
    do  {
        arg1 = rr( arg1);
        if (Carry)  {
            rval.midL8 += arg2.low8;
            genAdd( rval.midH8, arg2.midL8);
            genAdd( rval.high8, arg2.midH8);
            genAdd( rvalH, arg2.high8);
        }
        rvalH = rr( rvalH);
        rval = rr( rval);
        counter = decsz(counter);
    } while (1);

   #endif

    return rval;
}



fixed8_24 operator/ _xdiv8_24( fixed8_24 arg1, fixed8_24 arg2)
{
    fixedU8_24 rm = 0;
    char counter = sizeof(arg1)*8+24+1;
    char c2 = sizeof(arg1)*8 + 1;
    char sign = arg1.high8 ^ arg2.high8;
    if (arg1 < 0)  {
       INVERT:
        arg1 = -arg1;
        if (c2 & 0x80)
            goto EXIT;
    }
    if (arg2 < 0)
        arg2 = -arg2;
    goto ENTRY;
    do  {
        c2 = decsz(c2);
        btsc(c2.7);
        Carry = 0;
        rm = rl( rm);
        W = rm.low8 - arg2.low8;
        genSubW( rm.midL8, arg2.midL8);
        genSubW( rm.midH8, arg2.midH8);
        genSubW( rm.high8, arg2.high8);
        if (!Carry)
            goto ENTRY;
        rm.high8 = W;
        rm.low8 -= arg2.low8;
        genSub( rm.midL8, arg2.midL8);
        genSub( rm.midH8, arg2.midH8);
        Carry = 1;
       ENTRY:
        arg1 = rl( arg1);
        counter = decsz(counter);
    } while (1);
    if (sign & 0x80)
        goto INVERT;
   EXIT:
    return arg1;
}



fixedU8_24 operator/ _xdivU8_24( fixedU8_24 arg1, fixedU8_24 arg2)
{
    fixedU8_24 rm = 0;
    char counter = sizeof(arg1)*8+24+1;
    char c2 = sizeof(arg1)*8 + 1;
    goto ENTRY;
    do  {
        c2 = decsz(c2);
        btsc(c2.7);
        Carry = 0;
        rm = rl( rm);
        if (Carry)
            goto SUBTRACT;
        W = rm.low8 - arg2.low8;
        genSubW( rm.midL8, arg2.midL8);
        genSubW( rm.midH8, arg2.midH8);
        genSubW( rm.high8, arg2.high8);
        if (!Carry)
            goto ENTRY;
       SUBTRACT:
        rm.low8 -= arg2.low8;
        genSub( rm.midL8, arg2.midL8);
        genSub( rm.midH8, arg2.midH8);
        genSub( rm.high8, arg2.high8);
        Carry = 1;
       ENTRY:
        arg1 = rl( arg1);
        counter = decsz(counter);
    } while (1);
    return arg1;
}


fixed16_16 operator* _xmul16_16( fixed16_16 arg1, fixed16_16 arg2)
{
    fixed16_16 rval;
    char sign = arg1.high8 ^ arg2.high8;
    if (arg1 < 0)
        arg1 = -arg1;
    if (arg2 < 0)
        arg2 = -arg2;

   #ifdef hw_mult8x8

    uns8 tmpL;

    hw_mult8x8( arg1.low8, arg2.low8);   // p1
    tmpL = hiRES;
    rval = 0;

    hw_mult8x8( arg1.midL8, arg2.low8);  // p2
    tmpL += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.low8, arg2.midL8);  // p2
    tmpL += loRES;
    genAdd( rval.low8, hiRES);
    genAdd( rval.midL8, 0);

    hw_mult8x8( arg1.midH8, arg2.low8);  // p3
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.midL8, arg2.midL8);  // p3
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.low8, arg2.midH8);  // p3
    rval.low8 += loRES;
    genAdd( rval.midL8, hiRES);
    genAdd( rval.midH8, 0);

    hw_mult8x8( arg1.high8, arg2.low8);  // p4
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.midH8, arg2.midL8);  // p4
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.midL8, arg2.midH8);  // p4
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.low8, arg2.high8);  // p4
    rval.midL8 += loRES;
    genAdd( rval.midH8, hiRES);
    genAdd( rval.high8, 0);

    hw_mult8x8( arg1.high8, arg2.midL8);  // p5
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.midH8, arg2.midH8);  // p5
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.midL8, arg2.high8);  // p5
    rval.midH8 += loRES;
    genAdd( rval.high8, hiRES);

    hw_mult8x8( arg1.high8, arg2.midH8);  // p6
    rval.high8 += loRES;

    hw_mult8x8( arg1.midH8, arg2.high8);  // p6
    rval.high8 += loRES;

   #else

    char counter = sizeof(arg1)*8;
    uns16 rvalH = 0;
    rval.high16 = 0;
    do  {
        arg1 = rr( arg1);
        if (Carry)  {
            rval.midH8 += arg2.low8;
            genAdd( rval.high8, arg2.midL8);
            genAdd( rvalH.low8, arg2.midH8);
            genAdd( rvalH.high8, arg2.high8);
        }
        rvalH = rr( rvalH);
        rval = rr( rval);
        counter = decsz(counter);
    } while (1);

   #endif

    if (sign & 0x80)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频在线| 亚洲欧美日韩在线不卡| 国产欧美一区二区精品久导航 | 欧美在线色视频| 精品国产乱码久久久久久影片| 亚洲色图色小说| 国产福利91精品一区| 欧美一区二区精美| 一区二区三区四区精品在线视频 | 日韩欧美激情四射| 天堂va蜜桃一区二区三区 | 欧美不卡一区二区| 夜夜嗨av一区二区三区中文字幕| 国产老妇另类xxxxx| 91精品国产欧美一区二区成人| 17c精品麻豆一区二区免费| 国产一区二区在线观看视频| 欧美日韩在线精品一区二区三区激情 | 久久国产精品第一页| 欧美日韩国产综合视频在线观看 | 亚洲九九爱视频| 成人app软件下载大全免费| 精品乱人伦小说| 美腿丝袜亚洲色图| 制服丝袜日韩国产| 性久久久久久久| 欧美色综合网站| 亚洲曰韩产成在线| 91久久免费观看| 亚洲资源在线观看| 91丨porny丨户外露出| 中文字幕不卡在线| 成人精品电影在线观看| 国产日韩欧美a| 成人动漫精品一区二区| 国产精品色婷婷| 91视频一区二区| 亚洲精品视频一区二区| 欧美视频在线一区二区三区 | 激情五月婷婷综合网| 日韩欧美一二区| 久久精品国产一区二区三区免费看 | 偷偷要91色婷婷| 在线播放国产精品二区一二区四区 | 美女精品一区二区| 精品粉嫩超白一线天av| 国产精品一区在线| 国产精品久久久久久久久搜平片| 成人动漫视频在线| 一区二区成人在线| 欧美日韩不卡在线| 日本午夜一区二区| 久久精品视频网| 不卡av免费在线观看| 亚洲一区在线观看免费观看电影高清| 欧美卡1卡2卡| 国产精选一区二区三区| 亚洲视频香蕉人妖| 7777精品伊人久久久大香线蕉超级流畅| 欧美a级一区二区| 国产日韩欧美精品一区| 欧美午夜精品久久久久久超碰| 男人操女人的视频在线观看欧美| 26uuu色噜噜精品一区| 99久精品国产| 美女尤物国产一区| 中文字幕一区在线观看视频| 欧美日韩国产a| 国产.精品.日韩.另类.中文.在线.播放| 亚洲色图欧美偷拍| 久久精品男人的天堂| 一本到三区不卡视频| 美女爽到高潮91| 亚洲日本在线看| 久久在线观看免费| 欧美在线|欧美| 高清不卡在线观看av| 丝瓜av网站精品一区二区| 国产精品热久久久久夜色精品三区| 欧美日韩高清一区二区| 成人性生交大片免费看在线播放 | 亚洲精品中文在线| 欧美videofree性高清杂交| 91网页版在线| 国产另类ts人妖一区二区| 调教+趴+乳夹+国产+精品| 国产精品素人一区二区| 欧美成人三级在线| 欧美视频第二页| 91麻豆精东视频| 成人美女视频在线观看| 麻豆91在线观看| 水野朝阳av一区二区三区| 亚洲免费色视频| 国产精品视频第一区| 久久天堂av综合合色蜜桃网| 91精品黄色片免费大全| 欧美午夜免费电影| 在线观看www91| 91年精品国产| 99精品欧美一区二区蜜桃免费| 国产乱人伦偷精品视频免下载| 日韩电影网1区2区| 亚洲国产美国国产综合一区二区| 亚洲欧洲国产日韩| 国产精品天天摸av网| 国产女主播一区| 日韩精品资源二区在线| 日韩久久精品一区| 日韩欧美国产综合在线一区二区三区| 欧美日韩在线不卡| 欧美在线观看你懂的| 在线视频国产一区| 在线观看区一区二| 欧美视频在线观看一区| 欧美综合一区二区| 欧美日韩一区高清| 制服.丝袜.亚洲.另类.中文 | 日韩中文字幕不卡| 日韩二区在线观看| 毛片av一区二区| 国产精品综合二区| 国产成人激情av| 91网站视频在线观看| 欧美四级电影网| 日韩三级在线免费观看| 精品电影一区二区三区| 久久久99精品久久| 国产精品久久久久毛片软件| 国产精品国模大尺度视频| 亚洲美女少妇撒尿| 天堂成人免费av电影一区| 毛片av一区二区三区| 国产成人一区二区精品非洲| 99久久国产综合精品麻豆| 在线观看视频一区| 91精品国产91热久久久做人人| 欧美tickling挠脚心丨vk| 国产欧美精品一区二区色综合 | 性做久久久久久| 精品一区二区三区视频在线观看| 国产曰批免费观看久久久| 成+人+亚洲+综合天堂| 欧美网站一区二区| 精品国精品国产| 亚洲欧美日韩在线播放| 奇米精品一区二区三区四区| 国产成人h网站| 欧美主播一区二区三区| 欧美不卡一区二区| 亚洲女厕所小便bbb| 日韩av一区二区在线影视| 国产福利不卡视频| 欧美日本在线视频| 国产丝袜美腿一区二区三区| 亚洲一区二区三区美女| 精品一区二区三区日韩| 在线视频一区二区三区| 精品成人在线观看| 一区二区欧美在线观看| 国产精品77777竹菊影视小说| 在线视频一区二区三| 国产亚洲欧洲一区高清在线观看| 亚洲一区二区三区爽爽爽爽爽| 国产一区二区0| 欧美日韩电影一区| 综合激情网...| 国产美女久久久久| 欧美乱熟臀69xxxxxx| 亚洲视频中文字幕| 国产很黄免费观看久久| 欧美精品123区| 亚洲欧美国产77777| 国产九色精品成人porny| 91精品黄色片免费大全| 亚洲与欧洲av电影| 成年人午夜久久久| 国产夜色精品一区二区av| 日韩和的一区二区| 欧美亚一区二区| 亚洲欧美日韩国产中文在线| 成人午夜免费av| 国产亚洲成年网址在线观看| 天使萌一区二区三区免费观看| 91蝌蚪国产九色| 中文字幕成人网| 成人小视频免费在线观看| 精品福利二区三区| 久久se这里有精品| 91精品国产色综合久久不卡蜜臀| 亚洲黄色av一区| 一本色道久久综合亚洲精品按摩| 国产欧美日韩三区| 国产高清成人在线| 久久久久99精品一区| 国产一区二区三区免费看| 精品剧情在线观看| 国产一区二区三区最好精华液| 日韩精品在线一区二区| 久久福利视频一区二区|