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

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

?? fixed_arm4.h

?? ppciaxclient softphone
?? H
字號:
/* Copyright (C) 2004 Jean-Marc Valin */
/**
   @file fixed_generic.h
   @brief ARM4 fixed-point operations
*/
/*
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   
   - Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
   
   - Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
   
   - Neither the name of the Xiph.org Foundation nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.
   
   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#ifndef FIXED_ARM4_H
#define FIXED_ARM4_H

#define NEG16(x) (-(x))
#define NEG32(x) (-(x))
#define EXTRACT16(x) ((spx_word16_t)x)
#define EXTEND32(x) ((spx_word32_t)x)
#define SHR16(a,shift) ((a) >> (shift))
#define SHL16(a,shift) ((a) << (shift))
#define SHR32(a,shift) ((a) >> (shift))
#define SHL32(a,shift) ((a) << (shift))
#define PSHR16(a,shift) (SHR16((a)+(1<<((shift)-1)),shift))
#define PSHR32(a,shift) (SHR32((a)+(1<<((shift)-1)),shift))
#define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
#define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))

#define SHR(a,shift) ((a) >> (shift))
#define SHL(a,shift) ((a) << (shift))
#define SATURATE(x,a) ((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x))
#define PSHR(a,shift) (SHR((a)+(1<<((shift)-1)),shift))

#define ADD16(a,b) ((a)+(b))
#define SUB16(a,b) ((a)-(b))
#define ADD32(a,b) ((a)+(b))
#define SUB32(a,b) ((a)-(b))
#define ADD64(a,b) ((a)+(b))


/* result fits in 16 bits */
#define MULT16_16_16(a,b)     ((a)*(b))

#define MULT16_16(a,b)     ((a)*(b))




#define MAC16_16(c,a,b)     (ADD32((c),MULT16_16((a),(b))))
#define MULT16_32_Q12(a,b) ADD32(MULT16_16((a),SHR((b),12)), SHR(MULT16_16((a),((b)&0x00000fff)),12))
#define MULT16_32_Q13(a,b) ADD32(MULT16_16((a),SHR((b),13)), SHR(MULT16_16((a),((b)&0x00001fff)),13))
//#define MULT16_32_Q14(a,b) ADD32(MULT16_16((a),SHR((b),14)), SHR(MULT16_16((a),((b)&0x00003fff)),14))
static inline spx_word32_t MULT16_32_Q14(spx_word16_t x, spx_word32_t y) {
  int res;
  int dummy;
  asm (
        "smull  %0,%1,%2,%3 \n\t"
        "mov %0, %0, lsr #14 \n\t"
        "add %0, %0, %1, lsl #18 \n\t"
   : "=&r"(res), "=&r" (dummy)
   : "r"(y),"r"((int)x));
  return(res);
}

#define MULT16_32_Q11(a,b) ADD32(MULT16_16((a),SHR((b),11)), SHR(MULT16_16((a),((b)&0x000007ff)),11))
#define MAC16_32_Q11(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),11)), SHR(MULT16_16((a),((b)&0x000007ff)),11)))

//#define MULT16_32_Q15(a,b) ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15))
static inline spx_word32_t MULT16_32_Q15(spx_word16_t x, spx_word32_t y) {
  int res;
  int dummy;
  asm (
        "smull  %0,%1,%2,%3 \n\t"
        "mov %0, %0, lsr #15 \n\t"
        "add %0, %0, %1, lsl #17 \n\t"
   : "=&r"(res), "=&r" (dummy)
   : "r"(y),"r"((int)x));
  return(res);
}

#define MAC16_32_Q15(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15)))


#define MAC16_16_Q11(c,a,b)     (ADD32((c),SHR(MULT16_16((a),(b)),11)))
#define MAC16_16_Q13(c,a,b)     (ADD32((c),SHR(MULT16_16((a),(b)),13)))

#define MULT16_16_Q11_32(a,b) (SHR(MULT16_16((a),(b)),11))
#define MULT16_16_Q13(a,b) (SHR(MULT16_16((a),(b)),13))
#define MULT16_16_Q14(a,b) (SHR(MULT16_16((a),(b)),14))
#define MULT16_16_Q15(a,b) (SHR(MULT16_16((a),(b)),15))

#define MULT16_16_P13(a,b) (SHR(ADD32(4096,MULT16_16((a),(b))),13))
#define MULT16_16_P14(a,b) (SHR(ADD32(8192,MULT16_16((a),(b))),14))
#define MULT16_16_P15(a,b) (SHR(ADD32(16384,MULT16_16((a),(b))),15))

