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

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

?? jrevdct_arm.s

?? ffmpeg的完整源代碼和作者自己寫的文檔。不但有在Linux的工程哦
?? S
字號:
/*
   C-like prototype :
        void j_rev_dct_ARM(DCTBLOCK data)

   With DCTBLOCK being a pointer to an array of 64 'signed shorts'

   Copyright (c) 2001 Lionel Ulmer (lionel.ulmer@free.fr / bbrox@bbrox.org)

   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
   in the Software without restriction, including without limitation the rights
   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   copies of the Software, and to permit persons to whom the Software is
   furnished to do so, subject to the following conditions:

   The above copyright notice and this permission notice shall be included in
   all copies or substantial portions of the Software.

   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
   COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
   IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/
#define FIX_0_298631336 2446
#define FIX_0_541196100 4433
#define FIX_0_765366865 6270
#define FIX_1_175875602 9633
#define FIX_1_501321110 12299
#define FIX_2_053119869 16819
#define FIX_3_072711026 25172
#define FIX_M_0_390180644 -3196
#define FIX_M_0_899976223 -7373
#define FIX_M_1_847759065 -15137
#define FIX_M_1_961570560 -16069
#define FIX_M_2_562915447 -20995
#define FIX_0xFFFF 0xFFFF

#define FIX_0_298631336_ID      0
#define FIX_0_541196100_ID      4
#define FIX_0_765366865_ID      8
#define FIX_1_175875602_ID     12
#define FIX_1_501321110_ID     16
#define FIX_2_053119869_ID     20
#define FIX_3_072711026_ID     24
#define FIX_M_0_390180644_ID   28
#define FIX_M_0_899976223_ID   32
#define FIX_M_1_847759065_ID   36
#define FIX_M_1_961570560_ID   40
#define FIX_M_2_562915447_ID   44
#define FIX_0xFFFF_ID          48
        .text
        .align

        .global j_rev_dct_ARM
j_rev_dct_ARM:
        stmdb   sp!, { r4 - r12, lr }   @ all callee saved regs

        sub sp, sp, #4                  @ reserve some space on the stack
        str r0, [ sp ]                  @ save the DCT pointer to the stack

        mov lr, r0                      @ lr = pointer to the current row
        mov r12, #8                     @ r12 = row-counter
        add r11, pc, #(const_array-.-8) @ r11 = base pointer to the constants array
row_loop:
        ldrsh r0, [lr, # 0]             @ r0 = 'd0'
        ldrsh r1, [lr, # 8]             @ r1 = 'd1'

        @ Optimization for row that have all items except the first set to 0
        @ (this works as the DCTELEMS are always 4-byte aligned)
        ldr r5, [lr, # 0]
        ldr r2, [lr, # 4]
        ldr r3, [lr, # 8]
        ldr r4, [lr, #12]
        orr r3, r3, r4
        orr r3, r3, r2
        orrs r5, r3, r5
        beq end_of_row_loop             @ nothing to be done as ALL of them are '0'
        orrs r2, r3, r1
        beq empty_row

        ldrsh r2, [lr, # 2]             @ r2 = 'd2'
        ldrsh r4, [lr, # 4]             @ r4 = 'd4'
        ldrsh r6, [lr, # 6]             @ r6 = 'd6'

        ldr r3, [r11, #FIX_0_541196100_ID]
        add r7, r2, r6
        ldr r5, [r11, #FIX_M_1_847759065_ID]
        mul r7, r3, r7                      @ r7 = z1
        ldr r3, [r11, #FIX_0_765366865_ID]
        mla r6, r5, r6, r7                  @ r6 = tmp2
        add r5, r0, r4                      @ r5 = tmp0
        mla r2, r3, r2, r7                  @ r2 = tmp3
        sub r3, r0, r4                      @ r3 = tmp1

        add r0, r2, r5, lsl #13             @ r0 = tmp10
        rsb r2, r2, r5, lsl #13             @ r2 = tmp13
        add r4, r6, r3, lsl #13             @ r4 = tmp11
        rsb r3, r6, r3, lsl #13             @ r3 = tmp12

        stmdb   sp!, { r0, r2, r3, r4 } @ save on the stack tmp10, tmp13, tmp12, tmp11

        ldrsh r3, [lr, #10]             @ r3 = 'd3'
        ldrsh r5, [lr, #12]             @ r5 = 'd5'
        ldrsh r7, [lr, #14]             @ r7 = 'd7'

        add r0, r3, r5                        @ r0 = 'z2'
        add r2, r1, r7                  @ r2 = 'z1'
        add r4, r3, r7                  @ r4 = 'z3'
        add r6, r1, r5                  @ r6 = 'z4'
        ldr r9, [r11, #FIX_1_175875602_ID]
        add r8, r4, r6                  @ r8 = z3 + z4
        ldr r10, [r11, #FIX_M_0_899976223_ID]
        mul r8, r9, r8                  @ r8 = 'z5'
        ldr r9, [r11, #FIX_M_2_562915447_ID]
        mul r2, r10, r2                 @ r2 = 'z1'
        ldr r10, [r11, #FIX_M_1_961570560_ID]
        mul r0, r9, r0                  @ r0 = 'z2'
        ldr r9, [r11, #FIX_M_0_390180644_ID]
        mla r4, r10, r4, r8             @ r4 = 'z3'
        ldr r10, [r11, #FIX_0_298631336_ID]
        mla r6, r9, r6, r8              @ r6 = 'z4'
        ldr r9, [r11, #FIX_2_053119869_ID]
        mla r7, r10, r7, r2             @ r7 = tmp0 + z1
        ldr r10, [r11, #FIX_3_072711026_ID]
        mla r5, r9, r5, r0              @ r5 = tmp1 + z2
        ldr r9, [r11, #FIX_1_501321110_ID]
        mla r3, r10, r3, r0             @ r3 = tmp2 + z2
        add r7, r7, r4                  @ r7 = tmp0
        mla r1, r9, r1, r2              @ r1 = tmp3 + z1
        add r5,        r5, r6                  @ r5 = tmp1
        add r3, r3, r4                  @ r3 = tmp2
        add r1, r1, r6                  @ r1 = tmp3

        ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp12 / r6 = tmp11
                                      @ r1 = tmp3  / r3 = tmp2  / r5 = tmp1  / r7 = tmp0

        @ Compute DESCALE(tmp10 + tmp3, CONST_BITS-PASS1_BITS)
        add r8, r0, r1
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, # 0]

        @ Compute DESCALE(tmp10 - tmp3, CONST_BITS-PASS1_BITS)
        sub r8, r0, r1
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, #14]

        @ Compute DESCALE(tmp11 + tmp2, CONST_BITS-PASS1_BITS)
        add r8, r6, r3
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, # 2]

        @ Compute DESCALE(tmp11 - tmp2, CONST_BITS-PASS1_BITS)
        sub r8, r6, r3
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, #12]

        @ Compute DESCALE(tmp12 + tmp1, CONST_BITS-PASS1_BITS)
        add r8, r4, r5
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, # 4]

        @ Compute DESCALE(tmp12 - tmp1, CONST_BITS-PASS1_BITS)
        sub r8, r4, r5
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, #10]

        @ Compute DESCALE(tmp13 + tmp0, CONST_BITS-PASS1_BITS)
        add r8, r2, r7
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, # 6]

        @ Compute DESCALE(tmp13 - tmp0, CONST_BITS-PASS1_BITS)
        sub r8, r2, r7
        add r8, r8, #(1<<10)
        mov r8, r8, asr #11
        strh r8, [lr, # 8]

        @ End of row loop
        add lr, lr, #16
        subs r12, r12, #1
        bne row_loop
        beq start_column_loop

empty_row:
        ldr r1, [r11, #FIX_0xFFFF_ID]
        mov r0, r0, lsl #2
        and r0, r0, r1
        add r0, r0, r0, lsl #16
        str r0, [lr, # 0]
        str r0, [lr, # 4]
        str r0, [lr, # 8]
        str r0, [lr, #12]

end_of_row_loop:
        @ End of loop
        add lr, lr, #16
        subs r12, r12, #1
        bne row_loop

start_column_loop:
        @ Start of column loop
        ldr lr, [ sp ]
        mov r12, #8
column_loop:
        ldrsh r0, [lr, #( 0*8)]             @ r0 = 'd0'
        ldrsh r2, [lr, #( 4*8)]             @ r2 = 'd2'
        ldrsh r4, [lr, #( 8*8)]             @ r4 = 'd4'
        ldrsh r6, [lr, #(12*8)]             @ r6 = 'd6'

        ldr r3, [r11, #FIX_0_541196100_ID]
        add r1, r2, r6
        ldr r5, [r11, #FIX_M_1_847759065_ID]
        mul r1, r3, r1                      @ r1 = z1
        ldr r3, [r11, #FIX_0_765366865_ID]
        mla r6, r5, r6, r1                  @ r6 = tmp2
        add r5, r0, r4                      @ r5 = tmp0
        mla r2, r3, r2, r1                  @ r2 = tmp3
        sub r3, r0, r4                      @ r3 = tmp1

        add r0, r2, r5, lsl #13             @ r0 = tmp10
        rsb r2, r2, r5, lsl #13             @ r2 = tmp13
        add r4, r6, r3, lsl #13             @ r4 = tmp11
        rsb r6, r6, r3, lsl #13             @ r6 = tmp12

        ldrsh r1, [lr, #( 2*8)]             @ r1 = 'd1'
        ldrsh r3, [lr, #( 6*8)]             @ r3 = 'd3'
        ldrsh r5, [lr, #(10*8)]             @ r5 = 'd5'
        ldrsh r7, [lr, #(14*8)]             @ r7 = 'd7'

        @ Check for empty odd column (happens about 20 to 25 % of the time according to my stats)
        orr r9, r1, r3
        orr r10, r5, r7
        orrs r10, r9, r10
        beq empty_odd_column

        stmdb   sp!, { r0, r2, r4, r6 } @ save on the stack tmp10, tmp13, tmp12, tmp11

        add r0, r3, r5                  @ r0 = 'z2'
        add r2, r1, r7                  @ r2 = 'z1'
        add r4, r3, r7                  @ r4 = 'z3'
        add r6, r1, r5                  @ r6 = 'z4'
        ldr r9, [r11, #FIX_1_175875602_ID]
        add r8, r4, r6
        ldr r10, [r11, #FIX_M_0_899976223_ID]
        mul r8, r9, r8                  @ r8 = 'z5'
        ldr r9, [r11, #FIX_M_2_562915447_ID]
        mul r2, r10, r2                 @ r2 = 'z1'
        ldr r10, [r11, #FIX_M_1_961570560_ID]
        mul r0, r9, r0                  @ r0 = 'z2'
        ldr r9, [r11, #FIX_M_0_390180644_ID]
        mla r4, r10, r4, r8             @ r4 = 'z3'
        ldr r10, [r11, #FIX_0_298631336_ID]
        mla r6, r9, r6, r8              @ r6 = 'z4'
        ldr r9, [r11, #FIX_2_053119869_ID]
        mla r7, r10, r7, r2             @ r7 = tmp0 + z1
        ldr r10, [r11, #FIX_3_072711026_ID]
        mla r5, r9, r5, r0              @ r5 = tmp1 + z2
        ldr r9, [r11, #FIX_1_501321110_ID]
        mla r3, r10, r3, r0             @ r3 = tmp2 + z2
        add r7, r7, r4                  @ r7 = tmp0
        mla r1, r9, r1, r2              @ r1 = tmp3 + z1
        add r5,        r5, r6                  @ r5 = tmp1
        add r3, r3, r4                  @ r3 = tmp2
        add r1, r1, r6                  @ r1 = tmp3

        ldmia sp!, { r0, r2, r4, r6 } @ r0 = tmp10 / r2 = tmp13 / r4 = tmp11 / r6 = tmp12
                                      @ r1 = tmp3  / r3 = tmp2  / r5 = tmp1  / r7 = tmp0

        @ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
        add r8, r0, r1
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #( 0*8)]

        @ Compute DESCALE(tmp10 - tmp3, CONST_BITS+PASS1_BITS+3)
        sub r8, r0, r1
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #(14*8)]

        @ Compute DESCALE(tmp11 + tmp2, CONST_BITS+PASS1_BITS+3)
        add r8, r4, r3
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #( 2*8)]

        @ Compute DESCALE(tmp11 - tmp2, CONST_BITS+PASS1_BITS+3)
        sub r8, r4, r3
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #(12*8)]

        @ Compute DESCALE(tmp12 + tmp1, CONST_BITS+PASS1_BITS+3)
        add r8, r6, r5
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #( 4*8)]

        @ Compute DESCALE(tmp12 - tmp1, CONST_BITS+PASS1_BITS+3)
        sub r8, r6, r5
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #(10*8)]

        @ Compute DESCALE(tmp13 + tmp0, CONST_BITS+PASS1_BITS+3)
        add r8, r2, r7
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #( 6*8)]

        @ Compute DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3)
        sub r8, r2, r7
        add r8, r8, #(1<<17)
        mov r8, r8, asr #18
        strh r8, [lr, #( 8*8)]

        @ End of row loop
        add lr, lr, #2
        subs r12, r12, #1
        bne column_loop
        beq the_end

empty_odd_column:
        @ Compute DESCALE(tmp10 + tmp3, CONST_BITS+PASS1_BITS+3)
        @ Compute DESCALE(tmp10 - tmp3, CONST_BITS+PASS1_BITS+3)
        add r0, r0, #(1<<17)
        mov r0, r0, asr #18
        strh r0, [lr, #( 0*8)]
        strh r0, [lr, #(14*8)]

        @ Compute DESCALE(tmp11 + tmp2, CONST_BITS+PASS1_BITS+3)
        @ Compute DESCALE(tmp11 - tmp2, CONST_BITS+PASS1_BITS+3)
        add r4, r4, #(1<<17)
        mov r4, r4, asr #18
        strh r4, [lr, #( 2*8)]
        strh r4, [lr, #(12*8)]

        @ Compute DESCALE(tmp12 + tmp1, CONST_BITS+PASS1_BITS+3)
        @ Compute DESCALE(tmp12 - tmp1, CONST_BITS+PASS1_BITS+3)
        add r6, r6, #(1<<17)
        mov r6, r6, asr #18
        strh r6, [lr, #( 4*8)]
        strh r6, [lr, #(10*8)]

        @ Compute DESCALE(tmp13 + tmp0, CONST_BITS+PASS1_BITS+3)
        @ Compute DESCALE(tmp13 - tmp0, CONST_BITS+PASS1_BITS+3)
        add r2, r2, #(1<<17)
        mov r2, r2, asr #18
        strh r2, [lr, #( 6*8)]
        strh r2, [lr, #( 8*8)]

        @ End of row loop
        add lr, lr, #2
        subs r12, r12, #1
        bne column_loop

the_end:
        @ The end....
        add sp, sp, #4
        ldmia   sp!, { r4 - r12, pc }   @ restore callee saved regs and return

const_array:
        .align
        .word FIX_0_298631336
        .word FIX_0_541196100
        .word FIX_0_765366865
        .word FIX_1_175875602
        .word FIX_1_501321110
        .word FIX_2_053119869
        .word FIX_3_072711026
        .word FIX_M_0_390180644
        .word FIX_M_0_899976223
        .word FIX_M_1_847759065
        .word FIX_M_1_961570560
        .word FIX_M_2_562915447
        .word FIX_0xFFFF

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品高清视频| 精品少妇一区二区三区视频免付费 | 99久久精品国产麻豆演员表| 久久久青草青青国产亚洲免观| 麻豆精品视频在线观看| 日韩欧美国产电影| 精彩视频一区二区| 精品盗摄一区二区三区| 精品无码三级在线观看视频| 精品久久久久一区| 国产精品一二三区在线| 欧美激情中文字幕| 99久久国产综合精品色伊| 亚洲欧洲中文日韩久久av乱码| 91丨porny丨国产| 亚洲精品免费看| 91福利在线导航| 日韩精品亚洲一区二区三区免费| 欧美一区二区在线播放| 久久精品国产秦先生| 精品国产免费视频| 粉嫩一区二区三区性色av| 国产精品理伦片| 91福利精品视频| 日本不卡高清视频| 精品国偷自产国产一区| 粉嫩一区二区三区在线看| 亚洲色图视频免费播放| 欧美日韩一区不卡| 久久精品国产免费| 国产精品美女久久久久久久久| 91女人视频在线观看| 亚洲一区二区三区在线播放| 欧美丰满美乳xxx高潮www| 精品在线播放免费| 欧美极品另类videosde| 色综合久久99| 日本美女一区二区三区视频| 久久亚洲影视婷婷| 91网页版在线| 奇米影视在线99精品| 欧美国产日韩亚洲一区| 色网站国产精品| 蜜臀精品久久久久久蜜臀 | 中文字幕av一区 二区| 91色porny在线视频| 日韩av网站在线观看| 国产日韩欧美综合在线| 在线观看国产一区二区| 美女精品一区二区| 国产精品久久久久久久浪潮网站| 欧美艳星brazzers| 精一区二区三区| 一区在线观看免费| 91精品国产欧美一区二区| 东方aⅴ免费观看久久av| 亚洲高清免费观看| 久久精品欧美一区二区三区不卡| 日本丰满少妇一区二区三区| 蜜乳av一区二区| 国产精品美日韩| 678五月天丁香亚洲综合网| 成人小视频在线| 日韩av电影天堂| 中文字幕一区三区| 欧美一区二区视频在线观看| 波多野结衣在线一区| 日本中文字幕不卡| 中文字幕一区在线| 精品国产污污免费网站入口 | 精品国免费一区二区三区| 92国产精品观看| 韩国精品主播一区二区在线观看| 日韩久久一区二区| 久久久久国产精品人| 欧美日韩一级大片网址| 国产不卡一区视频| 日韩电影网1区2区| 亚洲乱码一区二区三区在线观看| 26uuu色噜噜精品一区| 欧美日韩一级黄| 99re热这里只有精品免费视频| 卡一卡二国产精品| 亚洲成人在线免费| 日韩一区欧美一区| 国产亚洲欧美在线| 欧美一卡2卡三卡4卡5免费| 色诱视频网站一区| 成人激情视频网站| 黑人巨大精品欧美黑白配亚洲| 亚洲国产欧美另类丝袜| 国产精品对白交换视频| 26uuu久久天堂性欧美| 欧美高清视频www夜色资源网| 色香色香欲天天天影视综合网| 国产成人在线看| 久久不见久久见中文字幕免费| 亚洲成人免费电影| 亚洲人123区| 国产精品电影院| 欧美激情自拍偷拍| 欧美精品一区二区在线观看| 91精品国产入口| 4438x成人网最大色成网站| 色哟哟欧美精品| 91亚洲精品乱码久久久久久蜜桃| 国产suv精品一区二区三区| 激情久久五月天| 奇米777欧美一区二区| 天堂成人免费av电影一区| 亚洲精品成人a在线观看| 亚洲色图欧美在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久久午夜精品| 久久蜜桃一区二区| 久久影院午夜片一区| 欧美电影免费观看高清完整版在线| 777色狠狠一区二区三区| 欧美日韩亚洲综合一区二区三区| 色欧美日韩亚洲| 在线免费精品视频| 在线一区二区三区做爰视频网站| 91在线精品一区二区三区| av电影一区二区| 92国产精品观看| 日本韩国欧美一区二区三区| 色婷婷狠狠综合| 欧美日韩在线播放三区| 欧美日韩精品是欧美日韩精品| 欧美色视频在线| 欧美精品一二三| 91精品福利在线一区二区三区| 91精品午夜视频| 精品免费国产一区二区三区四区| 日韩美女视频一区二区在线观看| 欧美成人性战久久| 久久伊人中文字幕| 国产网站一区二区三区| 中文字幕精品综合| 《视频一区视频二区| 亚洲精品日韩一| 天堂一区二区在线免费观看| 午夜精品福利一区二区蜜股av| 免费黄网站欧美| 国产久卡久卡久卡久卡视频精品| 国产suv精品一区二区6| av一区二区三区四区| 一本到一区二区三区| 欧美男生操女生| 欧美成人精品1314www| 久久久久久亚洲综合| 国产精品黄色在线观看| 亚洲自拍偷拍九九九| 午夜精品123| 国产一区二区精品在线观看| 成人激情校园春色| 欧美亚洲一区三区| 欧美一区二区三区白人| 久久久亚洲精品一区二区三区| 国产精品网站一区| 亚洲高清不卡在线观看| 久久狠狠亚洲综合| 成人福利电影精品一区二区在线观看 | 日日夜夜精品视频天天综合网| 蜜桃视频一区二区三区在线观看| 国产精品一区二区在线看| 91麻豆国产自产在线观看| 欧美日本在线观看| 久久影院视频免费| 亚洲精品老司机| 久久99久久99| 99精品视频免费在线观看| 欧美乱妇23p| 中文字幕乱码日本亚洲一区二区| 一区二区三区欧美亚洲| 免费在线欧美视频| 波多野结衣在线aⅴ中文字幕不卡| 欧美三级日韩三级国产三级| 久久伊人蜜桃av一区二区| 亚洲精品免费视频| 国产在线精品一区二区夜色| 91网址在线看| 精品国产一区a| 亚洲综合色自拍一区| 国产曰批免费观看久久久| 色吊一区二区三区| 精品国产123| 一区二区三区在线观看动漫| 精品一二三四区| 成人永久免费视频| 日本一区二区三区国色天香 | 在线视频一区二区三| 日韩精品综合一本久道在线视频| 国产精品三级久久久久三级| 五月天丁香久久| 97久久精品人人澡人人爽| 精品国产髙清在线看国产毛片| 亚洲精品国久久99热| 国产精品一卡二| 欧美肥妇毛茸茸|