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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? x86inc.asm

?? 從服務(wù)器上下外的 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品一区二区| 中文天堂在线一区| 激情伊人五月天久久综合| 久久久高清一区二区三区| 成人精品一区二区三区中文字幕| 中文字幕av在线一区二区三区| 不卡的看片网站| 一区二区三区在线视频观看| 欧美精品乱码久久久久久| 日本不卡一二三区黄网| 久久一区二区视频| 成人黄色小视频| 亚洲一卡二卡三卡四卡五卡| 日韩西西人体444www| 国产激情精品久久久第一区二区| 日韩美女视频一区| 在线成人小视频| 国产精品亚洲第一区在线暖暖韩国| 国产精品久久久久久久裸模 | 欧美在线观看你懂的| 日本成人在线视频网站| 久久精品在这里| 91福利在线观看| 久久精品国产亚洲aⅴ| 国产精品久久久久久亚洲毛片| 欧美色成人综合| 国内精品伊人久久久久影院对白| 综合电影一区二区三区 | 日韩视频免费观看高清完整版 | 婷婷丁香久久五月婷婷| 欧美成人高清电影在线| 不卡的电视剧免费网站有什么| 午夜日韩在线观看| 久久久久国产精品厨房| 欧美无人高清视频在线观看| 狠狠色丁香九九婷婷综合五月| 亚洲日本va午夜在线影院| 欧美一级专区免费大片| 99久久免费视频.com| 日韩福利电影在线| 国产精品久久久久影院| 日韩一区二区精品葵司在线 | 日韩一区二区免费电影| 99久久伊人久久99| 久久精品国产秦先生| 亚洲精选免费视频| 久久久久国产精品人| 欧美精品在线观看一区二区| 成a人片国产精品| 麻豆成人在线观看| 亚洲激情网站免费观看| 久久精品人人做人人综合| 欧美丰满嫩嫩电影| 91年精品国产| 国产精品一区专区| 日韩精品一二三| 亚洲欧美成aⅴ人在线观看| 精品99一区二区三区| 欧美日韩激情一区| 99re亚洲国产精品| 国产高清精品久久久久| 日韩av电影一区| 波多野结衣亚洲| 久久超碰97中文字幕| 亚洲欧美日韩一区二区| 久久久久久久久97黄色工厂| 欧美久久婷婷综合色| 91免费看`日韩一区二区| 国产高清精品久久久久| 久久精工是国产品牌吗| 香蕉久久夜色精品国产使用方法 | 日韩免费高清av| 欧美日韩国产电影| 色94色欧美sute亚洲线路一久| 国产精品一区二区免费不卡| 老司机精品视频一区二区三区| 亚洲图片欧美视频| 亚洲欧美日韩人成在线播放| 中文字幕欧美国产| 久久麻豆一区二区| 精品蜜桃在线看| 日韩欧美激情四射| 91精品国产综合久久精品麻豆| 色婷婷av一区| 色综合天天在线| 99精品国产视频| 成人免费毛片嘿嘿连载视频| 国产在线精品免费| 久久不见久久见免费视频1| 天天av天天翘天天综合网 | 大胆亚洲人体视频| 国产一区二区毛片| 激情综合色丁香一区二区| 蜜臀av亚洲一区中文字幕| 香蕉久久夜色精品国产使用方法| 亚洲图片有声小说| 亚洲成人自拍网| 亚洲国产乱码最新视频| 国产成人精品www牛牛影视| 国产在线看一区| 国产麻豆视频精品| 国产一区亚洲一区| 国内偷窥港台综合视频在线播放| 久久av资源网| 国产一区二区三区电影在线观看| 国内久久婷婷综合| 国产福利一区二区| 福利一区二区在线| 成人黄色片在线观看| av中文字幕不卡| 91免费小视频| 欧美视频中文一区二区三区在线观看| 在线视频欧美区| 欧美日韩aaaaaa| 91精品国产乱码久久蜜臀| 欧美一区二区三区在线观看视频| 欧美一区二区视频网站| 日韩免费视频一区| 国产网红主播福利一区二区| 中国色在线观看另类| 亚洲欧洲日韩综合一区二区| 亚洲欧美激情插| 亚洲成人tv网| 蜜乳av一区二区三区| 国产一区欧美日韩| 成人免费观看视频| 在线视频观看一区| 欧美乱妇20p| 欧美精品一区二区三区四区| 国产午夜精品一区二区三区嫩草 | 亚洲另类色综合网站| 亚洲第一二三四区| 久久99精品视频| 福利一区二区在线| 日本乱码高清不卡字幕| 欧美精品色综合| 久久久精品tv| 亚洲欧美一区二区三区孕妇| 午夜激情一区二区三区| 经典三级视频一区| 波多野结衣欧美| 欧美日韩国产一二三| 精品成人免费观看| 综合激情成人伊人| 日韩av不卡在线观看| 国产成人av电影在线播放| 在线视频一区二区三区| 精品日韩99亚洲| 综合电影一区二区三区| 日韩精品久久理论片| 国产成人午夜精品5599 | 欧美一区二区私人影院日本| 久久久久久亚洲综合影院红桃| 亚洲欧美偷拍三级| 欧美精品v国产精品v日韩精品| 欧美精品一区二区在线播放| 综合亚洲深深色噜噜狠狠网站| 三级亚洲高清视频| 成人性生交大片免费看中文| 欧美视频在线一区| 国产日韩欧美精品电影三级在线| 一区二区三区毛片| 国产一区二区调教| 欧美日韩亚洲国产综合| 久久精品在线免费观看| 午夜私人影院久久久久| 国产69精品久久99不卡| 欧美日韩国产色站一区二区三区| 久久亚洲影视婷婷| 亚洲国产日韩a在线播放| 国产成人午夜视频| 欧美电影在哪看比较好| 国产精品第一页第二页第三页| 奇米色一区二区三区四区| 99久久精品国产观看| 日韩欧美综合一区| 亚洲男人的天堂一区二区| 久久99日本精品| 91成人网在线| 国产欧美精品在线观看| 日本欧美韩国一区三区| 99re成人在线| 久久蜜桃av一区精品变态类天堂 | 亚洲五月六月丁香激情| 国产999精品久久| 日韩午夜av电影| 亚洲一区二区四区蜜桃| 国产99久久久久久免费看农村| 制服丝袜亚洲播放| 亚洲男女一区二区三区| 国产精品99久久久久| 日韩亚洲欧美一区| 亚洲国产精品久久久久秋霞影院 | 国产精品电影院| 秋霞影院一区二区| 欧美午夜一区二区三区免费大片| 国产精品美女久久久久av爽李琼| 久久国产生活片100| 欧美丝袜自拍制服另类| 中文字幕亚洲欧美在线不卡|