#define MUL_16_32_R15(a,bh,bl) ADD32(MULT16_16((a),(bh)), SHR(MULT16_16((a),(bl)),15))



static inline short DIV32_16(int a, int b)
{
   int res=0;
   int dead1, dead2, dead3, dead4, dead5;
   __asm__ __volatile__ (
         "\teor %5, %0, %1\n"
         "\tmovs %4, %0\n"
         "\trsbmi %0, %0, #0 \n"
         "\tmovs %4, %1\n"
         "\trsbmi %1, %1, #0 \n"
         "\tmov %4, #1\n"

         "\tsubs %3, %0, %1, asl #14 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #14 \n"

         "\tsubs %3, %0, %1, asl #13 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #13 \n"

         "\tsubs %3, %0, %1, asl #12 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #12 \n"

         "\tsubs %3, %0, %1, asl #11 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #11 \n"

         "\tsubs %3, %0, %1, asl #10 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #10 \n"

         "\tsubs %3, %0, %1, asl #9 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #9 \n"

         "\tsubs %3, %0, %1, asl #8 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #8 \n"

         "\tsubs %3, %0, %1, asl #7 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #7 \n"

         "\tsubs %3, %0, %1, asl #6 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #6 \n"
         
         "\tsubs %3, %0, %1, asl #5 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #5 \n"

         "\tsubs %3, %0, %1, asl #4 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #4 \n"

         "\tsubs %3, %0, %1, asl #3 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #3 \n"

         "\tsubs %3, %0, %1, asl #2 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #2 \n"

         "\tsubs %3, %0, %1, asl #1 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4, asl #1 \n"

         "\tsubs %3, %0, %1 \n"
         "\tmovpl %0, %3 \n"
         "\torrpl %2, %2, %4 \n"

         "\tmovs %5, %5, lsr #31 \n"
         "\trsbne %2, %2, #0 \n"
   : "=r" (dead1), "=r" (dead2), "=r" (res),
   "=r" (dead3), "=r" (dead4), "=r" (dead5)
   : "0" (a), "1" (b), "2" (res)
   : "cc"
                        );
   return res;
}

#define DIV32(a,b) (((signed int)(a))/((signed int)(b)))



