本公開(kāi)涉及計(jì)算機(jī),尤其涉及處理器體系結(jié)構(gòu),具體涉及一種指令編碼方法、裝置、電子設(shè)備、計(jì)算機(jī)可讀緩存介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、指令編碼指的是處理器指令集中指令的二進(jìn)制表示方式。不同的指令集架構(gòu)(isa)有不同的指令編碼格式,這些格式?jīng)Q定了如何將指令、操作數(shù)、寄存器、功能碼等信息編碼為機(jī)器代碼。
2、在此部分中描述的方法不一定是之前已經(jīng)設(shè)想到或采用的方法。除非另有指明,否則不應(yīng)假定此部分中描述的任何方法僅因其包括在此部分中就被認(rèn)為是現(xiàn)有技術(shù)。類(lèi)似地,除非另有指明,否則此部分中提及的問(wèn)題不應(yīng)認(rèn)為在任何現(xiàn)有技術(shù)中已被公認(rèn)。
技術(shù)實(shí)現(xiàn)思路
1、本公開(kāi)提供了一種指令編碼方法、裝置、電子設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
2、根據(jù)本公開(kāi)的一方面,提供了一種指令編碼方法,包括:確定源代碼所指示的至少一個(gè)操作,利用第一指令集架構(gòu)對(duì)所述至少一個(gè)操作中的每個(gè)操作進(jìn)行指令編碼,以得到第一指令流序列,其中,所述第一指令流序列包括至少一個(gè)指令;以及針對(duì)所述至少一個(gè)指令中的每個(gè)指令,響應(yīng)于該指令滿足預(yù)設(shè)條件,基于所述第一指令集架構(gòu)與第二指令集架構(gòu)的指令映射表將該指令轉(zhuǎn)換為以所述第二指令集架構(gòu)編碼的指令,其中,所述指令映射表是預(yù)先構(gòu)建的,并且其中,所述第一指令集架構(gòu)的編碼長(zhǎng)度大于所述第二指令集架構(gòu)的編碼長(zhǎng)度,并且其中,所述預(yù)設(shè)條件包括:該指令對(duì)應(yīng)的操作數(shù)以及操作結(jié)果所對(duì)應(yīng)的寄存器能夠被以所述第二指令集架構(gòu)編碼的指令訪問(wèn)。
3、根據(jù)本公開(kāi)的另一方面,提供了一種指令編碼裝置,包括:確定模塊,被配置為確定源代碼所指示的至少一個(gè)操作;編碼模塊,被配置為利用第一指令集架構(gòu)對(duì)所述至少一個(gè)操作中的每個(gè)操作進(jìn)行指令編碼,以得到第一指令流序列,其中,所述第一指令流序列包括至少一個(gè)指令;以及轉(zhuǎn)換模塊,被配置為針對(duì)所述至少一個(gè)指令中的每個(gè)指令,響應(yīng)于該指令滿足預(yù)設(shè)條件,基于所述第一指令集架構(gòu)與第二指令集架構(gòu)的指令映射表將該指令轉(zhuǎn)換為以所述第二指令集架構(gòu)編碼的指令,其中,所述指令映射表是預(yù)先構(gòu)建的,并且其中,所述第一指令集架構(gòu)的編碼長(zhǎng)度大于所述第二指令集架構(gòu)的編碼長(zhǎng)度,并且其中,所述預(yù)設(shè)條件包括:該指令對(duì)應(yīng)的操作數(shù)以及操作結(jié)果所對(duì)應(yīng)的寄存器能夠被以所述第二指令集架構(gòu)編碼的指令訪問(wèn)。
4、根據(jù)本公開(kāi)的另一方面,提供了一種電子設(shè)備,包括:至少一個(gè)處理器;以及與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行上述方法。
5、根據(jù)本公開(kāi)的另一方面,提供了一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行上述方法。
6、根據(jù)本公開(kāi)的另一方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述方法。
7、根據(jù)本公開(kāi)的一個(gè)或多個(gè)實(shí)施例,提供了一種指令編碼方法,能夠?qū)⒌谝恢噶罴軜?gòu)的編碼轉(zhuǎn)換為長(zhǎng)度較短的第二指令集架構(gòu)的編碼,從而實(shí)現(xiàn)不同長(zhǎng)度的指令編碼的混合使用,以使得編譯期間生成代碼時(shí)能夠選擇合適長(zhǎng)度的指令,優(yōu)化性能和空間效率。
8、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本公開(kāi)的實(shí)施例的關(guān)鍵或重要特征,也不用于限制本公開(kāi)的范圍。本公開(kāi)的其它特征將通過(guò)以下的說(shuō)明書(shū)而變得容易理解。
1.一種指令編碼方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,還包括:
3.根據(jù)權(quán)利要求1或2所述的方法,其中,所述預(yù)設(shè)條件還包括:
4.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的方法,其中,所述預(yù)設(shè)條件還包括:
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其中,所述預(yù)設(shè)條件還包括:
6.根據(jù)權(quán)利要求1-5中任一項(xiàng)所述的方法,其中,所述第一指令集架構(gòu)為64位指令集架構(gòu),所述第二指令集架構(gòu)為32位指令集架構(gòu)。
7.一種指令編碼裝置,包括:
8.根據(jù)權(quán)利要求7所述的裝置,還包括:
9.根據(jù)權(quán)利要求7或8所述的裝置,其中,所述預(yù)設(shè)條件還包括:
10.根據(jù)權(quán)利要求7-9中任一項(xiàng)所述的裝置,其中,所述預(yù)設(shè)條件還包括:
11.根據(jù)權(quán)利要求7-10中任一項(xiàng)所述的裝置,其中,所述預(yù)設(shè)條件還包括:
12.根據(jù)權(quán)利要求6-11中任一項(xiàng)所述的裝置,其中,所述第一指令集架構(gòu)為64位指令集架構(gòu),所述第二指令集架構(gòu)為32位指令集架構(gòu)。
13.一種電子設(shè)備,包括:
14.一種存儲(chǔ)有計(jì)算機(jī)指令的非瞬時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述計(jì)算機(jī)指令用于使所述計(jì)算機(jī)執(zhí)行根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的方法。
15.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其中,所述計(jì)算機(jī)程序在被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-6中任一項(xiàng)所述的方法。