• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    二進制翻譯中動靜結合的寄存器分配優(yōu)化方法

    2019-04-18 05:14:04龐建民傅立國張家豪
    計算機研究與發(fā)展 2019年4期
    關鍵詞:基本塊二進制寄存器

    王 軍 龐建民 傅立國 岳 峰 單 征 張家豪

    (數(shù)學工程與先進計算國家重點實驗室(戰(zhàn)略支援部隊信息工程大學) 鄭州 450002)

    二進制翻譯[1]是一種即時編譯技術,其核心目標是將一種體系結構的指令序列轉換成功能等價的另一種可執(zhí)行指令序列,已廣泛用于軟件安全分析[2-3]、程序行為分析[4]、軟件逆向工程、系統(tǒng)虛擬等領域,并已成為軟件移植[5]的主流技術之一.二進制翻譯的過程可分為前端解碼、中間優(yōu)化以及后端編碼3個部分.前端解碼的主要工作類似于反匯編,依據(jù)源指令的特點分離出每條機器指令,將二進制可執(zhí)行程序翻譯成中間代碼;中端優(yōu)化的主要工作是優(yōu)化生成的中間代碼,通過分析中間代碼組織關系簡化中間代碼,常用的冗余代碼消除方法有常量傳播[6]、變量活性分析[7]和標志位優(yōu)化等[8];后端編碼的主要工作是本地目標代碼的生成,將優(yōu)化后的中間代碼轉換生成本地可執(zhí)行的代碼序列,其中包含寄存器分配過程.

    寄存器分配無論是在高性能應用程序編譯,還是在高性能程序翻譯,又或者在充分利用高性能處理器的目標上,都有著重要的研究意義,好的寄存器分配方式可以有效提高程序執(zhí)行效率.寄存器分配的目的是盡可能地將程序中的值保存在寄存器中,從而最大限度地減少訪存次數(shù),提高程序的執(zhí)行效率,寄存器分配優(yōu)化的重點在如何處理寄存器溢出問題.

    不同于傳統(tǒng)編譯器中的寄存器分配,二進制翻譯中寄存器分配的實質更像是寄存器映射,需要重點考慮源平臺寄存器使用情況.目前常用的寄存器分配方法主要是寄存器圖著色法、線性掃描法以及基于這2種方法的優(yōu)化變種.二進制翻譯,尤其是動態(tài)二進制翻譯最常采用基于線性掃描的寄存器分配方法.

    目前,已有較多人針對二進制翻譯中的寄存器分配進行了研究.Liang等人[9]對動態(tài)二進制翻譯器QEMU(quick emulator)中寄存器的管理及分配機制進行了詳細的描述,但并未給出一種有效的改進方法;吳浩[10]通過對比實驗說明了中間表示降低了二進制翻譯的性能,并在x86平臺翻譯ARM程序時采用寄存器直接映射策略提高了翻譯效率,但是該方法需要大幅度地修改QEMU的翻譯機制且通用性不強.文延華等人[11]在Alpha平臺翻譯PowerPC程序時,對PowerPC中的特殊寄存器采用二進制翻譯模擬、提出分段映射和特殊寄存器裁剪相結合的方法獲得了一定的優(yōu)化效果,但寄存器裁剪函數(shù)較為復雜且可被優(yōu)化的程序較少;廖銀等人[12]在MIPS平臺模擬x86平臺寄存器時采用直接映射策略,利用本地平臺通用寄存器數(shù)量多的特點,直接將x86的8個通用寄存器一一映射到MIPS的通用寄存器上,簡化了指令翻譯的規(guī)則,降低了代碼膨脹率,但該方法依賴于特定的硬件基礎,通用性和可移植性不夠強;Cai等人[13]在cross-bit系統(tǒng)中提出了簡化的寄存器圖著色法,使用3個鏈表收集變量定值引用信息,將活躍變量構造成一個圖,之后遇到寄存器溢出情況則重新構造沖突圖,但沖突圖的構造大大增加了翻譯的開銷,整體的效率提升有限;Liang等人[14]基于QEMU的中間表示,分析變量的定值與引用,使用鏈表存儲變量的生命周期和使用情況,減少了中間表示指令數(shù)目,但由于需要多次遍歷采集基本塊內變量的定值與引用信息,算法的復雜度較高且不具有良好的移植性.

    本文結合QEMU[15]的翻譯原理、QEMU使用的中間表示TCG (tiny code generation)中臨時變量與寄存器分配之間的關系以及QEMU的寄存器分配機制[9],引入全局寄存器靜態(tài)映射和局部寄存器動態(tài)分配思想[16],提出了基于優(yōu)先級的動靜結合二進制翻譯寄存器分配優(yōu)化算法.首先,根據(jù)x86平臺應用程序各寄存器使用情況的整體統(tǒng)計數(shù)據(jù)進行全局寄存器靜態(tài)映射;然后依據(jù)基本塊內中間表示每條指令需求的寄存器數(shù)量及寄存器分配次數(shù),排序確定各寄存器在基本塊內分配的優(yōu)先級順序,動態(tài)分配寄存器;最后溢出循環(huán)塊內未使用的全局寄存器供局部變量使用,并將全局寄存器的維護放在循環(huán)之外,盡可能減少因寄存器溢出而導致的冗余訪存指令,尤其是循環(huán)體內的冗余訪存指令,提高程序的執(zhí)行效率.

    1 相關工作

    QEMU是一個廣泛使用的支持用戶級和系統(tǒng)級翻譯的多源到多目標的動態(tài)二進制翻譯系統(tǒng)[15].QEMU的動態(tài)翻譯過程如圖1所示,其中寄存器分配工作在QEMU翻譯后端進行.

    Fig. 1 QEMU translation process圖1 QEMU翻譯過程

    為了實現(xiàn)多源到多目標的翻譯,QEMU中采用了機器無關的中間表示TCG.基于TCG,不同源平臺只需要變換前端解碼器而不需要改動后端編碼器,即可實現(xiàn)多源到目標平臺的翻譯,具有很好的跨平臺特性.QEMU動態(tài)翻譯的基本原理是利用指令變換時的語義等價,將源體系架構程序的指令翻譯成一條或者多條TCG中間表示,然后將TCG中間表示變換成目標平臺的一條或者多條指令,保證上述兩者轉換過程中指令語義的一致,實現(xiàn)不同平臺上指令的等價.

    本文提出的基于優(yōu)先級的二進制翻譯寄存器分配優(yōu)化算法,主要是針對課題組基于QEMU研發(fā)的反饋式靜態(tài)二進制翻譯器FD-SQEMU(feedback static QEMU)設計的,但是該算法具有很好的跨平臺特性和擴展性,稍加改動即可在動態(tài)二進制翻譯中使用.

    1.1 基于QEMU的反饋式靜態(tài)翻譯器FD-SQEMU

    課題組基于QEMU,采用了QEMU的前端分析和TCG中間表示,設計了反饋式靜態(tài)二進制翻譯框架FD-SQEMU,該靜態(tài)翻譯器繼承了QEMU跨平臺的特性.FD-SQEMU除了前端源指令提取、TCG中端分析優(yōu)化和后端目標代碼生成3個過程外,還添加了動態(tài)執(zhí)行反饋階段,用以解決靜態(tài)二進制翻譯中存在的代碼發(fā)現(xiàn)和代碼定位問題.FD-SQEMU的框架結構如圖2所示:

    Fig. 2 Framework of FD-SQEMU 圖2 FD-SQEMU框架設計

    FD-SQEMU前端的源文件解析器和前端解碼器以及中端TCG分析優(yōu)化器均采用QEMU的相應模塊,刪除了QEMU中控制中心、緩存管理和執(zhí)行模塊,后端則添加了目標文件生成器,重點是引入了動態(tài)執(zhí)行反饋模塊實現(xiàn)靜態(tài)二進制翻譯中代碼發(fā)現(xiàn)和代碼定位.

    源文件解析器、前端解碼器和新添加的預處理模塊構成FD-SQEMU的前端,負責將源平臺二進制代碼(本文即x86代碼)翻譯成中間代碼TCG;

    TCG分析優(yōu)化器構成FD-SQEMU的中端,負責對TCG中間表示進行平臺無關優(yōu)化,包括TCG的優(yōu)化,同時對源程序變量信息進行統(tǒng)計;

    后端翻譯器和目標文件生成器,構成FD-SQEMU的后端,負責將TCG中間代碼翻譯成目標平臺的二進制代碼(本文為申威架構的代碼);

    動態(tài)執(zhí)行反饋模塊主要是模擬執(zhí)行,用以獲取反饋靜態(tài)無法得到的間接跳轉和間接調用目標地址,輔助解決靜態(tài)二進制翻譯中代碼發(fā)現(xiàn)和代碼定位問題.

    與QEMU和基于LLVM的動態(tài)二進制翻譯器[17]相比,F(xiàn)D-SQEMU分離翻譯、代碼優(yōu)化與目標程序執(zhí)行階段,使得在同等優(yōu)化手段下,F(xiàn)D-SQEMU能夠采用不同層次的優(yōu)化算法,生成高質量的執(zhí)行代碼.本文提出的寄存器優(yōu)化方法在中端TCG分析優(yōu)化器內進行相關信息分析,在后端代碼生成階段進行實際實現(xiàn).

    1.2 TCG指令

    TCG指令類似于一種RISC(reduced instruction set computer)的指令,同樣擁有數(shù)據(jù)傳送、算術運算、邏輯運算、程序控制指令及其他指令[18].QEMU在tcg/tcg-opc.h中對所有TCG指令進行了定義,TCG指令格式定義為DEF(name,oargs,iargs,cargs,flags),其中name為微指令的名字,oargs為指令輸出參數(shù)個數(shù),iargs為指令輸入?yún)?shù)個數(shù),cargs為指令常數(shù)個數(shù),flags標志指令是否影響內存內容.此外,該結構體中還有參數(shù)args_ct與sorted,該參數(shù)與具體體系結構的寄存器緊密相關.

    TCG指令的操作數(shù)稱為臨時變量,構成TCG中間表示的基礎,是源機器指令操作數(shù)到目標機器指令數(shù)傳遞、存儲與計算的橋梁.根據(jù)臨時變量生命周期的不同劃分,TCG定義了普通變量(temp)、普通本地變量(localtemp)、全局變量(globaltemp)和全局寄存器變量(globalregtemp)四種臨時變量類型.TCG變量統(tǒng)一用結構體TCGTemp進行描述,變量類型通過結構體TCGTemp中的標志位進行區(qū)分.

    全局變量和全局寄存器變量生命周期貫穿程序的整個翻譯過程,分配的地址只有程序退出時才被收回.全局寄存器變量一般固定分配宿主機某一個寄存器值,用來保存源機器CPUState結構體的指針,實現(xiàn)源機器狀態(tài)數(shù)據(jù)的快速讀取,加快程序執(zhí)行速度;普通變量生命周期范圍為一個基本塊,基本塊執(zhí)行結束變量被標注為“釋放”狀態(tài),備下一個指令塊使用.普通本地變量的生命周期為一個函數(shù),與普通變量不同的是在某些基本塊末尾處需要保存執(zhí)行時的數(shù)據(jù)流信息以供函數(shù)內另一個基本塊使用,即需要將基本塊的執(zhí)行信息進行回寫.

    臨時變量內容均存儲在TCG上下文的512個TCGTemp的靜態(tài)數(shù)組static_temps中.其中全局變量和全局寄存器變量采取一次性分配策略建立運行時環(huán)境,在以后翻譯的過程中不會再進行分配,生命周期貫穿程序始終.全局變量源機器平臺運行環(huán)境env一般用全局寄存器變量表示,源機器平臺如標志寄存器用全局內存變量表示,存儲分布在靜態(tài)數(shù)組static_temps的起始處;普通變量和普通本地變量依據(jù)源機器指令進行動態(tài)分配,存儲在數(shù)組后面部分,每分配出一個,則將該空間打上標記進行標識.臨時變量的存儲空間分布如圖3所示:

    Fig. 3 Temporary variable memory format圖3 臨時變量內存布局

    2 QEMU中TCG寄存器分配機制研究

    寄存器作為CPU體系最重要的信息存儲部件,它的讀寫速度遠遠快于存儲器,它的利用效率直接影響程序的執(zhí)行速度;在二進制翻譯中,寄存器分配的好壞同樣對目標程序的執(zhí)行效率有著重要影響.

    如引言所述,二進制翻譯的過程是將源體系的可執(zhí)行代碼翻譯成中間代碼再翻譯成本地可執(zhí)行代碼的過程;從寄存器映射的角度看,二進制翻譯是從源體系的寄存器直接映射到虛擬機維護的一套內存虛擬寄存器,再由虛擬寄存器映射到目標體系上的寄存器的過程,臨時變量是上述寄存器轉換的“傳輸者”.

    2.1 QEMU中TCG寄存器分配機制

    QEMU中寄存器分配的主體包括2個部分[19]:1)內存虛擬寄存器;2)中間代碼使用的臨時變量.一套虛擬寄存器是一片連續(xù)的內存區(qū)域,內存虛擬寄存器主要是TCG中間表示源自于源體系寄存器的一一映射,以x86代碼為例,如圖4所示.對于內存虛擬寄存器,QEMU采用靜態(tài)直接映射方法,使用固定的寄存器綁定方式實現(xiàn)源體系寄存器到本地寄存器的映射.如x86的宿主機用ebp寄存器指向env,利用ebp寄存器偏移即可獲取整個虛擬寄存器,實現(xiàn)源體系寄存器到本地寄存器的映射.

    Fig. 4 Mapping from source register to TCG virtual register圖4 源體系寄存器到TCG虛擬寄存器的映射

    TCG中間代碼使用的臨時變量類似于傳統(tǒng)編譯器中的虛擬寄存器,對于翻譯程序而言,相對于通用寄存器不存在差異性,但其到本地目標寄存器的映射要復雜得多.

    對于QEMU中間代碼使用的臨時變量,其寄存器分配采用線性掃描靜態(tài)固定分配機制(first-mean-busy, FMB),即“最靠前者最忙碌”,通過線性掃描目標體系提供的寄存器數(shù)組索引進行本地寄存器的分配.分配的具體實現(xiàn)過程為:1)當中間變量需要進行本地寄存器分配時,依據(jù)中間指令操作碼和中間變量位置,確定臨時變量可分配寄存器范圍.2)從數(shù)組的起點開始遍歷,當遇到某寄存器處于“空閑狀態(tài)”時,即分配該寄存器,并將該寄存器的狀態(tài)置為“忙碌”,中止遍歷,待對應中間變量使用結束后即釋放該寄存器;若遍歷完的寄存器數(shù)組索引都處于“忙碌”的狀態(tài),則采用線性遍歷寄存器數(shù)組從數(shù)組中強制“溢出”一個寄存器作為指定分配的寄存器,因溢出的寄存器保存著上一個臨時變量的值,在釋放寄存器的同時需將“溢出”的寄存器中的值寫回內存中,以保證寄存器中的值不丟失.

    2.2 TCG寄存器分配機制的缺陷

    根據(jù)2.1節(jié)對TCG寄存器分配機制的分析,TCG指令內變量的寄存器分配采用優(yōu)先級的方法,利用操作數(shù)可分配寄存器個數(shù)劃分優(yōu)先級,避免了寄存器分配競爭時導致操作數(shù)分配不到寄存器資源;指令間的寄存器分配方法采取簡單的線性掃描和溢出,缺少指令間寄存器分配的優(yōu)化算法,若發(fā)生資源競爭,則進行現(xiàn)行的寄存器溢出處理,顯然存在不合理之處,以申威宿主機翻譯x86可執(zhí)行程序為例,如圖5所示:

    Fig. 5 TCG intermediate representation and local instruction after translation 圖5 TCG中間表示與翻譯后的本地代碼

    圖5中左邊為TCG中間代碼(為觀察方便,在TCG中間表示中添加了對應的x86匯編碼);右邊為翻譯后生成的申威本地指令,每條中間指令對應生成相應的申威本地指令.其中x指令部分將$9寄存器分配給了tmp0,y指令部分也給tmp0分配$9寄存器時,z指令部分分別將$9和$10寄存器分配給tmp0和tmp1.在這里,QEMU實際上沒有考慮指令間寄存器的使用情況,鑒于可能存在的寄存器溢出情況,在每條指令寄存器使用完畢后,都做了回寫處理,引入了冗余訪存指令①②③④,這是因為QEMU在進行寄存器分配時忽略了指令間的聯(lián)系,引入了冗余指令,另外若下一指令或者指令塊要繼續(xù)使用rdx和rax中值,則⑤⑥⑦訪存指令也是冗余且可以消除的.

    Fig. 6 Example of registers allocation for loops圖6 有關循環(huán)的寄存器分配例子

    另外,QEMU中TCG寄存器分配機制也沒考慮到程序上下文對寄存器分配的影響,忽略了循環(huán)體內寄存器分配對程序整體效率的影響,以圖6為例進行說明.

    如圖6(a)所示,基本塊或者幾個基本塊拼接成的循環(huán)塊CB1位于循環(huán)體內,假設執(zhí)行頻率N=1 000,當對CB1循環(huán)塊進行寄存器分配時,若發(fā)現(xiàn)寄存器不夠用,則很可能會溢出一個寄存器,假設是A,那么循環(huán)塊的頭尾會各添加一個訪存指令如圖6(b)所示,如此store和load指令都在循環(huán)體內部,顯然會降低程序性能,如果在寄存器分配前進行評估,優(yōu)先滿足循環(huán)體內部的寄存器需求,如此A可能因為無法分配到寄存器而溢出,如圖6(c)所示,這樣成功把訪存指令移到了循環(huán)之外,有效提高了翻譯后本地程序的性能.

    針對上述由于寄存器溢出而導致的冗余訪存問題,本文結合全局寄存器靜態(tài)分配和局部寄存器動態(tài)分配思想,提出基于優(yōu)先級的動靜結合寄存器分配算法(a dynamic and static combined registers allocation algorithm based on priority).首先依據(jù)程序的靜態(tài)統(tǒng)計特征,實現(xiàn)靜態(tài)全局寄存器的直接映射,以減少全局寄存器的維護開銷;然后借助程序的控制流程圖,結合變量活性分析基本塊內指令操作數(shù)寄存器分配個數(shù),減少指令間寄存器以及循環(huán)體內不必要的寄存器溢出,以減少本地代碼的膨脹率,提高翻譯目標程序的執(zhí)行效率.

    3 基于優(yōu)先級的動靜結合寄存器分配算法

    目前QEMU中使用的TCG寄存器分配機制的主要缺陷在于僅解決了指令內操作數(shù)分配的競爭,讓指令內操作數(shù)分配到最優(yōu)的寄存器,而對指令間寄存器采用固定的分配順序,忽略了基本塊內指令組成以及對寄存器需求的差異性,指令間固定的寄存器分配順序與指令內的寄存器最優(yōu)分配并沒有實現(xiàn)整個基本塊以及整個程序中寄存器分配的最優(yōu).

    寄存器分配效率提高的關鍵在于如何最大限度減少寄存器溢出帶來的開銷.基于此,考慮到將目標程序中最常用的寄存器固定映射到本地機器的寄存器,可以有效避免過多的訪存操作,提高翻譯后的程序性能.因此,對x86應用程序和部分系統(tǒng)程序中寄存器使用情況進行統(tǒng)計對于寄存器的分配是有指導意義的.以系統(tǒng)Linux-0.2啟動過程為例,x86上各寄存器使用情況統(tǒng)計結果如表1所示:

    Table 1 Register Usage Statistics on x86 Program表1 x86程序寄存器使用情況統(tǒng)計

    表1給出了系統(tǒng)Linux-0.2在啟動時x86平臺各寄存器的使用情況,從表1中可以看出x86架構運行時最常使用的寄存器是eax,ebx,edx,esp.x86應用程序寄存器的使用情況與此相似.

    基于x86平臺各寄存器使用情況的統(tǒng)計特征,在翻譯程序具體進行寄存器分配時,首先根據(jù)x86寄存器使用情況,采用寄存器直接映射方式進行全局寄存器靜態(tài)分配.如在翻譯中具體進行寄存器分配時,可首先將x86上eax,ebx,edx,esp寄存器映射到申威處理器通用寄存器$9,$10,$11,$12上;然后當翻譯x86指令時,即可直接使用對應的已固定映射到本地的通用寄存器替換x86中eax,ebx,edx,esp寄存器,而無需再從內存模擬的虛擬寄存器中加載,可以有效減少訪存操作,提高程序運行效率.

    在全局寄存器靜態(tài)直接映射分配的基礎上,再根據(jù)翻譯程序基本塊的特性進行局部的動態(tài)寄存器分配.具體做法是:首先通過變量活性分析遍歷基本塊內有效的中間指令,預估統(tǒng)計指令內操作數(shù)需求寄存器數(shù);然后依據(jù)預估的寄存器數(shù)排序確定寄存器分配優(yōu)先順序.若可分配的寄存器預估需求數(shù)目越大,則基本塊內指令對該寄存器的需求就越大,分配該寄存器的優(yōu)先級越高,優(yōu)先分配該寄存器,依次進行,優(yōu)先級最低的寄存器最慢分配出去.如此,剩余指令對寄存器需求的可能性變小,從而最大限度地減少寄存器溢出的可能性并使寄存器溢出的代價減少.具體的算法流程圖如圖7所示:

    Fig. 7 Algorithm flowchart圖7 算法流程圖

    1) TCG作為FD-SQEMU前端代碼解析和后端目標代碼生成的紐帶,記錄了基本塊內全局變量個數(shù)和基本塊跳轉等信息.在此基礎上,添加基本塊內寄存器需求數(shù)組regRequestNum和寄存器優(yōu)先級數(shù)組regPriority,分別記錄基本塊內需求寄存器的局部變量個數(shù)(即寄存器需求數(shù))和基本塊內各寄存器分配的次序(即需求該寄存器的優(yōu)先程度).在翻譯每個基本塊之初,對這2個數(shù)組進行初始化.

    2) 借助變量活性分析線性掃描基本塊內TCG指令,統(tǒng)計寄存器需求數(shù)目.這里對已固定分配寄存器的全局變量不作變量處理,但進行塊內使用標記;對于其他變量,只須將對應各TCG指令內需求寄存器的計數(shù)器regRequestNum采取迭代累加的方法,即可完成寄存器分配計數(shù)器的統(tǒng)計,該迭代累加算法的偽代碼如圖8所示:

    Fig. 8 Pseudo-code algorithm
    圖8 部分算法偽代碼

    4) 依據(jù)控制流程圖判斷該基本塊是否是循環(huán)體內的基本塊,若是且該循環(huán)塊內仍有多次使用的變量未分配到寄存器,則將該循環(huán)體內未使用的全局寄存器溢出,供該循環(huán)塊內變量使用;并依據(jù)循環(huán)優(yōu)化中代碼外提方法將該全局寄存器的狀態(tài)維護代碼外提到循環(huán)體外.如此,可進一步提高目標平臺寄存器的利用率,減少寄存器溢出開銷,提高程序運行效率.

    4 實驗和結果

    實驗采用由QEMU改造的FD-SQEMU模擬器作為二進制翻譯平臺,首先借助FD-SQEMU翻譯器使用QEMU中默認的寄存器分配方法對測試用例進行翻譯;然后借助FD-SQEMU翻譯器在進行寄存器分配優(yōu)化后對測試用例進行翻譯,對比兩次翻譯后得到的目標程序的運行時間,以評估基于優(yōu)先級的動靜結合寄存器分配優(yōu)化算法的實際優(yōu)化效果.

    令Tbefore和Tafter分別表示在使用寄存器分配優(yōu)化算法前和使用寄存器分配優(yōu)化算法后的本地目標程序的執(zhí)行時間,則使用寄存器分配優(yōu)化后與優(yōu)化前的加速比為

    在實際進行測試驗證時,實驗通過正確性測試、循環(huán)熱代碼測試、遞歸熱代碼測試和整體性能測試對提出的算法進行整體評估.

    4.1 實驗環(huán)境

    1) 源平臺.x86平臺,操作系統(tǒng)為Fedora11 Linux 2.6.29.4 編譯器gcc-4.6.4.

    2) 目標平臺.國產申威處理器,主頻1.4 GHz,內存4 GB,操作系統(tǒng)為Fedora,內核版本3.8.0,編譯器為 gcc,版本 4.5.3.

    3) 測試集.NBENCH-2.2.3,手動實現(xiàn)的主流遞歸算法和SPEC2006測試集[19].

    4.2 正確性測試

    針對寄存器優(yōu)化算法的正確性測試主要分為2個部分:指令翻譯測試和實際程序翻譯測試.

    指令翻譯測試借助FD-SQEMU自帶的test-i386測試集,重點對x86架構用戶態(tài)的指令進行了測試.依據(jù)x86指令分類情況,具體的測試結果如表2所示.

    在保證了單條指令翻譯的正確性后,對實際程序翻譯進行了正確性測試.具體測試過程為:1)在x86平臺上編譯SPEC CPU2006和NBENCH測試集等測試程序并運行記錄結果;2)在目標平臺上運行翻譯后的可執(zhí)行程序,并與x86上運行結果相比對.部分程序的測試結果如表3所示.

    實驗結果表明,優(yōu)化前后的目標程序執(zhí)行結果與源x86平臺上程序執(zhí)行結果相同,表明基于優(yōu)先級的動靜結合寄存器分配算法能夠進行正確的翻譯,保證了程序的等價翻譯,具有較高的可信度.

    Table 2 Correctness Testing of Instruction Translation表2 指令翻譯的正確性測試

    Note:“√” mean that the test instructions have passed the correctness verification.

    Table 3 Correct Test表3 正確性測試

    Note:“√” mean that the test cases have passed the correctness verification.

    4.3 寄存器分配相關信息分析

    申威處理器共計有6個全局寄存器S0~S5、12個臨時寄存器T0~T11.使用QEMU現(xiàn)有的寄存器分配機制進行二進制翻譯時,大量使用了S0,S1,S2寄存器,并在每次全局寄存器使用完畢后將其中的值寫回存儲器,一是對其余現(xiàn)有的寄存器利用率較低,二是引入了不必要的寄存器維護開銷;在改進寄存器分配方式后,各基本塊對申威寄存器的使用更加均衡,能有效減少因寄存器溢出導致的訪存次數(shù).寄存器分配方式改進前,各申威本地寄存器使用頻率如表4所示:

    所謂盈利能力,通常來講是指企業(yè)獲取利潤的能力,表現(xiàn)為一定時期內企業(yè)收益數(shù)額的多少,一般用凈資產收益率、成本費用利潤率、銷售利潤率、總資產報酬率、盈余現(xiàn)金保障倍數(shù)和資本收益率六項。由前文分析可知,生產性服務業(yè)“營改增”會影響企業(yè)營業(yè)稅金及附加、所得稅費、企業(yè)利潤等項目,通過減少企業(yè)的稅負,帶來企業(yè)成本的降低與更多資金的流動。企業(yè)將這筆節(jié)省出來的資金用于研發(fā)設備的投入或者擴大再生產時,由于《企業(yè)所得稅法》規(guī)定了研發(fā)費用的加計扣除等稅收優(yōu)惠政策,這就會使得企業(yè)在進一步減輕其稅負時,盈利能力得到提高。

    Table 4 Registers Usage Frequency of SW Before Optimization表4 優(yōu)化前部分申威本地寄存器使用頻率

    改進寄存器分配方式后,各申威本地寄存器使用頻率所占百分比如表5所示:

    Table 5 Register Usage Frequency of SW After Optimization表5 優(yōu)化后部分申威本地寄存器使用頻率

    如表5所示,該寄存器分配方式,有效地提高了本地臨時寄存器的使用率,并且使申威寄存器的使用更加均衡,可以減少寄存器的溢出次數(shù).在寄存器分配優(yōu)化后,翻譯后程序的指令平均減少了約2.3%.

    4.4 循環(huán)熱代碼性能測試

    NBENCH測試集的主要功能是通過計算一定時間內(一般是5 s)單項測試代碼塊的循環(huán)迭代次數(shù)來評價系統(tǒng)性能,其中每一個測試塊都是典型的循環(huán)熱代碼,具體的NBENCH測試集各部分功能如表6所示.

    使用寄存器分配優(yōu)化前和優(yōu)化后的FD-SQEMU在國產申威處理器上對NBENCH測試集進行對比測試,優(yōu)化后相對于優(yōu)化前的加速情況如圖9所示.

    如圖9所示,對于不同的NBENCH測試項目,寄存器分配優(yōu)化后獲得的加速比也不同.

    Table 6 NBENCH Tasks表6 NBENCH測試任務

    Fig. 9 Speedup ratio on NBENCH after optimization 圖9 優(yōu)化后NBENCH加速情況

    4.5 遞歸熱代碼性能測試

    Fig. 10 Speedup ratio on recursive algorithms after optimization圖10 優(yōu)化后遞歸熱代碼加速情況

    4.6 整體性能測試

    SPEC2006測試集中的程序基本都是實際應用中常用到的程序,該測試集的執(zhí)行結果能夠反映出一個翻譯系統(tǒng)的整體性能.在具體實驗時,挑選了部分SPEC2006中常用的測試應用進行測試,采用FD-SQEMU在寄存器分配優(yōu)化后翻譯源程序為本地目標程序,該程序性能提升情況如圖11所示:

    Fig. 11 Speed up ratio on part of SPEC2006 after optimization圖11 優(yōu)化后部分SPEC2006測試項的加速情況

    4.7 實驗結果分析

    通過對不同程序進行測試,根據(jù)圖9~11中結果可以看出改進了寄存器分配方式后,各程序都有不錯的性能提升,其中NBENCH測試集中STRING_SORT和BITFIELD的測試程序性能提升最高,最高達到了17.36%.改進寄存器分配方式后,根據(jù)圖9中測試結果NBENCH各測試項性能提升4.35%~17.24%,平均性能提升約為8.56%;根據(jù)圖10中測試結果, FIBONACCI, QUICKSORT等遞歸程序性能提升7.86%~8.54%,平均性能提升了8.14%;根據(jù)圖11,SPEC2006程序性能提升了6.94%~9.62%,平均性能提升了8.01%.根據(jù)測試結果,說明該寄存器分配優(yōu)化算法是有效的,且對于含循環(huán)、遞歸較多的程序,有更好的優(yōu)化效果.

    5 總 結

    本文在分析QEMU的寄存器分配方法后,舉例指出了該機制存在的缺陷,并在介紹了由QEMU改造的靜態(tài)二進制翻譯器FD-SQEMU后,借鑒傳統(tǒng)編譯器靜態(tài)全局寄存器分配和動態(tài)局部寄存器分配思想后,提出了基于優(yōu)先級的動靜結合寄存器分配方法.該算法,首先依據(jù)x86應用程序統(tǒng)計特征進行全局寄存器靜態(tài)直接映射分配;然后考慮各循環(huán)塊以及基本塊間寄存器需求的差異,利用TCG中間表示操作碼與本地指令之間的映射關系統(tǒng)計基本塊內需求的各寄存器次數(shù),并排序確定優(yōu)先級順序進行寄存器分配;最后,溢出循環(huán)塊內未使用的全局寄存器,給塊內未分配到寄存器的變量使用,進一步減少了寄存器溢出的開銷.通過NBENCH、某些經典遞歸程序和部分SPEC2006程序對該算法進行測試,結果表明該寄存器分配優(yōu)化算法能有效提高目標程序的執(zhí)行效率.另外,該算法對具體的目標平臺依賴不大,具有很好的跨平臺特性,另外,舍去該算法中依據(jù)程序控制流程圖對循環(huán)塊的處理亦可適用于動態(tài)二進制翻譯.

    寄存器分配的研究無論是對于傳統(tǒng)編譯器,還是對于二進制翻譯,從更好地發(fā)揮CPU的性能以及提高高性能計算程序的執(zhí)行效率方面都有重要的意義.

    猜你喜歡
    基本塊二進制寄存器
    基于級聯(lián)森林的控制流錯誤檢測優(yōu)化算法
    用二進制解一道高中數(shù)學聯(lián)賽數(shù)論題
    距離與權重相結合的導向式灰盒模糊測試方法
    計算機工程(2021年3期)2021-03-18 08:03:34
    一種檢測控制流錯誤的多層分段標簽方法
    Lite寄存器模型的設計與實現(xiàn)
    計算機應用(2020年5期)2020-06-07 07:06:44
    有趣的進度
    二進制在競賽題中的應用
    分簇結構向量寄存器分配策略研究*
    高速數(shù)模轉換器AD9779/AD9788的應用
    改進的CFCSS控制流檢測算法
    搡老熟女国产l中国老女人| 99精品欧美一区二区三区四区| 男女做爰动态图高潮gif福利片| 在线天堂最新版资源| 亚洲电影在线观看av| 精品国产亚洲在线| 日本黄大片高清| 一级黄色大片毛片| av福利片在线观看| 久久精品亚洲精品国产色婷小说| 又黄又爽又免费观看的视频| 亚洲专区国产一区二区| 国产极品精品免费视频能看的| 在线天堂最新版资源| 伊人久久大香线蕉亚洲五| 亚洲国产精品sss在线观看| eeuss影院久久| 高清日韩中文字幕在线| 变态另类丝袜制服| а√天堂www在线а√下载| 午夜福利高清视频| 九色成人免费人妻av| 国产成人影院久久av| 欧美成人免费av一区二区三区| 99久久99久久久精品蜜桃| 国内少妇人妻偷人精品xxx网站| 深夜精品福利| 真人一进一出gif抽搐免费| 日本一本二区三区精品| 亚洲成人久久性| 日本精品一区二区三区蜜桃| 制服人妻中文乱码| 亚洲无线观看免费| 色噜噜av男人的天堂激情| 日韩欧美免费精品| 色av中文字幕| 欧美不卡视频在线免费观看| 久久久成人免费电影| av视频在线观看入口| 国产成人欧美在线观看| 少妇高潮的动态图| 久久久久久久久大av| 嫩草影院入口| 国产免费一级a男人的天堂| 深夜精品福利| 美女 人体艺术 gogo| 国产精品电影一区二区三区| 人人妻,人人澡人人爽秒播| 国产三级黄色录像| 亚洲成a人片在线一区二区| 日本三级黄在线观看| 老司机深夜福利视频在线观看| 国产男靠女视频免费网站| 欧美一区二区国产精品久久精品| 桃色一区二区三区在线观看| 日韩精品中文字幕看吧| 宅男免费午夜| 成人无遮挡网站| 日韩欧美在线二视频| 色老头精品视频在线观看| 3wmmmm亚洲av在线观看| 天天躁日日操中文字幕| 国产精品一区二区免费欧美| 91字幕亚洲| 成人特级av手机在线观看| 久久久精品欧美日韩精品| 丰满的人妻完整版| 欧美色视频一区免费| 高潮久久久久久久久久久不卡| 亚洲中文字幕日韩| 亚洲,欧美精品.| 国产精华一区二区三区| 国产激情偷乱视频一区二区| av中文乱码字幕在线| 成人亚洲精品av一区二区| 成人精品一区二区免费| 成人三级黄色视频| 男插女下体视频免费在线播放| 久久人妻av系列| 日本黄色视频三级网站网址| 成人特级av手机在线观看| 国内精品久久久久久久电影| 色老头精品视频在线观看| 日本 av在线| av视频在线观看入口| 内地一区二区视频在线| 欧美高清成人免费视频www| 狂野欧美白嫩少妇大欣赏| 国产不卡一卡二| 久久久久国产精品人妻aⅴ院| 久久性视频一级片| 久久久久性生活片| 成人18禁在线播放| 色综合婷婷激情| 国产精品99久久久久久久久| 欧美不卡视频在线免费观看| 动漫黄色视频在线观看| 五月伊人婷婷丁香| 免费电影在线观看免费观看| 久久中文看片网| 天美传媒精品一区二区| 欧美3d第一页| 欧美区成人在线视频| 国产精品,欧美在线| 午夜免费激情av| 变态另类丝袜制服| 婷婷精品国产亚洲av在线| 嫩草影院精品99| 成人鲁丝片一二三区免费| 两性午夜刺激爽爽歪歪视频在线观看| 国产真人三级小视频在线观看| 岛国在线免费视频观看| 精品久久久久久久久久免费视频| 女人高潮潮喷娇喘18禁视频| 最近最新免费中文字幕在线| 日日夜夜操网爽| 亚洲av成人不卡在线观看播放网| 免费观看人在逋| 特大巨黑吊av在线直播| 欧美三级亚洲精品| 精品熟女少妇八av免费久了| 久久久精品大字幕| 亚洲国产精品999在线| 亚洲七黄色美女视频| 内地一区二区视频在线| 成年女人看的毛片在线观看| 少妇裸体淫交视频免费看高清| 精品日产1卡2卡| 岛国在线观看网站| 国产成人福利小说| 色综合欧美亚洲国产小说| 国内精品一区二区在线观看| 亚洲,欧美精品.| 18禁黄网站禁片午夜丰满| 中文字幕av在线有码专区| 国产三级在线视频| 十八禁人妻一区二区| 国产激情欧美一区二区| 在线观看一区二区三区| 欧美日韩一级在线毛片| 韩国av一区二区三区四区| 五月伊人婷婷丁香| 亚洲国产色片| 国产精品国产高清国产av| 国产日本99.免费观看| 国产精品电影一区二区三区| 午夜福利欧美成人| 男人和女人高潮做爰伦理| 精品久久久久久久人妻蜜臀av| 人人妻人人澡欧美一区二区| 免费观看的影片在线观看| 99久久精品一区二区三区| 村上凉子中文字幕在线| 午夜老司机福利剧场| 可以在线观看毛片的网站| 日本与韩国留学比较| 一个人观看的视频www高清免费观看| 国产又黄又爽又无遮挡在线| 日本与韩国留学比较| 精品久久久久久久末码| 中文字幕av在线有码专区| 中文字幕人成人乱码亚洲影| 别揉我奶头~嗯~啊~动态视频| 国产精品99久久久久久久久| 国产高清视频在线观看网站| 男女之事视频高清在线观看| 亚洲av熟女| 午夜久久久久精精品| 一区二区三区高清视频在线| 深爱激情五月婷婷| 一卡2卡三卡四卡精品乱码亚洲| 午夜两性在线视频| 国产一区二区亚洲精品在线观看| 色视频www国产| 婷婷精品国产亚洲av| 丰满乱子伦码专区| 久久久国产成人精品二区| 国产精品98久久久久久宅男小说| 亚洲国产欧洲综合997久久,| 熟女人妻精品中文字幕| 美女被艹到高潮喷水动态| 在线a可以看的网站| 丰满人妻一区二区三区视频av | 色精品久久人妻99蜜桃| 国产探花在线观看一区二区| 午夜福利18| 午夜福利在线观看吧| 国产激情欧美一区二区| 女人高潮潮喷娇喘18禁视频| 亚洲av日韩精品久久久久久密| 免费观看的影片在线观看| 亚洲国产日韩欧美精品在线观看 | 国产欧美日韩一区二区三| 给我免费播放毛片高清在线观看| 中文资源天堂在线| www.色视频.com| 女警被强在线播放| 成人国产综合亚洲| 一二三四社区在线视频社区8| 久久精品国产99精品国产亚洲性色| 在线观看免费视频日本深夜| 国产一区二区亚洲精品在线观看| 欧美极品一区二区三区四区| 国产一级毛片七仙女欲春2| 舔av片在线| 亚洲男人的天堂狠狠| 成人高潮视频无遮挡免费网站| 一a级毛片在线观看| 禁无遮挡网站| 欧美+日韩+精品| 黄片小视频在线播放| 欧美色欧美亚洲另类二区| 在线观看免费视频日本深夜| 国产亚洲欧美在线一区二区| 国产麻豆成人av免费视频| 中出人妻视频一区二区| 99久久九九国产精品国产免费| 51国产日韩欧美| 国产精品 欧美亚洲| 在线天堂最新版资源| 国产老妇女一区| 2021天堂中文幕一二区在线观| 91久久精品国产一区二区成人 | 亚洲一区二区三区不卡视频| 日韩欧美国产一区二区入口| 亚洲av美国av| 亚洲人成伊人成综合网2020| 国产伦在线观看视频一区| 午夜免费成人在线视频| 久9热在线精品视频| 最新在线观看一区二区三区| 一个人看视频在线观看www免费 | 久久久国产成人精品二区| 久久精品国产亚洲av涩爱 | ponron亚洲| 淫秽高清视频在线观看| 一本久久中文字幕| 亚洲av成人精品一区久久| 最近最新中文字幕大全电影3| 91九色精品人成在线观看| 国产野战对白在线观看| 免费看美女性在线毛片视频| 一级黄片播放器| 韩国av一区二区三区四区| 亚洲欧美日韩无卡精品| 男女之事视频高清在线观看| 精品久久久久久成人av| 亚洲专区国产一区二区| 美女高潮喷水抽搐中文字幕| 国产淫片久久久久久久久 | 亚洲av电影不卡..在线观看| 亚洲最大成人中文| 久久99热这里只有精品18| 成年人黄色毛片网站| 国产欧美日韩精品一区二区| 日本与韩国留学比较| 精品人妻1区二区| 婷婷精品国产亚洲av在线| 免费看十八禁软件| 欧美绝顶高潮抽搐喷水| 亚洲av成人av| 成年女人毛片免费观看观看9| 老熟妇仑乱视频hdxx| 天天躁日日操中文字幕| 亚洲天堂国产精品一区在线| 身体一侧抽搐| 天堂√8在线中文| 可以在线观看的亚洲视频| 国产亚洲精品一区二区www| avwww免费| 男人的好看免费观看在线视频| 日日摸夜夜添夜夜添小说| 日本与韩国留学比较| 国产精品久久久久久人妻精品电影| 性欧美人与动物交配| 国产精品乱码一区二三区的特点| 久久久久久久久大av| 女人被狂操c到高潮| 亚洲专区中文字幕在线| 免费观看的影片在线观看| 色老头精品视频在线观看| 精品久久久久久久毛片微露脸| 久久久久久久亚洲中文字幕 | 激情在线观看视频在线高清| 高清日韩中文字幕在线| 国产v大片淫在线免费观看| 精品人妻偷拍中文字幕| 午夜老司机福利剧场| 国产精品乱码一区二三区的特点| 久久久久久大精品| 亚洲av成人精品一区久久| 久久这里只有精品中国| 啦啦啦韩国在线观看视频| 在线天堂最新版资源| 成人午夜高清在线视频| 日韩欧美在线二视频| 色在线成人网| 欧美日韩福利视频一区二区| 免费av不卡在线播放| 天美传媒精品一区二区| 色综合婷婷激情| 国产国拍精品亚洲av在线观看 | 国产野战对白在线观看| 欧美日韩福利视频一区二区| 动漫黄色视频在线观看| 中亚洲国语对白在线视频| 内射极品少妇av片p| 国产国拍精品亚洲av在线观看 | 一区福利在线观看| 亚洲一区高清亚洲精品| 成人国产一区最新在线观看| 欧美成狂野欧美在线观看| 网址你懂的国产日韩在线| 免费大片18禁| 免费av观看视频| 天堂√8在线中文| 欧美中文日本在线观看视频| 国产乱人伦免费视频| 国产av不卡久久| 色尼玛亚洲综合影院| 国内精品美女久久久久久| 成年女人永久免费观看视频| 国产97色在线日韩免费| 激情在线观看视频在线高清| 欧美在线黄色| 欧美乱妇无乱码| 无限看片的www在线观看| 亚洲av日韩精品久久久久久密| 免费在线观看日本一区| 日韩欧美精品v在线| 国产老妇女一区| 老汉色∧v一级毛片| 婷婷精品国产亚洲av在线| 亚洲精品乱码久久久v下载方式 | 岛国视频午夜一区免费看| 91在线精品国自产拍蜜月 | 欧美一区二区精品小视频在线| 色综合站精品国产| 成人18禁在线播放| 国产高清视频在线播放一区| 欧美zozozo另类| 免费在线观看成人毛片| 婷婷亚洲欧美| www日本黄色视频网| 在线观看免费午夜福利视频| 中文在线观看免费www的网站| 三级国产精品欧美在线观看| 亚洲无线在线观看| 亚洲精品乱码久久久v下载方式 | 一本久久中文字幕| 欧美日本视频| АⅤ资源中文在线天堂| e午夜精品久久久久久久| av天堂中文字幕网| 亚洲av成人av| 国产视频内射| 精品一区二区三区人妻视频| 毛片女人毛片| 国产午夜福利久久久久久| 免费搜索国产男女视频| 日日摸夜夜添夜夜添小说| 国产不卡一卡二| 亚洲人成伊人成综合网2020| av天堂中文字幕网| 午夜亚洲福利在线播放| 九色国产91popny在线| 最好的美女福利视频网| 99久久无色码亚洲精品果冻| 国产精品一区二区免费欧美| 91久久精品国产一区二区成人 | 久久久久性生活片| 国产毛片a区久久久久| 波多野结衣高清作品| 91麻豆av在线| 一区二区三区高清视频在线| av视频在线观看入口| 国产伦精品一区二区三区四那| 男人舔女人下体高潮全视频| 国产欧美日韩精品一区二区| 精华霜和精华液先用哪个| 午夜激情欧美在线| 中文亚洲av片在线观看爽| 国产黄色小视频在线观看| 欧美乱色亚洲激情| 亚洲av第一区精品v没综合| 搞女人的毛片| av视频在线观看入口| 白带黄色成豆腐渣| 最近最新免费中文字幕在线| 女同久久另类99精品国产91| 男插女下体视频免费在线播放| 精品国产超薄肉色丝袜足j| 男人和女人高潮做爰伦理| 精品一区二区三区人妻视频| 欧美日韩一级在线毛片| 成人国产一区最新在线观看| 国产日本99.免费观看| 色在线成人网| 婷婷丁香在线五月| 久久这里只有精品中国| www.熟女人妻精品国产| 国产伦人伦偷精品视频| 99久久精品一区二区三区| 成年女人永久免费观看视频| 亚洲国产欧美网| 国产精品女同一区二区软件 | 午夜视频国产福利| 亚洲无线在线观看| 中文资源天堂在线| 日本a在线网址| 岛国在线观看网站| 国模一区二区三区四区视频| 九九在线视频观看精品| 午夜免费激情av| 1000部很黄的大片| 美女 人体艺术 gogo| 欧美日本亚洲视频在线播放| 国产精品久久久久久久久免 | 美女高潮喷水抽搐中文字幕| 免费人成在线观看视频色| 女生性感内裤真人,穿戴方法视频| 午夜免费男女啪啪视频观看 | 久久精品91蜜桃| 一级作爱视频免费观看| 午夜福利在线在线| 蜜桃亚洲精品一区二区三区| 在线观看一区二区三区| 制服人妻中文乱码| 少妇的逼好多水| 小蜜桃在线观看免费完整版高清| 免费大片18禁| 老司机在亚洲福利影院| 久久久久国内视频| 12—13女人毛片做爰片一| 男人舔女人下体高潮全视频| 日本在线视频免费播放| 88av欧美| 亚洲中文日韩欧美视频| 制服丝袜大香蕉在线| 日韩精品中文字幕看吧| 免费人成视频x8x8入口观看| 三级男女做爰猛烈吃奶摸视频| 亚洲五月婷婷丁香| 在线观看av片永久免费下载| 非洲黑人性xxxx精品又粗又长| 亚洲精品粉嫩美女一区| 日本一本二区三区精品| 国产亚洲欧美在线一区二区| 亚洲va日本ⅴa欧美va伊人久久| 岛国在线免费视频观看| 亚洲国产高清在线一区二区三| 久99久视频精品免费| 97碰自拍视频| 欧美一级毛片孕妇| 久久久久久久久大av| 精品国内亚洲2022精品成人| 超碰av人人做人人爽久久 | 舔av片在线| 色老头精品视频在线观看| 俺也久久电影网| 婷婷六月久久综合丁香| 99riav亚洲国产免费| 亚洲人成电影免费在线| 全区人妻精品视频| 欧美成人性av电影在线观看| 小蜜桃在线观看免费完整版高清| 黄片小视频在线播放| 亚洲久久久久久中文字幕| 日韩成人在线观看一区二区三区| 午夜激情福利司机影院| 一区二区三区高清视频在线| 给我免费播放毛片高清在线观看| 三级男女做爰猛烈吃奶摸视频| 欧美激情在线99| 国产精品亚洲美女久久久| 淫秽高清视频在线观看| 丁香六月欧美| 老汉色av国产亚洲站长工具| 九色国产91popny在线| 亚洲激情在线av| 内地一区二区视频在线| 国产一区在线观看成人免费| 狂野欧美激情性xxxx| 激情在线观看视频在线高清| 夜夜爽天天搞| 两个人的视频大全免费| 国产精品亚洲av一区麻豆| 婷婷六月久久综合丁香| 国产激情偷乱视频一区二区| 亚洲aⅴ乱码一区二区在线播放| 午夜福利在线观看免费完整高清在 | 日韩欧美三级三区| 校园春色视频在线观看| 18+在线观看网站| 999久久久精品免费观看国产| 欧美在线一区亚洲| 国产熟女xx| 久久久久久久午夜电影| 免费人成在线观看视频色| 亚洲熟妇中文字幕五十中出| 日韩欧美国产在线观看| 九九久久精品国产亚洲av麻豆| 日韩欧美在线二视频| 久久亚洲精品不卡| 特大巨黑吊av在线直播| 五月伊人婷婷丁香| or卡值多少钱| 老司机午夜十八禁免费视频| 麻豆久久精品国产亚洲av| 亚洲最大成人手机在线| 亚洲国产高清在线一区二区三| 久久久久九九精品影院| 国产精品98久久久久久宅男小说| 亚洲五月天丁香| 欧美最新免费一区二区三区 | 日韩成人在线观看一区二区三区| 国产又黄又爽又无遮挡在线| 俄罗斯特黄特色一大片| 中文亚洲av片在线观看爽| 老司机午夜十八禁免费视频| 午夜免费观看网址| 好看av亚洲va欧美ⅴa在| 性色avwww在线观看| 一夜夜www| 人人妻人人看人人澡| 亚洲黑人精品在线| 12—13女人毛片做爰片一| 中出人妻视频一区二区| 国产国拍精品亚洲av在线观看 | 精品久久久久久久毛片微露脸| 黄色日韩在线| 在线观看免费视频日本深夜| 精品一区二区三区视频在线 | 高潮久久久久久久久久久不卡| 制服丝袜大香蕉在线| 午夜福利在线观看免费完整高清在 | 嫁个100分男人电影在线观看| 午夜福利在线在线| 亚洲欧美精品综合久久99| 色噜噜av男人的天堂激情| 国产精品永久免费网站| 舔av片在线| 国产精品亚洲一级av第二区| 国产97色在线日韩免费| 欧美黑人欧美精品刺激| 日韩国内少妇激情av| 麻豆国产av国片精品| 啦啦啦免费观看视频1| 国产精品电影一区二区三区| 国产精品久久久久久人妻精品电影| 国内少妇人妻偷人精品xxx网站| 国产精品久久电影中文字幕| 综合色av麻豆| 女同久久另类99精品国产91| 日本黄色片子视频| 波多野结衣高清作品| 欧美激情久久久久久爽电影| 国产成人aa在线观看| 草草在线视频免费看| 一级毛片高清免费大全| 日韩欧美精品免费久久 | 天美传媒精品一区二区| 12—13女人毛片做爰片一| 蜜桃久久精品国产亚洲av| 欧美性猛交黑人性爽| 女同久久另类99精品国产91| 欧美丝袜亚洲另类 | 少妇丰满av| 一区二区三区国产精品乱码| 最近最新免费中文字幕在线| 99精品在免费线老司机午夜| 热99在线观看视频| 成人欧美大片| 亚洲五月天丁香| 国产男靠女视频免费网站| 精品一区二区三区av网在线观看| а√天堂www在线а√下载| 成人av一区二区三区在线看| svipshipincom国产片| 淫秽高清视频在线观看| 亚洲电影在线观看av| 特大巨黑吊av在线直播| 国产精品日韩av在线免费观看| 麻豆成人av在线观看| 性欧美人与动物交配| 九色成人免费人妻av| av天堂中文字幕网| 女人被狂操c到高潮| 19禁男女啪啪无遮挡网站| 波多野结衣高清作品| 免费无遮挡裸体视频| xxxwww97欧美| 长腿黑丝高跟| 老熟妇乱子伦视频在线观看| 在线看三级毛片| 五月玫瑰六月丁香| 精品福利观看| 国产亚洲欧美98| 哪里可以看免费的av片| 又紧又爽又黄一区二区| 美女高潮的动态| 亚洲内射少妇av| 女同久久另类99精品国产91| 亚洲第一欧美日韩一区二区三区| 国产精品三级大全| 全区人妻精品视频| 成熟少妇高潮喷水视频| 亚洲狠狠婷婷综合久久图片| 999久久久精品免费观看国产| 国产成人啪精品午夜网站| 欧美一区二区亚洲| 久久久久久九九精品二区国产| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 欧美精品啪啪一区二区三区| 无人区码免费观看不卡|