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

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

?? x86inc.asm

?? 從服務器上下外的 x264編碼器最新的源碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;*****************************************************************************;* x86inc.asm;*****************************************************************************;* Copyright (C) 2005-2008 x264 project;*;* Authors: Loren Merritt <lorenm@u.washington.edu>;*          Anton Mitrofanov <BugMaster@narod.ru>;*;* This program is free software; you can redistribute it and/or modify;* it under the terms of the GNU General Public License as published by;* the Free Software Foundation; either version 2 of the License, or;* (at your option) any later version.;*;* This program is distributed in the hope that it will be useful,;* but WITHOUT ANY WARRANTY; without even the implied warranty of;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the;* GNU General Public License for more details.;*;* You should have received a copy of the GNU General Public License;* along with this program; if not, write to the Free Software;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.;*****************************************************************************%ifdef ARCH_X86_64    %ifidn __OUTPUT_FORMAT__,win32        %define WIN64    %else        %define UNIX64    %endif%endif; FIXME: All of the 64bit asm functions that take a stride as an argument; via register, assume that the high dword of that register is filled with 0.; This is true in practice (since we never do any 64bit arithmetic on strides,; and x264's strides are all positive), but is not guaranteed by the ABI.; Name of the .rodata section.; Kludge: Something on OS X fails to align .rodata even given an align attribute,; so use a different read-only section.%macro SECTION_RODATA 0    %ifidn __OUTPUT_FORMAT__,macho64        SECTION .text align=16    %elifidn __OUTPUT_FORMAT__,macho        SECTION .text align=16        fakegot:    %else        SECTION .rodata align=16    %endif%endmacro; PIC support macros.; x86_64 can't fit 64bit address literals in most instruction types,; so shared objects (under the assumption that they might be anywhere; in memory) must use an address mode that does fit.; So all accesses to global variables must use this macro, e.g.;     mov eax, [foo GLOBAL]; instead of;     mov eax, [foo];; x86_32 doesn't require PIC.; Some distros prefer shared objects to be PIC, but nothing breaks if; the code contains a few textrels, so we'll skip that complexity.%ifdef WIN64    %define PIC%elifndef ARCH_X86_64    %undef PIC%endif%ifdef PIC    %define GLOBAL wrt rip%else    %define GLOBAL%endif; Macros to eliminate most code duplication between x86_32 and x86_64:; Currently this works only for leaf functions which load all their arguments; into registers at the start, and make no other use of the stack. Luckily that; covers most of x264's asm.; PROLOGUE:; %1 = number of arguments. loads them from stack if needed.; %2 = number of registers used. pushes callee-saved regs if needed.; %3 = number of xmm registers used. pushes callee-saved xmm regs if needed.; %4 = list of names to define to registers; PROLOGUE can also be invoked by adding the same options to cglobal; e.g.; cglobal foo, 2,3, dst, src, tmp; declares a function (foo), taking two args (dst and src) and one local variable (tmp); TODO Some functions can use some args directly from the stack. If they're the; last args then you can just not declare them, but if they're in the middle; we need more flexible macro.; RET:; Pops anything that was pushed by PROLOGUE; REP_RET:; Same, but if it doesn't pop anything it becomes a 2-byte ret, for athlons; which are slow when a normal ret follows a branch.; registers:; rN and rNq are the native-size register holding function argument N; rNd, rNw, rNb are dword, word, and byte size; rNm is the original location of arg N (a register or on the stack), dword; rNmp is native size%macro DECLARE_REG 6    %define r%1q %2    %define r%1d %3    %define r%1w %4    %define r%1b %5    %define r%1m %6    %ifid %6 ; i.e. it's a register        %define r%1mp %2    %elifdef ARCH_X86_64 ; memory        %define r%1mp qword %6    %else        %define r%1mp dword %6    %endif    %define r%1  %2%endmacro%macro DECLARE_REG_SIZE 2    %define r%1q r%1    %define e%1q r%1    %define r%1d e%1    %define e%1d e%1    %define r%1w %1    %define e%1w %1    %define r%1b %2    %define e%1b %2%ifndef ARCH_X86_64    %define r%1  e%1%endif%endmacroDECLARE_REG_SIZE ax, alDECLARE_REG_SIZE bx, blDECLARE_REG_SIZE cx, clDECLARE_REG_SIZE dx, dlDECLARE_REG_SIZE si, silDECLARE_REG_SIZE di, dilDECLARE_REG_SIZE bp, bpl; t# defines for when per-arch register allocation is more complex than just function arguments%macro DECLARE_REG_TMP 1-*    %assign %%i 0    %rep %0        CAT_XDEFINE t, %%i, r%1        %assign %%i %%i+1        %rotate 1    %endrep%endmacro%macro DECLARE_REG_TMP_SIZE 0-*    %rep %0        %define t%1q t%1 %+ q        %define t%1d t%1 %+ d        %define t%1w t%1 %+ w        %define t%1b t%1 %+ b        %rotate 1    %endrep%endmacroDECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7%ifdef ARCH_X86_64    %define gprsize 8%else    %define gprsize 4%endif%macro PUSH 1    push %1    %assign stack_offset stack_offset+gprsize%endmacro%macro POP 1    pop %1    %assign stack_offset stack_offset-gprsize%endmacro%macro SUB 2    sub %1, %2    %ifidn %1, rsp        %assign stack_offset stack_offset+(%2)    %endif%endmacro%macro ADD 2    add %1, %2    %ifidn %1, rsp        %assign stack_offset stack_offset-(%2)    %endif%endmacro%macro movifnidn 2    %ifnidn %1, %2        mov %1, %2    %endif%endmacro%macro movsxdifnidn 2    %ifnidn %1, %2        movsxd %1, %2    %endif%endmacro%macro ASSERT 1    %if (%1) == 0        %error assert failed    %endif%endmacro%macro DEFINE_ARGS 0-*    %ifdef n_arg_names        %assign %%i 0        %rep n_arg_names            CAT_UNDEF arg_name %+ %%i, q            CAT_UNDEF arg_name %+ %%i, d            CAT_UNDEF arg_name %+ %%i, w            CAT_UNDEF arg_name %+ %%i, b            CAT_UNDEF arg_name, %%i            %assign %%i %%i+1        %endrep    %endif    %assign %%i 0    %rep %0        %xdefine %1q r %+ %%i %+ q        %xdefine %1d r %+ %%i %+ d        %xdefine %1w r %+ %%i %+ w        %xdefine %1b r %+ %%i %+ b        CAT_XDEFINE arg_name, %%i, %1        %assign %%i %%i+1        %rotate 1    %endrep    %assign n_arg_names %%i%endmacro%ifdef WIN64 ; Windows x64 ;=================================================DECLARE_REG 0, rcx, ecx, cx,  cl,  ecxDECLARE_REG 1, rdx, edx, dx,  dl,  edxDECLARE_REG 2, r8,  r8d, r8w, r8b, r8dDECLARE_REG 3, r9,  r9d, r9w, r9b, r9dDECLARE_REG 4, rdi, edi, di,  dil, [rsp + stack_offset + 40]DECLARE_REG 5, rsi, esi, si,  sil, [rsp + stack_offset + 48]DECLARE_REG 6, rax, eax, ax,  al,  [rsp + stack_offset + 56]%define r7m [rsp + stack_offset + 64]%define r8m [rsp + stack_offset + 72]%macro LOAD_IF_USED 2 ; reg_id, number_of_args    %if %1 < %2        mov r%1, [rsp + stack_offset + 8 + %1*8]    %endif%endmacro%macro PROLOGUE 2-4+ ; #args, #regs, #xmm_regs, arg_names...    ASSERT %2 >= %1    %assign regs_used %2    ASSERT regs_used <= 7    %if %0 > 2        %assign xmm_regs_used %3    %else        %assign xmm_regs_used 0    %endif    ASSERT xmm_regs_used <= 16    %if regs_used > 4        push r4        push r5        %assign stack_offset stack_offset+16    %endif    %if xmm_regs_used > 6        sub rsp, (xmm_regs_used-6)*16+16        %assign stack_offset stack_offset+(xmm_regs_used-6)*16+16        %assign %%i xmm_regs_used        %rep (xmm_regs_used-6)            %assign %%i %%i-1            movdqa [rsp + (%%i-6)*16+8], xmm %+ %%i        %endrep    %endif    LOAD_IF_USED 4, %1    LOAD_IF_USED 5, %1    LOAD_IF_USED 6, %1    DEFINE_ARGS %4%endmacro%macro RESTORE_XMM_INTERNAL 1    %if xmm_regs_used > 6        %assign %%i xmm_regs_used        %rep (xmm_regs_used-6)            %assign %%i %%i-1            movdqa xmm %+ %%i, [%1 + (%%i-6)*16+8]        %endrep        add %1, (xmm_regs_used-6)*16+16    %endif%endmacro%macro RESTORE_XMM 1    RESTORE_XMM_INTERNAL %1    %assign stack_offset stack_offset-(xmm_regs_used-6)*16+16    %assign xmm_regs_used 0%endmacro%macro RET 0    RESTORE_XMM_INTERNAL rsp    %if regs_used > 4        pop r5        pop r4

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲中文日韩久久av乱码| 成人久久视频在线观看| 久久亚洲二区三区| 色吊一区二区三区| 国产河南妇女毛片精品久久久| 中文字幕乱码久久午夜不卡 | 国产一区二区导航在线播放| 亚洲三级理论片| 精品国产一区二区三区av性色| 成人动漫一区二区三区| 婷婷开心久久网| 亚洲综合丁香婷婷六月香| 欧美一级欧美三级在线观看| 99re热这里只有精品免费视频| 日韩在线a电影| 夜夜爽夜夜爽精品视频| 中文一区在线播放| 欧美一级日韩一级| 色综合久久88色综合天天6 | 一区二区三区中文字幕电影 | 国产一本一道久久香蕉| 国产麻豆一精品一av一免费| 国产二区国产一区在线观看| 日日骚欧美日韩| 婷婷综合五月天| 日本不卡视频在线观看| 午夜精品久久久久久久蜜桃app| 亚洲精品日日夜夜| 亚洲国产成人高清精品| 成人欧美一区二区三区白人| 国产精品视频九色porn| 国产精品久久网站| 日韩毛片在线免费观看| 亚洲精品乱码久久久久久黑人| 亚洲视频综合在线| 亚洲一区日韩精品中文字幕| 一区二区三区产品免费精品久久75| 一区二区三区视频在线看| 欧美一区在线视频| 日韩精品一区二区三区视频| 久久蜜桃av一区二区天堂 | 日韩av中文字幕一区二区三区 | 成人动漫在线一区| 91国产福利在线| 欧美草草影院在线视频| 亚洲日本韩国一区| 午夜a成v人精品| 另类中文字幕网| 99久久99久久精品国产片果冻 | 韩国三级在线一区| 不卡免费追剧大全电视剧网站| 91久久精品国产91性色tv| 精品久久人人做人人爰| 亚洲综合区在线| 国产乱理伦片在线观看夜一区| 欧美在线综合视频| 亚洲精品一区二区三区99| 日韩理论片在线| 成人18精品视频| 亚洲精品一区二区三区香蕉 | 最新国产精品久久精品| 国产一区二区三区黄视频 | 五月激情综合色| 91麻豆精品一区二区三区| 久久久久久久精| 麻豆精品精品国产自在97香蕉| 色综合av在线| 国产精品人妖ts系列视频| 国内精品伊人久久久久av一坑| 欧美成人午夜电影| 午夜av一区二区三区| 99久免费精品视频在线观看| 久久久综合精品| 麻豆91精品91久久久的内涵| 欧美大黄免费观看| 美女在线视频一区| 日韩一卡二卡三卡| 精品综合久久久久久8888| 91精品国产免费久久综合| 午夜久久福利影院| 337p亚洲精品色噜噜狠狠| 香蕉久久一区二区不卡无毒影院 | 中文字幕一区二区三区四区不卡 | 99re成人精品视频| 亚洲三级小视频| 一本色道久久加勒比精品| 国产精品国产三级国产普通话99| 成人天堂资源www在线| 尤物视频一区二区| 欧美精品在线视频| 国产一区二区三区高清播放| 国产精品久久网站| 欧美一级黄色大片| 91丨九色porny丨蝌蚪| 午夜精品123| 久久久综合九色合综国产精品| 国产福利一区在线| 亚洲丝袜自拍清纯另类| 3d动漫精品啪啪| 91美女视频网站| 日韩精品一级中文字幕精品视频免费观看| 欧美美女喷水视频| 久久不见久久见免费视频1| 日韩电影在线观看一区| 久久久久久久久蜜桃| 欧美理论电影在线| 99在线精品观看| 久久99精品久久久久久国产越南| 国产精品久久午夜夜伦鲁鲁| 欧美专区日韩专区| 国产99久久久国产精品免费看 | 香蕉乱码成人久久天堂爱免费| 国产精品色噜噜| 欧美成人一区二区三区片免费| 色综合久久99| 97久久精品人人做人人爽50路| 丝袜a∨在线一区二区三区不卡| 亚洲国产精品国自产拍av| 日韩写真欧美这视频| 7878成人国产在线观看| 欧美日韩成人高清| 欧美精品久久一区二区三区| 欧美日韩视频不卡| 色视频成人在线观看免| 精品无人区卡一卡二卡三乱码免费卡| 7777精品伊人久久久大香线蕉经典版下载 | 欧美成va人片在线观看| 日韩欧美国产小视频| 欧美精品日韩一本| 欧美大片免费久久精品三p| 欧美一区二区三区在| xnxx国产精品| **欧美大码日韩| 国产欧美日韩综合| 99久久99久久免费精品蜜臀| 久久99精品久久久| 激情久久五月天| 欧美xxxxx裸体时装秀| 欧美精品第1页| 欧美一区二区三区四区五区| 日韩一区二区免费在线观看| 久久久综合视频| 精品久久国产字幕高潮| 久久久久综合网| 亚洲国产视频一区| 国产成人在线免费| 色妞www精品视频| 欧美疯狂做受xxxx富婆| 欧美系列一区二区| 久久综合九色综合欧美98| 精品国产乱码久久久久久1区2区| 精品国产凹凸成av人网站| 中文字幕日本乱码精品影院| 亚洲国产欧美在线| 综合电影一区二区三区| 亚洲男人天堂av网| 免费在线看一区| 精品一区二区三区免费观看| 国产精品99久久久| 99re这里只有精品首页| 欧美日韩国产综合视频在线观看| 中文字幕乱码一区二区免费| 亚洲国产成人在线| 亚洲成人精品一区| 国产99一区视频免费| 久久婷婷国产综合精品青草| 亚洲乱码国产乱码精品精可以看| 欧美高清在线一区二区| 青青草成人在线观看| 欧美日韩大陆在线| 亚洲国产美女搞黄色| 亚洲成人高清在线| 国产一区啦啦啦在线观看| 91丨九色丨蝌蚪富婆spa| 欧美成人女星排行榜| 亚洲精品亚洲人成人网| 国产99久久久国产精品潘金网站| 精品欧美久久久| 亚洲va欧美va人人爽| www.成人在线| 中文字幕亚洲欧美在线不卡| 成人av资源网站| 久久久国产精品麻豆| 激情欧美一区二区| 欧美不卡在线视频| 奇米综合一区二区三区精品视频| 欧美日韩精品欧美日韩精品一| 亚洲bt欧美bt精品| 制服丝袜国产精品| 日韩主播视频在线| 亚洲精品在线观| 波多野洁衣一区| 亚洲欧美日韩在线不卡| 色婷婷精品大在线视频| 丝袜美腿亚洲综合| 日韩欧美在线观看一区二区三区| 久久国产精品99久久久久久老狼| 国产欧美日韩精品一区| 国产老妇另类xxxxx| 国产精品电影一区二区|