#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四| 国产偷国产偷精品高清尤物 | 视频精品一区二区| 久久精品综合网| 91精品中文字幕一区二区三区| 欧美mv日韩mv国产| 日韩国产精品久久| 中文字幕永久在线不卡| 日韩欧美亚洲国产另类| 色激情天天射综合网| 国产精品一卡二卡| 视频一区二区三区在线| 亚洲蜜臀av乱码久久精品| 久久久久久久久99精品| 欧美一区午夜视频在线观看| 色婷婷亚洲精品| 成人h精品动漫一区二区三区| 蜜桃av一区二区三区| 亚洲国产精品久久久久婷婷884 | 亚洲va中文字幕| 综合亚洲深深色噜噜狠狠网站| 久久色.com| 日韩一级在线观看| 欧美精品久久久久久久多人混战| 日本久久电影网| 成人黄色一级视频| 国产盗摄视频一区二区三区| 免费观看日韩电影| 午夜精品久久一牛影视| 亚洲激情中文1区| 亚洲美女少妇撒尿| 亚洲日穴在线视频| 亚洲美女屁股眼交3| 亚洲图片激情小说| 亚洲精品一二三| 玉米视频成人免费看| 亚洲精品自拍动漫在线| 亚洲啪啪综合av一区二区三区| 国产精品久久看| 亚洲欧洲av另类| 亚洲另类在线视频| 亚洲国产视频网站| 午夜欧美视频在线观看| 丝袜美腿亚洲一区二区图片| 亚洲aaa精品| 美国欧美日韩国产在线播放| 麻豆精品视频在线观看免费| 精品一区二区综合| 国产成人亚洲综合a∨猫咪| 成人精品国产免费网站| 99r精品视频| 色哟哟一区二区| 欧美区在线观看| 欧美zozozo| 一区二区日韩av| 午夜私人影院久久久久| 日韩经典一区二区| 蜜芽一区二区三区| 国产成人啪午夜精品网站男同| 成人福利在线看| 在线观看成人免费视频| 91精品国产综合久久香蕉麻豆| 精品国产污污免费网站入口 | 最好看的中文字幕久久| 亚洲电影在线播放| 免费黄网站欧美| 成人午夜电影网站| 欧美日韩一级视频| 26uuuu精品一区二区| 国产精品久久精品日日| 亚洲综合久久av| 久久aⅴ国产欧美74aaa| 成人性色生活片免费看爆迷你毛片| 色系网站成人免费| 日韩一区二区在线看| 国产精品欧美久久久久无广告| 亚洲国产一二三| 粉嫩一区二区三区性色av| 在线精品视频小说1| 26uuu久久天堂性欧美| 亚洲美女偷拍久久| 经典三级一区二区| 91高清视频免费看| 久久亚洲综合av| 亚洲综合激情另类小说区| 国产一区二区毛片| 欧美午夜视频网站| 国产精品久久久久久久久晋中| 五月天网站亚洲| av网站一区二区三区| 日韩一区二区在线观看视频| 欧美日韩一区不卡| 国产三级精品视频| 日韩黄色免费电影| 色综合中文字幕国产 | 欧美在线短视频| 国产三级精品三级在线专区| 亚洲成人综合在线| youjizz国产精品| 欧美精品一区二区久久婷婷| 一区二区欧美在线观看| 成人性生交大片免费看中文| 日韩一区二区在线观看| 亚洲综合男人的天堂| 成人黄色在线看| 久久久不卡影院| 久久er99精品| 欧美一区二区免费| 亚洲国产美女搞黄色| 99re这里只有精品首页| 国产色一区二区| 精品一区二区三区影院在线午夜| 在线观看一区日韩| 亚洲日本va在线观看| 粉嫩一区二区三区性色av| 精品日韩成人av| 奇米精品一区二区三区在线观看| 在线观看亚洲精品| 亚洲三级小视频| 色综合av在线| 亚洲黄一区二区三区| 波多野结衣亚洲| 国产精品女人毛片| 国产福利一区二区三区视频在线| 日韩欧美在线网站| 日韩福利电影在线| 欧美一区二区免费| 蜜桃久久av一区| 欧美岛国在线观看| 国产又黄又大久久| 欧美精品一区二区三区在线 | 国产欧美中文在线| 国产成人免费视| 欧美韩国日本综合| gogo大胆日本视频一区| 中文字幕一区二| 99re热这里只有精品免费视频| 国产精品丝袜一区| 91碰在线视频| 亚洲一区二区三区在线| 欧美性一级生活| 午夜av区久久| 欧美成人一区二区| 国产精品中文欧美| 中文字幕一区二区三区不卡| 99久久精品国产麻豆演员表| 亚洲精品国产成人久久av盗摄| 欧美综合天天夜夜久久| 偷拍亚洲欧洲综合| 亚洲精品在线一区二区| 国产精品99久久久久久有的能看| 国产人成亚洲第一网站在线播放| av在线一区二区三区| 亚洲黄网站在线观看| 欧美人与禽zozo性伦| 蜜臀av一区二区在线免费观看| 精品久久国产字幕高潮| 成人免费高清视频| 亚洲午夜激情av| 日韩精品中文字幕在线一区| 51精品视频一区二区三区| 日韩国产精品久久久| 久久久久久久久久电影| 91亚洲大成网污www| 亚洲h在线观看| 精品不卡在线视频| 99久久99久久久精品齐齐| 午夜亚洲国产au精品一区二区| 精品国产一区二区三区不卡| www.欧美.com| 日韩国产欧美在线播放| 久久久国产综合精品女国产盗摄| 99久久99久久久精品齐齐| 日本欧美一区二区| 欧美国产激情二区三区| 欧美日韩一区二区在线观看| 国产一区二区毛片| 亚洲一级在线观看| 国产欧美精品国产国产专区 | 美腿丝袜一区二区三区| 国产精品美女久久久久久久久| 欧美视频一区二区| 成人一区二区三区在线观看| 亚洲h动漫在线| 国产精品福利av| 欧美一区二区三区婷婷月色| 成人爱爱电影网址| 麻豆91免费观看| 夜夜精品视频一区二区| 国产亚洲一区字幕| 91精品国产综合久久精品麻豆| 成人综合在线观看| 精品一区二区在线看| 一区二区成人在线视频 | 五月激情综合婷婷| 亚洲欧洲成人av每日更新| 精品裸体舞一区二区三区| 欧美在线不卡一区| 成人精品视频.| 精品无人码麻豆乱码1区2区 |