用于程序代碼轉換期間的本機代碼和目標代碼的組合執行的方法及裝置的制作方法

            文檔序號:6567698閱讀:195來源:國知局
            專利名稱:用于程序代碼轉換期間的本機代碼和目標代碼的組合執行的方法及裝置的制作方法
            用于程序代碼轉換期間的本機代碼和目標代碼的組合執行的方法及裝置
            本發明總體上涉及計算機和計算機軟件的領域,更具體地講,涉及用于 例如轉換程序代碼的代碼翻譯器、仿真器和加速器的程序代碼轉換方法及裝置。
            在嵌入式和非嵌入式的CPU中,存在占優勢的指令集架構(ISA),有許 多軟件存于其中,假設它們可容易地存取相關軟件,其可被性能"加速"或 "翻譯"至許多可用的處理器而表現較佳的成本/性能優勢。還發現這樣的占 優勢的CPU架構,其被及時鎖住至其ISA,且無法表現性能或符合市場需求。 這樣的CPU將得益于面向軟件的處理器共架構。
            例如,在公布的申請WO00/22521中公開了能夠促進這種加速、翻譯和 共架構能力的程序代碼轉換方法和裝置,WO00/22521的公開通過引用包含于 此。
            庫函數是由另一程序調用以執行特定函數的代碼區段。許多計算環境提 供一種標準庫函數集,例如,操作系統的一部分("系統庫")。在其它情況中, 提供一個或多個專有庫。當主題程序在主題計算環境中運行時,由于函數調 用針對這些外部主題庫而建構,所以控制流通過不同單元的主題代碼之間。 在一些情況下,某些主題庫的本機(即,目標架構)版本在該目標架構上是可獲 得的。因此,期望利用這些本機庫函數,其適于替代將主題庫翻譯為目標代 碼。在程序代碼轉換中本機庫的使用在共同待審查申請US10/748,317(見 WO2005/008478)已加以討"i侖,其乂^開通過引用包含于此。
            發明人已確認此種本機綁定還造成不利。例如,#丸行控制從主題程序被 移除且轉到本機代碼。接著,控制后續的執行(例如,相關子庫的使用)是更為 困難的。再者,可能失去實現最優化的機會。此外,仿真的主題狀態可能變 得不準確。
            根據本發明,提供一種在權利要求中闡述的裝置和方法。本發明的優選 特征從權利要求以及說明來看是清楚的。
            下面是可根據本發明實施例實行的各個方面和優點的概要。提供本發明 作為一種導引,以幫助本領域技術人員能夠更快速地理解詳細的設計討論, 這些設計討論在各方面確保,并且意圖不是以任何方式限制權利要求的范圍。
            在本發明的一方面中,提供一種執行程序代碼的方法,該方法在從可由 主題處理器執行的主題代碼轉換為可由目標處理器執行的目標代碼期間執行 程序代碼,其中,該目標代碼結合可由該目標處理器本地執行的本機代碼可
            被執行,該方法包括在該目標處理器上執行第一主題代碼部分,作為已翻 譯的目標代碼;從該第一主題代碼部分調用,以在該目標處理器上本地執行 本機代碼部分;從該本機代碼部分調用,以執行第二主題代碼部分作為已翻 譯的目標代碼;從該第二主題代碼部分的執行返回到該本機代碼部分的執行; 以及從該本機代碼部分的執行返回到該第 一主題代碼部分的執行。
            在本發明的另一方面中,提供一種執行程序代碼的方法,該方法在從可 由主題處理器執行的主題代碼轉換為可由目標處理器執行的目標代碼之后執 行程序代碼。在該方法中,該目標代碼結合可由該目標處理器本地執行的本 機代碼可被執行。該方法包括至少提供第一、第二和第三主題代碼部分, 并至少提供第一本機代碼部分;從該第一主題代碼部分的執行進行調用以執 行該第一本機代碼部分,使得該第一本機代碼部分被執行以替代該第二主題 代碼部分的已翻譯目標代碼版本的執行;從該第 一本機代碼部分的執行進行 調用以執行該第三主題代碼部分的目標代碼已翻譯版本;從該第三主題代碼 部分的目標代碼已翻譯版本的執行返回到該第一本機代碼部分的執行;以及 從該第 一 本機代碼部分的執行返回到該第 一主題代碼部分的執行。
            在本發明的另一方面中,提供一種程序代碼執行的方法,該方法適用于 從可由主題處理器執行的主題代碼轉換為可由目標處理器執行的目標代碼。 在該方法中,該目標代碼結合可由該目標處理器本地執行的本機代碼可被執 行。該方法包括至少提供第一和第二主題代碼部分,其具有相應的第一和 第二本機代碼部分,其中,該第一本機代碼部分包括到該第二本機代碼部分 的鏈接;將該第一主題代碼部分綁定到該第一本機代碼部分,使得該第一本 機代碼部分被執行以替代該第一主題代碼部分的目標代碼已翻譯版本的執
            行;以及,以到該第二主題代碼部分的鏈接替代該第一本機代碼部分中的該
            本機代碼部分的執行。
            在示例的實施例中,發明人已研發出有關加速程序代碼轉換的方法,這 些方法對于有關實時翻譯器是特別有用的,該實時翻譯器提供主題程序代碼 到目標代碼的動態二進制翻譯。
            本發明的示例實施例改進了進行程序代碼轉換時的性能。特別地,示例
            本發明的實施例使得翻譯器執行從主題代碼到目標代碼的程序代碼轉換,并 結合本機代碼的一些部分有效地執行目標代碼。
            本發明還延伸到翻譯器裝置,其具有被配置為執行在此限定的任何一種 方法的翻譯器單元。另外,本發明延伸到計算機可讀存儲介質,其上記錄可 由計算機執行以實現在此限定的任何一種方法的指令。
            包括在說明書中并組成說明書的一部分的附圖示出了當前的優選實施方
            式,這些附圖如下


            圖1是示出應用了本發明實施例的裝置的框圖2是示出在程序代碼轉換期間執行控制的示例方法的示意性流程圖; 圖3是示例翻譯器中的示例主題程序的示意性表示; 圖4是顯示使用本機綁定的示例實施例的操作流程的示意性框圖; 圖5是示例的反向綁定函數的示意性表示;
            圖6是包括本機綁定函數和反向綁定主題函數的程序代碼的示例;
            圖7是目標處理器中的存儲器的示例布置;
            圖8顯示本機綁定和反向綁定的第一示例機制;
            圖9顯示本機綁定和反向綁定的另一示例機制;以及
            圖10顯示用于在程序代碼轉換的翻譯器中的上下文再使用的示例機制。
            提供以下描述以使本領域技術人員能夠實現并使用本發明,并且該描述 提出由發明人實施其發明所建立的最佳方式。然而,由于本發明的一般原理
            在此已明確地限定以提供一種改善程序代碼轉換的方法與裝置,因此對于本 領域技術人員來說,各種修改仍是明顯可見。
            以下的技術用語中,主題程序在包括主題處理器的主題計算平臺上執行。
            執行主題程序。翻譯器執行從主題代碼至目標代碼的代碼轉換,使得目標代 碼在目標計算平臺上可執行。
            圖1示出了示例的目標計算平臺14,其包括目標處理器13,目標處理器 13包括目標寄存器15和存儲多個軟件組件17、 19、 20、 21、 22、 27和28 的存儲器18。這些軟件組件包括將被翻譯的主題代碼17、操作系統20、翻 譯器代碼19、已翻譯代碼(目標代碼)21、抽象寄存器組(bank)27、本機綁定機 制22,以及本機代碼28。
            由主題代碼17的運行時翻譯所產生的"目標代碼"21以及直接針對目 標架構所編譯的"本機代碼"28之間存在區別。由目標操作系統20所提供 的系統目標庫是本機代碼28的一個示例。相反,主題系統庫的翻譯是目標碼 21的一個示例。本機代碼28是產生于翻譯器19外部。這意味著翻譯器19 并不產生本機代碼28。而且,翻譯器19并不具有最優化本機代碼28的機會。
            在一個實施例中,翻譯器代碼19是仿真器,該仿真器以最優化或非最優 化方式將主題指令集架構(ISA)的主題代碼翻譯為另一 ISA的已翻譯目標代 碼。在另一實施例中,翻譯器19用作加速器,該加速器通過執行程序代碼最 優化以將主題代碼翻譯為每個相同ISA的目標代碼。
            一般而言,目標計算平臺14是一種翻譯器裝置,其包括(特別是)翻譯器 單元19。在示例的實施例中,翻譯器19是實施該翻譯器的源代碼的編譯版
            常為微處理器或其它合適的計算機)上的操作系統20而運行。應理解的是, 圖1中所述的結構僅為示例,例如,本發明的實施例可以在駐留在操作系統 之內或之下的代碼中實施。主題代碼17、編i奪器代碼19、操作系統20以及 存儲器18的存儲結構可以是本領域技術人員所知悉的廣泛種類的任何類型。 在根據圖1的裝置中,當運行目標代碼21時,程序代碼轉換最好在運行 時動態地執行。翻譯器19與已翻譯程序21內聯運行。翻譯器19最好用作針 對目標架構編譯的應用程序。主題程序17在運行時由翻譯器19翻譯,以在 目標架構14上執行。翻譯器19還轉換由主題程序17進行的主題操作系統(OS)
            調用,從而當轉到目標OS 20時,使得它們正確地運行。
            通過翻譯器19運行主題程序17包括二種不同類型且以交錯方式執行的 代碼翻譯器代碼19以及目標代碼21。翻譯器代碼19在運行時之前基于翻 譯器19的高級源代碼實施而由例如編譯器產生。相反,目標代碼21在整個 運行時基于正被翻譯的程序的已存儲的主題代碼17由翻譯器代碼19產生。
            主題程序17意圖在主題處理器(未示出)上運行。在一個實施例中,翻譯 器19用作仿真器。換言之,翻譯器19仿真該主題處理器,而實際上在目標 處理器13上執行主題程序17作為目標代碼21 。
            在示例的實施例中,提供至少一個全局寄存器存儲27(也稱為主題寄存 器組27或抽象寄存器組27)。在多處理器的環境中,根據主題處理器的架構, 可選地提供多于一個的抽象寄存器組27。主題處理器狀態的表示由主題代碼 21和翻譯器19的組件所提供。換言之,翻譯器19將主題處理器狀態(例如 變量和/或對象)存儲在各種顯式編程語言裝置中。用于編譯翻譯器19的編譯 器確定該狀態和操作如何在翻譯器代碼中實施。比較而言,目標代碼21隱式 地提供目標寄存器15和存儲器位置18(由目標代碼21的目標指令所控制)中 的主題處理器狀態。例如,全局寄存器存儲27的低級別表示僅僅是已分配的 存儲器的區域。然而,在翻譯器19的源代碼中,全局寄存器存儲27是可被 較高級地存取和控制的數據數組或對象。
            圖2是示出在程序代碼轉換期間執行控制的示例方法的示意性流程圖。
            如圖2所示,控制初始存在于翻譯器控制循環190中。在步驟201,控 制循環190調用翻譯器19的代碼產生函數192,該代碼產生函數192將主題 代碼17的區塊(block)翻譯為已翻譯代碼21的相應區塊。接著,在步驟202, 已翻譯目標代碼21的區塊在目標處理器13上執行。方便地,已翻譯目標代 碼21的每個區塊的末端含有指令,以將控制返回至控制循環201。換言之, 翻譯和執行主題代碼的步驟是交錯的,使得部分主題程序17被翻譯且接著依 次被執行。
            這里,術語"基本區塊"對于本領域技術人員是熟知的。基本區塊是具 有精確的一個入口點和精確的一個出口點(其將代碼的區塊限制為單一控制 路徑)的代碼區段。為此,基本區塊是有用的控制流的基本單元。翻譯器19 將主題代碼17適當地分為多個基本區塊,其中每個基本區塊是單個入口點處 的第一指令以及單個出口點處的最后指令(例如,跳躍、調用或分支指令)之間
            的序次的一組指令。翻譯器可僅選擇這些基本區塊中的一個區塊(區塊模式), 或選擇一組基本區塊(群組區塊模式)。 一組區塊適當地包括兩個或多個基本區 塊(被一起處理為單個單元)。此外,翻譯器可形成表示主題代碼的相同基本區
            塊但在不同入口條件下的等區塊(iso-block)。
            在示例的實施例中,中間表示(IR)樹基于主題指令序列而產生,作為從 原始主題程序17產生目標代碼21的部分過程。IR樹是由主題程序所計算的 表達式和所執行的操作的抽象表示。之后,目標代碼21基于IR樹而產生。 IR節點的集合實際上是有向無環圖(DAG),但俗稱為"樹"。
            如本領域技術人員可理解的,在一個實施例中,翻譯器19使用面向對象 的編程語言(例如C+十)來實現。例如,IR節點^^實現為C十+對象,對于其 它節點的參照被實現為對應于這些其它節點的c+十對象的C十+引用。因此,
            IR樹被實現為含有各種彼此引用的IR節點對象的集合。
            此外,在討論中的實施例中,IR產生使用與主題架構(主題程序17將在 其上運行)的指定特性相應的一組抽象寄存器定義。例如,針對主題架構上的 各個物理寄存器("主題寄存器"),有獨特的抽象寄存器定義。這樣,翻譯器 中的抽象寄存器定義可以被實現為0++對象,其含有對于IR節點對象(即, IR樹)的引用。由該組抽象寄存器定義所引用的所有IR樹的集合體被稱為工 作IR森林(forest)(稱為"森林"是因為它含有多個抽象寄存器根,每個根指 的是IR樹)。這些IR樹及其它過程適當地形成翻譯器代碼產生函數192的一 部分。
            本機綁定
            圖3是示意性實施例,其顯示將通過翻譯器19執行的主題程序17的多 個編譯單元171、 172和173。在該示例中,可執行的主要主題171調用第一 庫170a中的函數SFuncA 172。該第一主題函數SFuncA的執行依次調用第二 庫170b中的第二主題函數SF皿cB 173。圖3中的箭頭表示主題程序的這些 不同單元之間的控制流。例如,第一庫170a是專有庫,而第二庫170b是系 統庫,反之亦然。
            盡管在圖3中已經顯示了庫以供說明,但是主題代碼單元171、 172和 173可以是任何主題代碼的合適部分。當未使用本機綁定時,主題程序17的 單元171、172和173各自被翻譯為目標代碼21并在翻譯器19的控制下執行。
            圖4示出了在本發明的示例的實施例中使用的本機綁定機制。這里,翻
            譯器19使用本機綁定,以本機系統庫280a中對等效函數的調用來替代主題 程序17中對主題系統庫函數172的調用。換言之,主題程序171實際上反而 調用本機綁定代碼28的區段。主題程序171的已翻譯目標代碼版本含有對本 機綁定代碼28的調用。在這種情況下,該調用被綁定到第一本機庫280a中 的第 一本機函數NFuncA 282。
            亦如圖4所示,在該示意性的示例中,第一本機函數NFuncA 282依次 調用第二本機庫(即子庫)中的第二本機函數NFuncB 283。換言之, 一般預期 的執行順序用于本機綁定代碼的第二區段283的執行,以緊隨本機綁定代碼 的第一區段282的執行。
            在示例的MIPS-x86翻i,中,x86系統目標庫"libc,,可定義高級 memcpy()(存儲器復制)例程,其利用SSE2矢量操作來執行相當快速的字節復 制。通過使用本機綁定機制22,對MIPS主題代碼中的memcpy的所有調用 被綁定到本機的memcpy()。這消除了翻譯memcpy()函數的主題(MIPS)版本 的成本。此外,memcpy()函數的本機(x86)版本具有較好的目標硬件的復雜的 感知力,因此以最具效率的方式提供來實現函數的期望效果。
            當檢測到主題程序的控制流進入主題代碼17(例如主題庫,其中存在主
            效本才幾碼28,而不是翻i奪主題代碼17。
            除了目標系統庫調用外,本機綁定可用于更多的任意碼取代,例如,取 代非庫函數的本機編譯版本。此外,通過以替代的本機函數(其實現與對主題
            系統函數的調用相同的功能,或作為在目標系統調用周圍的調用存根(stub)) 取代對主題系統函數的調用,本機綁定可用于在目標架構上實施主題系統調 用。本機綁定也可在超出函數調用點以外的任意主題代碼位置上應用,以允 許任意碼序列(目標代碼或本機代碼)和/或函數調用在主題程序中的任何限定 明確的點上被插入或取代。
            本機綁定機制22允許翻譯器19將特定主題代碼17函數與其本機代碼 28對應物彼此關聯,使得翻譯器19獲知哪個主題函數進行綁定以及哪個本 機函數將其綁定。翻譯器19可依據本機綁定機制22的實施方式而以不同方 式來獲得該函數映射信息。如共同待審查申請US10/748,317和 WO2005/008478中所討論的,執行本機綁定的特定機制包括綁定點、運行時 符號修補以及S調用。
            譯器19實現本機綁定。翻譯器19執行等
            本機綁定使已翻譯主題代碼直接地執行代碼單元的本機(即,目標架構) 版本,而不是翻譯和執行等效主題代碼,例如,庫的本機版本。這避免了翻
            譯這些庫的主題版本的開銷。此外,因為本機版本可利用目標架構的架構特 性(其是主題版本未察覺的),所以本機版本可以是相同功能的更有效實施。
            盡管本機綁定帶來一些優點,但是也存在限制。特別地,本機代碼28
            并非在翻譯器19的直接控制之下。
            執行本機代碼28不更新由翻譯器19所保持的主題狀態。例如,本機代 碼28不更新抽象寄存器組27。此外,本機代碼不考慮由翻譯器19控制的仿 真的主題存儲器分配,例如,棧和堆存儲器分配。
            本機代碼可調用至一個或多個級別中的一個或多個子庫。翻譯器19不能 通過本機代碼282控制子庫的使用。實際上,通過執行控制遠離翻譯器19的 多個級別,子庫有時是一百個級別深的等級。
            翻譯器19不能執行針對本機代碼28的最優化。例如,翻譯器19能夠最 優化本機代碼庫中的代碼,但該機會由于不在翻譯器19控制之下執行本機代 碼28而喪失。
            還存在關于參數變換的限制。例如,存在一些限制,諸如有關浮點精度, 其中主題程序17、翻譯器19和本機代碼28并非都共享相等的浮點精度。
            本發明的示例實施例提供用于本機綁定的上下文的改進機制,其解決這 些和其它在夾點。
            反向綁定
            圖5示出在本發明示例實施例中使用的反向綁定技術。 如圖5所示,翻譯器19通過本機代碼28的執行而,皮部分地調用,并且 主題代碼17的一部分被執行。控制流接著返回至已綁定的本機代碼28。圖5 的反向綁定技術為混合型。換言之,主題代碼17的一部分(通過翻譯器19) 被執行并在部分本機代碼28之間交錯。特別地,翻譯器19被調用以執行主 題代碼17的一部分,以替代執行本機代碼28的預期下一個部分,或是除了 執行本機代碼28的預期下一個部分以外,還執行主題代碼17的一部分。
            在圖5示出的示例中,在步驟①,主要的主題程序171對第一本機函數
            碼。接著,在步驟②,主題代碼函數SFuncB 173通過翻譯器19被執行為目 標代碼,以取代第二本機函數NFuncB 283。在步驟③,控制返回至本機代碼
            28,以完成NFuncA282的執行。最后,在步驟@,控制返回至主要的可執行 主題171。
            圖6顯示程序代碼的示例區段,以說明反向綁定是特別有幫助的實際情況。
            在該示例中,functionA 171是被翻if和執行為目標代碼的主題代碼。翻 譯器19本機綁定至函數"getSomelnfo" 282的本機代碼版本,其被執行為本 機代碼。該本機函數"getSomelnfo"包括對 "malloc"函數的調用,"malloc" 函數分配存儲器區域,以便"getSomelnfo"函數運行。然而,該存儲器分配 恰好由該主題代碼中的functionA釋放。執行malloc函數的本機版本導致存 儲器泄漏和潛在缺陷。換言之,在主題代碼和本機代碼的執行之間發生了保 持存儲器分配一致性的問題。
            如圖6所示,在此示例中,存在從本機代碼函數"getSomelnfo" 282到 "malloc"函數173的主題代碼版本的反向綁定。在本才幾函數"getSomelnfo" 282的執行期間,對"malloc"函數的調用導致翻譯器19被調用。翻譯器19 將主題"malloc"函數173翻譯為目標代碼。在由翻譯器19所保持的仿真主 題狀態中,"malloc"和"free"此時被正確地酉己對。才丸4亍主題"ma〗loc"函數 173的結果返回至本機"getSomelnfo"函數282,以分配表示aBuffer的存儲 器。
            為了說明起見,圖6的示例已被簡化。反向綁定最好發生在本機綁定碼 中的多個不同點上,并且可發生在多個不同子級別上。
            在特定的示例實施例中,通過由對主題代碼17的反向綁定部分的鏈接替 代綁定本機代碼28中的鏈接來應用反向綁定。
            圖7示出用于執行反向綁定的示例存儲器再尋址機制。圖7是目標處理 器13的存儲器18的示意性表示,該存儲器18存儲本機代碼區段282、 283 以及主題代碼區段173等。在這種情況下,如同圖5 ,在第 一本機庫NLibA 280a 和第二本機庫NLibB 280b中分別提供本機函數NFuncA 282和NFuncB 283。 因此,第 一本機庫NLibA 280a依賴于第二本機庫NLibB 280b,并且NLibB 是NLibA的從屬。在另一實施例中,在單個庫中設置第一函數NFuncA 282 和第二函數NFuncB 283,但NFuncB仍是NFuncA的從屬。
            此外,圖7顯示了已由翻譯器19從主題代碼173產生的目標代碼213。 目標代碼213可在目標處理器13上執行,以替代主題代碼173。
            當需要時,目標架構通常將通過例如動態鏈接程序將本機庫280a以及任 何從屬(例如,庫280b)加載到存儲器18。但是,在本發明的示例實施例中, 當初始化翻譯器19時,將本機庫280a(及其從屬280b)加載到存儲器18。盡 管這消耗較多存儲器,但好處在于本機庫280a、 280b能被翻譯器19立即運用。
            在一個示例中,第一本機庫(NLibA 280a)中的依賴性和符號被解析,并 且第一本機庫280a中的鏈接被替代為主題庫173中的函數的鏈接,以成為反 向綁定主題函數。在圖7中,用對—reverse—NFuncB的調用來替代從NFuncA 282中對NF皿cB的調用。此替代調用以本機函數庫282中的調用存根來適當 地插入。反向調用存根此時通向主題函數SFuncB 173,其由翻譯器19翻譯 并以TFuncB 213被執行為目標代碼。
            現在將詳細描述用于實施本^U綁定和反向綁定的示例^4'J 。
            反向綁定點
            在一個實施例中,使用專用的"反向綁定點"描述語言來識別將被綁定 的本機函數。反向綁定點描述包括(a)將被反向綁定的本機函數;以及(b)相 應的反向綁定主題函數。在執行的開始,翻譯器19讀取反向綁定點描述以識 別反向綁定點(從本機代碼調用主題函數的位置)。
            在本機庫的初始化期間,當翻譯器19遇到這些反向綁定點時,翻譯器 19在本機代碼28中插入對適當的主題函數的調用存根。
            在一個實施例中,特定的反向綁定點描述嵌入到翻譯器19中。在另一實 施例中,反向綁定點描述存儲在翻譯器19運行時讀取的單獨文件中,因此允 許終端用戶通過添加特定的本機對主題函數的映射來控制反向綁定機制22。 修改的本才幾庫
            在另一實施例中,本機庫的特定翻譯器版本被預先創建,當編譯時該版 本具有反向綁定點,例如,嵌入到其中的反向調用存根。
            當調用本機函數時,翻譯器19遵守目標架構的本機調用協定。通過比較, 在整個目標代碼21中,只要翻譯器19遵從一些一致性調用協定,目標代碼 21就不必要遵從目標架構調用協定。因此,當執行本機代碼28時,可應用 第一調用協定,并且當執行目標代碼21時,可應用第二調用協定。在這種情 況下,當在本機代碼28和目標代碼21之間移動時,可實施調用協定切換,
            或反之亦然。
            此外,翻譯器19可能需要執行目標機器狀態(如本機代碼28所表示)和 主題機器狀態(如目標代碼21所表示)之間的數據變換,上述兩種狀態都用于 反向綁定主題函數173的輸入參數和返回值(如果有的話)。這種數據變換的示 例可包括(i)字節序(endian)轉換(即,字節交換);(ii)數據結構對準;(iii)主題 地址和目標地址之間的轉換;以及(iv)值變換(例如,常數轉換或值縮放)。
            例如,在MIPS架構上,函數參數被傳送到寄存器中,而在x86架構上, 參數被傳送到棧上。為了使MIPS-x86翻譯器調用本機函數,x86調用協定需 要將函數參數從主題寄存器組27移動到該棧。相反,對主題MIPS函數的反 向綁定需要將函數參數從該棧移動到主題寄存器組27。
            調用存根
            調用反向綁定主題函數173包含幾個步驟,包括參數設置、輸入參數 變換、函數調用以及結果變換。
            參數設置指的是用于計算函數調用參數的值的代碼。本機代碼28方便地 計算參數值而不考慮函數是被調用作為本機函數283還是作為反向綁定主題
            函數173。
            輸入參數變換將函數調用參數值從其本機代碼28表示組織化為主題函 數173預期的格式和位置。
            函數調用是以遵守應用于翻譯器19中的調用協定的方式對反向綁定主 題函數173的實際函數調用,并且包括(已重新格式化的)參數組織化為函數原 型所需的順序。函數原型指示函數的參數的順序和類型以及函數的返回值的 類型。例如,如果由翻譯器應用的調用協定需要將自變量傳送到棧上,則調 用反向綁定主題函數的代碼以正確順序將自變量放置到主題棧上,并使主題 棧指針相應移動。
            結果變換對主題函數的返回值(如果有的話)進行轉換。反向綁定主題函 數173將以與主題架構一致的格式返回值,翻譯器19將該值轉換為由本機代 碼28所使用的表示。
            "參數變換"指的是不同數據格式之間的所有各種轉換以及目標代碼21 和本機代碼28的調用轉換。執行參數變換的代碼稱為"調用存根",其包括 基本函數調用周圍的最小包裝(wrapper),其目的在于允許本機代碼調用者282 和主題代碼被調用者173相互作用。因此,單個"調用存根"可以被分為本
            機代碼28和目標代碼21成份。參數變換是否整體地發生在目標代碼21中或 本機代碼28中依賴于反向綁定的實施。 本機代碼反向調用存根
            圖8顯示使用在本機代碼中實行的調用存根281、 285的示例實施方式。 當進行從主題代碼171到本機綁定函數282的調用時,使用本機代碼調用存 根281。相反,當進行從綁定本機函數A到反向綁定主題函數B 173的調用 時,使用本機代碼反向調用存根285。在綁定本機代碼282內,翻譯器19用
            屬庫283)。這里,反向調用存根285(預先)寫入到本機代碼中。每個反向調用 存根285執行上述參數變換,并且調用反向綁定主題函數173。
            在一個實施例中,通過限定均勻反向調用存根函數接口而便于進行參數 變換。均勻調用存根函數接口限定所有反向調用存根的固定函數簽名和相應 的數據類型,這允許翻譯器19配置反向調用存根281而不需參照基本主題函 數173的函數簽名(原型)。這允許反向調用存根285可使用高級編程語言(例 如C或C十+)而實施,其使得本機綁定和反向綁定機制更容易被翻譯器19的 終端用戶理解。
            在另 一實施例中,參數變換通過限定雙向均勻調用存根函數接口而便于 進行。該調用存根函數接口限定所有本機綁定函數調用211以及所有反向綁 定函數調用282的固定函數簽名。因此,本機綁定和反向綁定機制更容易被 翻譯器19的終端用戶理解。
            目標代碼調用存根
            圖9顯示使用目標代碼調用存根211和目標代碼反向調用存根215的另 一示例實施方式。這里,本機綁定和反向綁定的參數變換在目標代碼21中整 體地執行。在該實施例中,翻譯器19在譯碼時檢測來自主題代碼171的本機 綁定調用,并且將參數變換編碼為IR樹(其被最終產生為目標代碼)。通過表 示參數變換和IR中的本機函數原型的細節,調用存根代碼211變為合并到主 題代碼(即,調用存根的IR和主題代碼的IR是可區別的)。這允許翻譯器將最 優化(例如,群組區塊)應用于參數變換代碼。相比之下,在本機代碼中執行的 參數變換,例如,在本機代碼調用存根211中所執行的主題寄存器到函數參 數的映射(如上所述),存在于翻譯器19外部,并且不能被容易地最優化。類 似地,在目標代碼中也提供反向調用存根215,并且最優化在翻譯器19內實現。
            本機代碼調用存才艮281、 285以及目標代碼調用存才艮和211、 215按照相 似的成對方式被適當地執行,然而,也可按照混合的成對方式執行。換言之, 本機代碼調用存根281與目標代碼反向調用存根285 —起使用,或反之亦然。
            如上所述,本發明的示例實施例主要涉及以本機函數來替代主題函數(本 機綁定),反之亦然(反向綁定)。然而,本發明的實施例還擴展至任意替代和 添加。特別地,通過將額外反向綁定主題函數調用配置到本機代碼例程來適
            當地實施反向綁定。這里,額外主題函數調用將執行控制臨時地返回到翻譯 器19。舉一示例而言,翻譯器可接著執行代碼,以便于在將控制返回到本機 代碼之前更新仿真的主題狀態。舉另一示例而言,翻譯器可應用特性描述 (profiling),以在主題程序中的特定點上在調用本機綁定代碼或已翻譯主題代 碼之間動態地進行選擇。 上下文再使用
            圖10示出本發明示例實施例的另一方面。
            圖10是上下文線程(thread)214的示意性表示。上下文線程214是一種數
            據結構,其容納不同集合的數據,并允許翻譯器19在多線程的程序上操作。 該示例的數據結構容納(尤其是)抽象寄存器組27的當前值、仿真主題棧的位 置、仿真主題棧的尺寸、線程標識符以及與主題線程的翻譯有關的特定翻譯
            器信息。
            針對多線程程序中的每個線程,產生新的上下文線程。此外,上下文線 程用于每個反向綁定主題函數173。換言之,每當遇到反向綁定函數173時, 翻譯器19提供上下文線程214作為執行該線程的環境。
            不幸地,存在與每個上下文線程的產生有關的開銷。特別地,需要保留 用于上下文線程的空間并接著以適當值來構成該數據結構的工作。新的上下 文線程的產生是相當昂貴的。
            在本發明的示例實施例中,單個上下文線程在多個反向綁定主題函數之 間被共享。最好是,創建單個上下文線程數據結構214a,并接著用于第一反 向綁定主題函數173a,如圖10所示。當主題函數173a完成時,上下文線程 214a被存儲并不被丟棄。該數據結構保留在存儲器18中。
            如圖10所示,當遇到第二反向綁定主題函數173b時,所存儲的主題上 下文被取回并被再使用。這里,所存儲的上下文線程214a被取回并成為用于
            第二反向綁定主題函數173b的上下文線程214b。該過程隨著上下文線程214b 被存儲并被再使用作為用于第三反向綁定主題函數173c的上下文線程214c
            而重復。
            每當上下文線程被再使用時,用對于相應主題函數173b、 173c合適的值 來重新構成上下文線程。然而,該重新構成相比于產生全新的上下文線程而 言是不太昂貴的。因此,翻譯器19中的開銷顯著地減低。
            以上所述的示例實施例具有許多優點。例如,即使當^l行本機代碼28 時,翻譯器也能夠通過將本機代碼的區段反向綁定回至翻譯器中的主題代碼, 來保留執行控制的量度。此外,執行反向綁定主題代碼更新由翻譯器19所保 持的主題狀態,例如,抽象寄存器組27。另外,執行反向綁定主題代碼允許 翻譯器更新仿真主題存儲器分配,例如棧和堆存儲器分配。翻譯器能夠通過 適當地布置反向綁定,來控制綁定本機代碼中的子庫的使用。級別控制被啟 用,并且翻譯器能夠執行最優化。例如,通過避免未與主題代碼共享相等的 浮點數精度的本機代碼函數,來改善參數顯示。
            雖然已示出并描述了一些優選實施例,但本領域的技術人員應理解,在 不脫離權利要求限定的本發明的范圍的情況下,可進行各種變化和修改。
            應注意與本申請相關的與本說明書共同提交或在本說明書之前提交以及 與本說明書公布于公開審查的所有文章和文檔,并且所有這些文章和文檔的
            本說明書(包括任何權利要求、摘要和附圖)所公開的所有特征和/或所公 開的任何方法或過程中的所有步驟都可以按照任何組合方式組合,除了至少 某些特征和/或步驟是相互排斥的組合以外。
            本說明書(包括任何權利要求、摘要和附圖)所公開的各個特征可由提供 相同、等效或相似目的的可選特征取代,除非明確地表明其不適用。因此, 除非明確地表明其不適用,所公開的各個特性僅僅是一系列等效或相似特征 中的一個示例。
            本發明并不限于前述實施例的細節,本發明可延伸至本說明書(包括任何 權利要求、摘要和附圖)所公開的特征中的任一新穎部分或任何新穎的組合, 或是延伸至所公開的任何方法或過程中的步驟的任一新穎部分或任何新穎的組合。
            權利要求
            1、一種執行程序代碼的方法,該方法在從可由主題處理器執行的主題代碼(17)轉換為可由目標處理器(13)執行的目標代碼(21)期間執行程序代碼,該目標代碼(21)結合可由該目標處理器(13)本地執行的本機代碼(28)可由該目標處理器(13)執行,該方法包括以下步驟在該目標處理器上(13)執行第一主題代碼部分(171),作為已翻譯的目標代碼(21);從該第一主題代碼部分(171)調用,以在該目標處理器(13)上本地執行本機代碼部分(282);其中,從該本機代碼部分(282)調用,以執行第二主題代碼部分(173)作為已翻譯的目標代碼(21);從該第二主題代碼部分(173)的執行返回到該本機代碼部分(282)的執行;以及從該本機代碼部分(282)的執行返回到該第一主題代碼部分(171)的執行。
            2、 根據權利要求1所述的方法,其中,該本機代碼部分(282)具有等效 主題代碼部分(172),使得執行該本機代碼部分(282)替代執行該等效主題代碼 部分(172)。
            3、 根據權利要求1所述的方法,其中,該第二主題代碼部分(173)取代 等效本機代碼部分(283),使得執行該第二主題代碼部分(173)替代執行該等效 本機代碼部分(283)。
            4、 根據權利要求1所述的方法,其中,該第二主題代碼部分(173)不具 有等效本機代碼部分(283)。
            5、 根據權利要求1所述的方法,其中,執行該第二主題代碼部分(173) 更新該目標處理器(13)上所保持的仿真主題狀態,以表示在該主題處理器中執 行該主題代碼(17)。
            6、 根據權利要求1所述的方法,還包括以下步驟 確定是執行該第二主題代碼部分(173)還是執行第二本機代碼部分(283);以及提供從該本機代碼部分(282)到該第二本機代碼部分(283)的鏈接,或者提 供從該本機代碼部分(282)到該第二主題代碼部分(173)的鏈接。
            7、 根據權利要求1所述的方法,其中,該第二主題代碼部分(173)提供用于執行的主題庫函數,以替代等效本機庫函數。
            8、 根據權利要求1所述的方法,其中,該本機代碼部分(282)是包括對 從屬第二本機庫函數(NFuncB)的調用的第一本機庫函數(NFuncA),并且該方 法包括以對該第二主題代碼部分(173)的調用取代該調用。
            9、 根據權利要求1所述的方法,還包括以下步驟 將本機庫(280)加載到該目標處理器(13)的存儲器,該本機庫(280)至少包括第 一本機函數(NFuncA)和第二本機函數(NFuncB),其中,該第二本機函數 (NFuncB)是該第一本機函數(NFuncA)的從屬;以及以對與該第二主題代碼部分(173)相關的存儲器位置的調用來取代該本 機庫(280)中對與該第二本機函數(NFuncB)相關的存儲器位置的調用。
            10、 根據權利要求9所述的方法,還包括以下步驟 至少加載第一本機庫(280);解析該第一本機庫(280)中的依賴性,并為一個或多個從屬函數(NFuncB) 分配存儲器位置;以及以對與該第二主題代碼部分(173)相關的存儲器位置的調用來選擇性地 取代該第 一本機庫(280)中對為該 一個或多個從屬函數(NFuncB)中的至少一 個函數分配的存儲器位置的調用。
            11、 根據權利要求6所述的方法,其中,該確定步驟包括提供反向綁 定點描述,該反向綁定點描述包括(a)本機函數(NFuncB)的識別,作為將被 反向綁定的該第二本機代碼部分(283),以及(b)將被調用的主題函數(SFuncB) 的識別,作為用于替代該本機函數(NF皿cB)的該第二主題代碼部分(173)。
            12、 根據權利要求11所述的方法,還包括當遇到包含在該反向綁定點 描述中的該本機函數(NFuncB)時,在該本機代碼部分(282)中插入對該主題函 數(SFuncB)的反向調用存根(215, 285)。
            13、 根據權利要求12所述的方法,還包括在本機函數調用之前、之后 或替代該本機函數調用,在該本機代碼(28)中插入該反向調用存根(215,285)。
            14、 4艮據權利要求11所述的方法,還包括將該反向綁定點描述嵌入到 執行從主題代碼(17)到目標代碼(21)的轉換的翻譯器(19)內。
            15、 根據權利要求11所述的方法,還包括在進行從主題代碼(17)到目 標代碼(21)的轉換的翻譯器(19)的執行開始時,從存儲的反向綁定點描述文件讀取該反向綁定點描述。
            16、 根據權利要求6所述的方法,其中,該確定步驟還包括提供修改 的本機庫(280)作為該本機代碼部分(282),其中,該修改的本機庫(280)適用于 執行從主題代碼(17)到目標代碼(21)的轉換的翻譯器(19),并且其中,該修改 的本機庫(280)包括從該本機庫(280)到該第二主題代碼部分(173)的鏈接。
            17、 根據權利要求1所述的方法,其中,該本機代碼部分(282)提供用于 執行的第一本機庫函數(NFuncA)以替代等效主題庫函數,并且該第二主題代 碼部分(173)提供用于執行的主題庫函數以替代等效本機庫函數,并且該方法 還包括以下步驟將零個或更多個第 一函數參數從目標代碼表示變換為本機代碼表示,并 根據該第 一本機庫函數(NFuncA)的原型利用該零個或更多個已變換的第 一函 數參數調用該第 一本機庫函數(NFuncA);將零個或更多個第二函數參數從本機代碼表示變換為主題代碼表示,并 根據該主題庫函數的原型利用該零個或更多個已變換的第二函數參數調用該 主題庫函數;將已調用的主題庫函數的零個或更多個第二返回值從主題代碼表示變換 為本機代碼表示,并返回到該第一本機庫函數(NFuncA);以及將已調用的本機函數的零個或更多個第一返回值從本機代碼表示變換為 主題代碼表示,并返回到該第一主題代碼部分(171)。
            18、 根據權利要求1所述的方法,還包括插入進行從該本機代碼部分
            19、 根據權利要求18所述的方法,其中,在本機代碼(28)中提供該反向 調用存根(215,285)。
            20、 根據權利要求18所述的方法,其中,該反向調用存根(215, 285)包 括由執行從主題代碼(17)到目標代碼(21)的轉換的翻譯器(19)所產生的目標代 碼(21)。
            21、 根據權利要求20所述的方法,還包括將該反向調用存根(215, 285)的中間表示整合為用于主題代碼(17)的區塊 的中間表示森林;以及產生用于該中間表示森林的目標代碼(21)。
            22、 根據權利要求1所述的方法,還包括以下步驟提供上下文線程數據結構(214),其用于從主題代碼(17)到目標代碼(21) 的轉換;使用該上下文線程數據結構(214),將第二主題代碼部分(173)轉換為該已 翻譯的目標代碼(21)版本;將該上下文線程數據結構(214)存儲在該目標處理器(13)的存儲器中;以及當第二次或之后遇到該第二主題代碼部分(173)時,再使用該存儲的上下 文線程數據結構(214)。
            23、 根據權利要求22所述的方法,還包括以下步驟部分(173b);以及上下文線程數據結構(214)以供使用。
            24、 根據權利要求22所述的方法,其中,該上下文線程數據結構(214) 至少提供抽象寄存器組(27)的表示、仿真主題棧的位置、該仿真主題棧的尺寸、 線程標識符以及與該主題代碼部分的翻譯相關的特定翻譯器信息。
            25、 一種翻譯器裝置,該翻譯器裝置執行從可由主題處理器執行的主題 代碼(17)到可由目標處理器(13)執行的目標代碼(21)的程序代碼轉換,該目標 代碼(21)結合可由該目標處理器(13)本地執行的本機代碼(28)可由該目標處理 器(13)執行,該翻譯器裝置包括翻譯器單元(19),用于將第一主題代碼部分(171)翻譯為用于在該目標處 理器(13)上執行的已翻譯目標代碼(21),其中,已翻譯的第一主題代碼部分(171) 包括用于在該目標處理器(13)上本地執行本機代碼部分(282)的調用,其中,翻譯器單元(19)提供該本機代碼部分(282),以包括用于執行第二碼部分(l73)的執行返回到該本機代碼部分(282)的執行,并使得該本機代碼部 分(282)的執行返回到該第一主題代碼部分(171)的執行。
            26、 根據權利要求25所述的翻譯器裝置,其中,該本機代碼部分(282) 具有等效主題代碼部分(172),使得執行該本機代碼部分(282)替代執行該等效 主題代碼部分(172)。
            27、 根據權利要求25所述的翻譯器裝置,其中,該第二主題代碼部分(173) 取代等效本機代碼部分(283),使得執行該第二主題代碼部分(173)替代執行該 等效本機代碼部分(283)。
            28、 根據權利要求25所述的翻譯器裝置,其中,該第二主題代碼部分(173) 不具有等效本才幾代碼部分(283)。
            29、 根據權利要求25所述的翻譯器裝置,其中,執行該第二主題代碼部 分(173)更新該目標處理器(13)上所保持的仿真主題狀態,以表示在該主題處 理器中執行該主題代碼(17)。
            30、 根據權利要求25所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為確定是執行該第二主題代碼部分(173)還是執行第二本機代碼部分(283), 并且提供從該本機代碼部分(282)到該第二本機代碼部分(283)的鏈接,或者提 供從該本機代碼部分(282)到該第二主題代碼部分(173)的鏈接。
            31、 根據權利要求25所述的翻譯器裝置,其中,該第二主題代碼部分(173) 提供用于執行的主題庫函數,以替代等效本機庫函數。
            32、 根據權利要求25所述的翻譯器裝置,其中,該本機代碼部分(282) 是包括對從屬第二本機庫函數(NFuncB)的調用的第 一本機庫函數(NFuncA), 并且該翻譯器單元(19)被配置為以對該第二主題代碼部分(173)的調用取代該 調用。
            33、 根據權利要求25所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為將本機庫(280)加載到該目標處理器(13)的存儲器,該本機庫(280)至少包 括第 一本機函數(NFuncA)和第二本機函數(NFuncB),其中,該第二本機函數 (NFimcB)是該第 一本機函數(NFuncA)的從屬,并且該翻譯器單元(19)以對與 該第二主題代碼部分(173)相關的存儲器位置的調用來取代該本機庫(280)中 對與該第二本機函數(NFuncB)相關的存儲器位置的調用。
            34、 根據權利要求33所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為至少加載第一本才幾庫(280a),解析該第一本才幾庫(280)中的依賴性,為一 個或多個從屬庫(280b)中的一個或多個從屬函數(NFimcB)分配存儲器位置, 并且以對與該第二主題代碼部分(173)相關的存儲器位置的調用來選擇性地取 代該第一本機庫(280a)中對從屬函數(NFuncB)的分配的存儲器位置的調用。
            35、 根據權利要求30所述的翻譯器裝置,其中,該翻譯器單元(19)參照 反向綁定點描述,該反向綁定點描述包括(a)本機函數的識別,作為將被反 向綁定的該第二本機代碼部分(283),以及(b)將被調用的主題函數的識別,作 為用于替代該本機函數的該第二主題代碼部分(173)。
            36、 根據權利要求35所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為當遇到包含在該反向綁定點描述中的該本機函數時,在該本機代碼部分 (282)中插入對該主題函數的反向調用存根(215, 285)。
            37、 根據權利要求36所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為在本機函數調用之前、之后或替代該本機函數調用,在該本機代碼(28) 中插入該反向調用存根(215, 285)。
            38、 根據權利要求35所述的翻譯器裝置,其中,該反向綁定點描述被嵌 入到該翻"^器裝置內。
            39、 根據權利要求35所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為在該翻譯器裝置的執行開始時,從存儲的反向綁定點描述文件讀取該反 向綁定點描述。
            40、 根據權利要求30所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為提供修改的本機庫(280),其中,該修改的本機庫(280)適用于包含本機代 碼部分(282)的該翻譯器裝置,并且其中,該修改的本機庫(280)包括從該本機 庫(280)到該第二主題代碼部分(173)的鏈接。
            41、 根據權利要求25所述的翻譯器裝置,其中,該本機代碼部分(282) 包括用于執行的第 一本機庫函數(NFuncA)以替代等效主題庫函數(SFuncA), 并且該第二主題代碼部分(l73)包括用于執行的主題庫函數(SFuncB)以替代等 效本機庫函數(NFuncB),并且其中,該翻譯器單元(19)被配置為執行以下步 驟將零個或更多個第一函數參數從目標代碼表示變換為本機代碼表示,并 根據該第一本機庫函數(NF皿cA)的原型利用該零個或更多個已變換的第 一函 數參數調用該第一本機庫函數(NFuncA);將零個或更多個第二函數參數從本機代碼表示變換為主題代碼表示,并 根據該主題庫函數(SFuncB)的原型利用該零個或更多個已變換的第二函數參 數調用該主題庫函數(SFuncB);將已調用的主題庫函數(SFuncB)的零個或更多個第二返回值從主題代碼 表示變換為本機代碼表示,并返回到該第 一本機庫函數(NFuncA);以及將已調用的本機函數(NFuncA)的零個或更多個第一返回值從本機代碼 表示變換為主題代碼表示,并返回到該第一主題代碼部分(171)。
            42、 根據權利要求25所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為插入進行/人該本機代碼部分(282)到該第二主題代碼部分(173)的調用的 反向調用存根(215,285)。
            43、 根據權利要求42所述的翻譯器裝置,其中,在本機代碼(28)中提供 該反向調用存根(215,285)。
            44、 根據權利要求42所述的翻譯器裝置,其中,該反向調用存根(215, 285)碼(21)。
            45、 根據權利要求44所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為將該反向調用存根(215, 285)的中間表示整合為用于主題代碼(17)的區塊 的中間表示森林;以及產生用于該中間表示森林的目標代碼(21)。
            46、 根據權利要求25所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為提供上下文線程數據結構(214),其用于從主題代碼(17)到目標代碼(21) 的轉換;使用該上下文線程數據結構(214),將第二主題代碼部分(173)轉換為該已 翻譯的目標代碼(21)版本;將該上下文線程數據結構(214)存儲在該目標處理器(13)的存儲器中;以及當第二次或之后遇到該第二主題代碼部分(173)時,再使用該存儲的上下 文線程數據結構(214)。
            47、 根據權利要求46所述的翻譯器裝置,其中,該翻譯器單元(19)被配 置為部分(173b);以及該存儲的上下文線程數據結構(214)以供使用。
            48、 根據權利要求46所述的翻譯器裝置,其中,該上下文線程數據結構 (214)至少提供抽象寄存器組的表示、仿真主題棧的位置、該仿真主題棧的尺寸、線程標識符以及與該主題代碼部分的翻譯相關的特定翻譯器信息。
            49、 一種計算機可讀介質,其上記錄可由計算機執行以實現一種程序代 碼轉換的方法的指令,該方法執行從可由主題處理器執行的主題代碼(l7)到可可由該目標處理器(13)本地執行的本機代碼(28)可由該目標處理器(13)執行, 該方法包括以下步驟在該目標處理器上(13)執行第一主題代碼部分(171),作為已翻譯的目標 代碼(21);從該第一主題代碼部分(171)調用,以在該目標處理器(13)上本地執行本 機代碼部分(282);其中,從該本機代碼部分(282)調用,以執行第二主題代碼部分(173)作為 已翻譯的目標代碼(21);從該第二主題代碼部分(173)的執行返回到該本機代碼部分(282)的執行;以及從該本機代碼部分(282)的執行返回到該第 一主題代碼部分(171 )的執行。
            全文摘要
            在程序代碼轉換(特別是動態二進制翻譯)中,主題代碼(17)通過翻譯器(19)被翻譯為目標代碼(21),以在目標處理器(13)上執行。目標代碼的選定部分(例如,庫函數SFuncA(172))被執行本機代碼的一部分(例如本機函數NFuncA(282))所替代。本機函數對于目標處理器是本機特有的。該方法還包括執行主題代碼部分(例如,主題函數SFuncB(173))以替代本機代碼部分(例如,庫函數NFuncB(283))。反向綁定技術以本機代碼的選定部分(特別是本機庫函數)替代主題代碼,以在該翻譯器(19)內保持控制。這有助于維持該翻譯器(19)中的準確主題狀態,還具有其它優點。
            文檔編號G06F9/455GK101189578SQ200680019817
            公開日2008年5月28日 申請日期2006年5月26日 優先權日2005年6月4日
            發明者喬納森·杰·安德魯斯, 杰拉恩特·諾森 申請人:特蘭斯蒂有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品