CN103135964B - 跨指令集调用函数的方法和电子设备 - Google Patents
跨指令集调用函数的方法和电子设备 Download PDFInfo
- Publication number
- CN103135964B CN103135964B CN201110399449.6A CN201110399449A CN103135964B CN 103135964 B CN103135964 B CN 103135964B CN 201110399449 A CN201110399449 A CN 201110399449A CN 103135964 B CN103135964 B CN 103135964B
- Authority
- CN
- China
- Prior art keywords
- storehouse
- function
- processor
- instruction set
- operation result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Exchange Systems With Centralized Control (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种应用于电子设备中的跨指令集调用函数的方法、以及相应的电子设备。根据本发明实施例的跨指令集调用函数的方法,应用于电子设备,其中所述电子设备具有第一处理器架构的处理器。所述方法包括:设置针对第一处理器架构的第一指令集的第一堆栈;构造具有第二处理器架构的虚拟机;设置针对第二处理器架构的第二指令集的第二堆栈;根据第一处理器架构和第二处理器架构,确定并存储第一堆栈和第二堆栈之间的对应关系;以及通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数。
Description
技术领域
本发明涉及一种应用于电子设备中的跨指令集调用函数的方法、以及相应的电子设备。
背景技术
随着科技的发展,例如个人计算机、便携式计算机、平板式计算机之类的计算装置被广泛应用,而用户对于计算机装置的要求也随之向着多样化的趋势发展。已经提出了不同的处理器架构以满足用户多样化的需求。例如具有较强处理能力的X86处理器架构和耗电量较少的ARM处理器架构等。具体地,当进行频繁的数据处理时,X86架构下的计算机能够具有较强的处理能力,以进行高速运算。另一方面,当不需要进行频繁操作,并且ARM架构下的计算机能够长时间待机。
为了方便用户的使用,提出了可运行针对不同架构的应用程序的电子设备(例如,包含两个不同架构的处理单元的电子设备)。然而由于针对不同的处理器架构的指令构成不一致,并且不同架构的处理器所包含的寄存器功能,寄存器个数,编址方式等均不一致,因此在现有技术中,难以通过某一特定架构的处理器直接调用针对另一处理器架构的算法和功能库。
发明内容
本发明实施例的目的在于提供一种应用于电子设备中的跨指令集调用函数的方法、以及相应的电子设备,以解决上述问题。
根据本发明的一个实施例提供了一种跨指令集调用函数的方法,应用于电子设备,其中所述电子设备具有第一处理器架构的处理器。所述方法包括:设置针对第一处理器架构的第一指令集的第一堆栈;构造具有第二处理器架构的虚拟机;设置针对第二处理器架构的第二指令集的第二堆栈;根据第一处理器架构和第二处理器架构,确定并存储第一堆栈和第二堆栈之间的对应关系;以及通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数。
根据本发明的另一实施例提供了一种电子设备,包括:处理单元,处理单元具有第一处理器架构;以及存储单元,连接到处理单元;所述处理单元包括:第一设置模块,配置来在存储单元中设置针对第一处理器架构的第一指令集的第一堆栈,虚拟机模块,配置来构造具有第二处理器架构的虚拟机,第二设置模块,配置来在存储单元中设置针对第二处理器架构的第二指令集的第二堆栈,以及确定模块,配置来根据第一处理器架构和第二处理器架构,确定并存储第一堆栈和第二堆栈之间的对应关系;所述电子设备还包括:管理单元,配置来通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数。
通过上述本发明实施例提供的方案,当用户选择下载存储在服务器端的应用时,通过电子设备中的处理单元可方便地利用针对多个处理器架构的指令集,从而在跨架构代码的执行中实现对于不同指令集中的函数无缝调用,并且保证处理单元的高效率运行。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本发明的示例性实施例。
图1是描述了根据本发明的一个实施例的跨指令集调用函数的方法的流程图。
图2是描述了根据本发明一个实施例,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数的方法的流程图。
图3是示出根据本发明实施例的电子设备的示范性结构框图。
具体实施方式
在下文中,将参考附图详细描述本发明的优选实施例。注意,在本说明书和附图中,具有基本上相同步骤和元素用相同的附图标记来表示,且对这些步骤和元素的重复解释将被省略。
在本发明的以下实施例中,电子设备的具体形式包括但不限于台式计算机、便携式计算机、平板式计算机、个人数字助手、智能电话、游戏机等。
图1是描述了根据本发明的一个实施例的跨指令集调用函数的方法100的流程图。下面,将参照图1来描述根据本发明的一个实施例的跨指令集调用函数的方法。跨指令集调用函数的方法100可应用于上述电子设备。在本实施例中,电子设备可包括具有第一处理器架构的处理器(例如中央处理器,CPU)。根据本发明的一个示例,第一处理器架构可以是X86处理器架构或ARM处理器架构等。
如图1所示,在步骤S101中,设置针对第一处理器架构的第一指令集的第一堆栈。根据本发明的一个示例,电子设备可包括连接到处理器的存储装置。例如,存储器可以是连接到处理器的内部存储器。可通过具有第一处理器架构(以下简称为“第一架构”)的处理器在存储装置中设置针对第一处理器架构的第一指令集的第一堆栈。
在步骤S102中,构造具有第二处理器架构的虚拟机。根据本发明的一个示例,可通过具有第一架构的处理器根据第二处理器架构(以下简称为“第二架构”)的规范来构造具有第二架构的虚拟机。根据本发明的一个示例,第二处理器架构可与第一处理器架构不同。例如,在第一架构为X86处理器架构的情况下,第二架构可以为ARM处理器架构,反之亦然。
在步骤S103中,设置针对第二处理器架构的第二指令集的第二堆栈。根据本发明的一个示例,可通过具有第一架构的处理器在存储装置中设置针对第二处理器架构的第二指令集的第二堆栈。例如,根据第二处理器架构的规范,具有第一架构的处理器可在存储装置的闲置区域中设置第二堆栈。可替换地,电子设备中可包括独立于具有第一架构的处理器设置的管理单元。可通过管理单元在存储装置的闲置区域中设置第二堆栈。在设置第二堆栈后,可将第二堆栈所对应的存储空间的地址发送到虚拟机。此外,第一堆栈和第二堆栈之间可间隔预定的存储空间,以避免第一堆栈和第二堆栈中存储的内容被相互影响。
然后,在步骤S104中,根据第一处理器架构和第二处理器架构,确定并存储第一堆栈和第二堆栈之间的对应关系。例如,第一架构可以为X86处理器架构,而第二架构可以为ARM处理器架构。在步骤S104中,可确定并存储在X86处理器架构下和在ARM处理器架构下,寄存器的对应关系、以及编址方式的对应关系等。
当电子设备执行针对第一处理器架构的第一指令集中的第一函数时,在所执行的第一函数需要调用针对第二处理器架构的第二指令集中的第二函数的情况下,在步骤S105中,可通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数。例如,在步骤S105中,可分析第一函数需要传入第二函数的第一参数的个数与类型,并且根据第一堆栈和第二堆栈之间的对应关系和第一参数的个数与类型,将第一参数放入第二堆栈中。然后,根据放入第二堆栈中的第一参数,通过虚拟机执行第二函数,以实现对第二函数的调用。
通过上述本发明实施例提供的跨指令集调用函数的方法,当用户选择下载存储在服务器端的应用时,通过电子设备中的处理单元可方便地利用针对多个处理器架构的指令集,从而在跨架构代码的执行中实现对于不同指令集中的函数无缝调用,并且保证处理单元的高效率运行。
下面,具体描述图1的步骤S105中通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数的实施例。将参照图2来详细描述根据本发明一个实施例,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数的方法200的流程图。
如上所述,当电子设备所执行的第一函数需要调用的第二函数时,可执行图1中所示的步骤S105,其中所述第一函数包含在针对第一处理器架构的第一指令集中,而所述第二函数包含在针对第二处理器架构的第二指令集中。根据本发明的一个示例,在图2中所示的方法200之前,电子设备还可执行下步骤:通过具有第一处理器架构的处理器在第一处理器架构的环境下运行第一函数,即,运行第一指令集中的第一函数;确定第一函数需要调用在第二处理器架构的环境下的第二函数;以及将第一函数需要传入第二函数的第一参数压入第一堆栈,并触发调用指令。根据本发明的另一示例,将第一函数需要传入第二函数的第一参数压入第一堆栈时,可保持第一堆栈的第一堆栈指针所指向的地址不改变。具体地,将第一函数需要传入第二函数的第一参数压入第一堆栈可包括:将第一函数需要传入第二函数的第一参数压入第一堆栈;以及保持第一堆栈的第一堆栈指针所指向的地址为第一参数被压入第一堆栈之前,该第一堆栈指针所指向的地址。
在如图2所示,在步骤S201中,分析第一函数需要传入第二函数的第一参数的个数与类型。在步骤S202中,响应于所生成的调用指令,根据第一堆栈和第二堆栈之间的对应关系和第一参数的个数与类型,将第一参数放入第二堆栈中。根据本发明的一个示例,在步骤S202中,可修改第二堆栈的第二堆栈指针,以使其指向所存储的第一参数。
然后,在步骤S203中,虚拟机从第二堆栈中获得第一参数,并代入第二指令集的第二函数中。根据本发明的一个示例,可通过具有第一处理器架构的处理器,根据第一处理器架构的规范运行虚拟机。此外,虚拟机可根据第二堆栈指针所指向的地址从第二堆栈中获得第一参数。
在步骤S204中,通过虚拟机执行第二函数,并获得运算结果。从而,根据图2中所示的方法,在执行第一指令集的第一函数时,可方便地调用第二指令集中的第二函数。
此外,方法200还可进一步包括步骤S205至步骤S207。图2所示,在步骤S205中,虚拟机将运算结果放入第二堆栈中。根据本发明的一个示例,在步骤S205中,虚拟机可将运算结果写入在第二堆栈中存储第一参数之后的存储区域中,并相应地修改第二堆栈的第二堆栈指针,以使其指向所存储的运算结果。
然后,在步骤S206中,根据第一堆栈和第二堆栈之间的对应关系,将运算结果放入第一堆栈中。在步骤S207中,处理器在第一处理器架构的环境下根据运算结果继续运行第一函数。即,处理器可根据运算结果继续执行第一指令中的函数。
根据本发明的一个示例,在步骤S206中,在根据第一堆栈和第二堆栈之间的对应关系将运算结果放入第一堆栈时,可修改第一堆栈指针。具体地,在步骤S206中,可根据第一堆栈和第二堆栈之间的对应关系,将运算结果放入第一堆栈,并且修改第一堆栈指针,其中修改后的该第一堆栈指针所指向运算结果被存储的地址。此外,在步骤S207中,可根据修改后的该第一堆栈指针获得运行结果,并且处理器在第一处理器架构的环境下根据运算结果继续运行第一函数。
通过图2中所示的方法,可方便地利用针对多个处理器架构的指令集,从而在跨架构代码的执行中实现对于不同指令集中的函数无缝调用,并且保证处理单元的高效率运行。
下面,参照图3说明本发明的实施例的电子设备。图3是示出根据本发明实施例的电子设备300的示范性结构框图。如图3中所示,本实施例的电子设备300包括具有第一处理器架构的处理单元310、连接到处理单元310的存储单元320、以及管理单元330。显示装置300的各个模块执行上述图1中的显示方法的各个步骤/功能,因此,为了描述简洁,不再具体描述。
例如,处理单元310可包括:第一设置模块311、虚拟机模块312、第二设置模块313和确定模块314。此外,根据本发明的一个示例,第一处理器架构可以是X86处理器架构或ARM处理器架构等。
具体地,第一设置模块311可在存储单元320中设置针对第一处理器架构的第一指令集的第一堆栈。根据本发明的一个示例,存储单元320可以是连接到处理单元310的内部存储器。可通过具有第一处理器架构(以下简称为“第一架构”)的处理单元310在存储单元320中设置针对第一处理器架构的第一指令集的第一堆栈。
虚拟机模块312可构造具有第二处理器架构的虚拟机。根据本发明的一个示例,可通过具有第一架构的处理单元310根据第二处理器架构(以下简称为“第二架构”)的规范来构造具有第二架构的虚拟机。根据本发明的一个示例,第二处理器架构可与第一处理器架构不同。例如,在第一架构为X86处理器架构的情况下,第二架构可以为ARM处理器架构,反之亦然。
第二设置模块313可在存储单元中设置针对第二处理器架构的第二指令集的第二堆栈。虽然在本示例中第二设置模块313包括在处理单元310中,但是本发明不限于此。根据本发明的一个示例,第二设置模块313还可包括在管理单元320中。在设置第二堆栈后,可将第二堆栈所对应的存储空间的地址发送到虚拟机。此外,第一堆栈和第二堆栈之间可间隔预定的存储空间,以避免第一堆栈和第二堆栈中存储的内容被相互影响。
确定模块314可根据第一处理器架构和第二处理器架构,确定并存储第一堆栈和第二堆栈之间的对应关系。例如,第一架构可以为X86处理器架构,而第二架构可以为ARM处理器架构。确定模块314可确定并存储在X86处理器架构下和在ARM处理器架构下,寄存器的对应关系、以及编址方式的对应关系等。
当处理单元执行针对第一处理器架构的第一指令集中的第一函数时,在所执行的第一函数需要调用针对第二处理器架构的第二指令集中的第二函数的情况下,管理单元330可通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数。根据本发明的一个示例,管理单元330可分析第一函数需要传入第二函数的第一参数的个数与类型,并且根据第一堆栈和第二堆栈之间的对应关系和第一参数的个数与类型,将第一参数放入第二堆栈中。然后,根据放入第二堆栈中的第一参数,通过虚拟机执行第二函数,以实现对第二函数的调用。
应注意,虽然在图3所示的实施例中,管理单元330独立于具有第一架构的处理单元310,但是本发明不限于此。在可替换的实施例中,管理单元330可被包含在处理单元310中,作为其中的一个模块,
在上述本发明的实施例中,当用户选择下载存储在服务器端的应用时,通过电子设备中的处理单元可方便地利用针对多个处理器架构的指令集,从而在跨架构代码的执行中实现对于不同指令集中的函数无缝调用,并且保证处理单元的高效率运行。
下面,具体描述管理单元330根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数的一个实施例。
如上所述,当处理单元所执行的第一函数需要调用的第二函数时,管理单元330可通过第二堆栈,根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数,其中所述第一函数包含在针对第一处理器架构的第一指令集中,而所述第二函数包含在针对第二处理器架构的第二指令集中。根据本发明的一个示例,处理单元还可包括函数运行模块和第一堆栈控制模块(未示出)。在管理单元330根据第一堆栈和第二堆栈之间的对应关系调用第二指令集中的第二函数之前,函数运行模块可在第一处理器架构的环境下运行第一函数,即,运行第一指令集中的第一函数。此外函数运行模块还可确定第一函数需要调用在第二处理器架构的环境下的第二函数。第一堆栈控制模块可将第一函数需要传入第二函数的第一参数压入第一堆栈,并触发调用指令。根据本发明的另一示例,将第一函数需要传入第二函数的第一参数压入第一堆栈时,可保持第一堆栈的第一堆栈指针所指向的地址不改变。具体地,当调用模块将第一函数需要传入第二函数的第一参数压入第一堆栈时,第一堆栈控制模块还配置来保持第一堆栈的第一堆栈指针所指向的地址为第一参数被压入第一堆栈之前,该第一堆栈指针所指向的地址。
然后,如上所述,管理单元可分析第一参数的个数与类型,并且响应于调用指令,根据第一堆栈和第二堆栈之间的对应关系和第一参数的个数与类型,将第一参数放入第二堆栈中。根据本发明的一个示例,管理单元可修改第二堆栈的第二堆栈指针,以使其指向所存储的第一参数。
在管理单元将第一参数放入第二堆栈之后,虚拟机可从第二堆栈中获得第一参数,将第一参数代入第二函数中。根据本发明的一个示例,可通过具有第一处理器架构的处理器,根据第一处理器架构的规范运行虚拟机。此外,虚拟机可根据第二堆栈指针所指向的地址从第二堆栈中获得第一参数。然后,虚拟机可执行第二函数,并获得运算结果。从而,通过管理单元,在执行第一指令集的第一函数时,可方便地调用第二指令集中的第二函数。
此外,在执行第二函数并获得运算结果后,虚拟机还可将运算结果放入第二堆栈中。根据本发明的一个示例,虚拟机可将运算结果写入在第二堆栈中存储第一参数之后的存储区域中,并相应地修改第二堆栈的第二堆栈指针,以使其指向所存储的运算结果。
然后,管理单元可根据第一堆栈和第二堆栈之间的对应关系,将运算结果放入第一堆栈中。函数运行模块还可在第一处理器架构的环境下根据运算结果继续运行第一函数。即,函数运行模块可根据运算结果继续执行第一指令中的函数。
根据本发明的一个示例,当根据第一堆栈和第二堆栈之间的对应关系,将运算结果放入第一堆栈时,管理单元还可修改第一堆栈指针,其中修改后的该第一堆栈指针所指向运算结果被存储的地址。此外,函数运行模块可根据修改后的该第一堆栈指针获得运行结果,并且在第一处理器架构的环境下根据运算结果继续运行第一函数。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元、模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现。并且软件模块可以置于任意形式的计算机存储介质中。为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
本领域技术人员应该理解,可依赖于设计需求和其它因素对本发明进行各种修改、组合、部分组合和替换,只要它们在所附权利要求书及其等价物的范围内。
Claims (13)
1.一种跨指令集调用函数的方法,应用于电子设备,其中所述电子设备包括具有第一处理器架构的处理器,所述方法包括:
设置针对所述第一处理器架构的第一指令集的第一堆栈;
构造具有第二处理器架构的虚拟机;
设置针对所述第二处理器架构的第二指令集的第二堆栈;
根据所述第一处理器架构和所述第二处理器架构,确定并存储所述第一堆栈和所述第二堆栈之间的对应关系;以及
通过所述第二堆栈,根据所述第一堆栈和所述第二堆栈之间的对应关系调用所述第二指令集中的第二函数,其中
在通过所述第二堆栈,根据所述第一堆栈和所述第二堆栈之间的对应关系调用所述第二指令集中的第二函数之前,所述方法还包括:
通过所述处理器在所述第一处理器架构的环境下运行第一函数;
确定所述第一函数需要调用在所述第二处理器架构的环境下的第二函数;以及
将所述第一函数需要传入所述第二函数的第一参数压入所述第一堆栈,并触发调用指令。
2.如权利要求1所述的方法,其中所述设置针对所述第二处理器架构的第二指令集的第二堆栈包括:
通过所述处理器设置针对所述第二处理器架构的第二指令集的第二堆栈。
3.如权利要求1所述的方法,其中所述将所述第一函数需要传入所述第二函数的第一参数压入所述第一堆栈包括:
将所述第一函数需要传入所述第二函数的第一参数压入所述第一堆栈;以及
保持所述第一堆栈的第一堆栈指针所指向的地址为第一参数被压入所述第一堆栈之前,该第一堆栈指针所指向的地址。
4.如权利要求1所述的方法,所述通过所述第二堆栈,根据所述第一堆栈和所述第二堆栈之间的对应关系调用所述第二指令集中的第二函数包括:
分析所述第一参数的个数与类型;
响应于所述调用指令,根据所述第一堆栈和所述第二堆栈之间的对应关系和所述第一参数的个数与类型,将所述第一参数放入所述第二堆栈中。
5.如权利要求4所述的方法,所述通过所述第二堆栈,根据所述第一堆栈和所述第二堆栈之间应关系调用所述第二指令集中的第二函数还包括:
所述虚拟机从所述第二堆栈中获得所述第一参数,并代入所述第二函数中;
所述虚拟机执行所述第二函数,并获得运算结果。
6.如权利要求5所述的方法,在通过所述第二堆栈,根据所述第一堆栈和所述第二堆栈之间的对应关系调用所述第二指令集中的第二函数之后,所述方法还包括:
所述虚拟机将所述运算结果放入所述第二堆栈中,
根据所述第一堆栈和所述第二堆栈之间的对应关系,将所述运算结果放入所述第一堆栈中;以及
所述处理器在所述第一处理器架构的环境下根据所述运算结果继续运行所述第一函数。
7.如权利要求6所述的方法,其中
所述根据所述第一堆栈和所述第二堆栈之间的对应关系,将所述运算结果放入所述第一堆栈中包括:
根据所述第一堆栈和所述第二堆栈之间的对应关系,将所述运算结果放入所述第一堆栈,以及
修改所述第一堆栈指针,其中修改后的该第一堆栈指针所指向所述运算结果被存储的地址;
所述处理器在所述第一处理器架构的环境下根据所述运算结果继续运行所述第一函数包括:
根据所述修改后的该第一堆栈指针获得所述运行结果,以及
所述处理器在所述第一处理器架构的环境下根据所述运算结果继续运行所述第一函数。
8.一种电子设备,包括:
处理单元,所述处理单元具有第一处理器架构;以及
存储单元,连接到所述处理单元;
所述处理单元包括:
第一设置模块,配置来在所述存储单元中设置针对所述第一处理器架构的第一指令集的第一堆栈,
虚拟机模块,配置来构造具有第二处理器架构的虚拟机,
第二设置模块,配置来在所述存储单元中设置针对所述第二处理器架构的第二指令集的第二堆栈,以及
确定模块,配置来根据所述第一处理器架构和所述第二处理器架构,确定并存储所述第一堆栈和所述第二堆栈之间的对应关系;
所述电子设备还包括:
管理单元,配置来通过所述第二堆栈,根据所述第一堆栈和所述第二堆栈之间的对应关系调用所述第二指令集中的第二函数,其中
所述处理单元还包括:
函数运行模块,配置来在所述第一处理器架构的环境下运行第一函数,并且确定所述第一函数需要调用在所述第二处理器架构的环境下的第二函数;以及
第一堆栈控制模块,配置来将所述第一函数需要传入所述第二函数的第一参数压入所述第一堆栈,并触发调用指令。
9.如权利要求8所述的电子设备,其中
当所述调用模块将所述第一函数需要传入所述第二函数的第一参数压入所述第一堆栈时,所述第一堆栈控制模块还配置来保持所述第一堆栈的第一堆栈指针所指向的地址为第一参数被压入所述第一堆栈之前,该第一堆栈指针所指向的地址。
10.如权利要求8所述的电子设备,其中
所述管理单元分析所述第一参数的个数与类型,并且响应于所述调用指令,根据所述第一堆栈和所述第二堆栈之间的对应关系和所述第一参数的个数与类型,将所述第一参数放入所述第二堆栈中。
11.如权利要求10所述的电子设备,其中
所述虚拟机配置来从所述第二堆栈中获得所述第一参数,将所述第一参数代入所述第二函数中,执行所述第二函数,并获得运算结果。
12.如权利要求11所述的电子设备,其中
所述虚拟机还配置来将所述运算结果放入所述第二堆栈中,
所述管理单元根据所述第一堆栈和所述第二堆栈之间的对应关系,将所述运算结果放入所述第一堆栈中;以及
所述函数运行模块还配置来在所述第一处理器架构的环境下根据所述运算结果继续运行所述第一函数。
13.如权利要求12所述的电子设备,其中
当根据所述第一堆栈和所述第二堆栈之间的对应关系,将所述运算结果放入所述第一堆栈时,所述管理单元还配置来修改所述第一堆栈指针,其中修改后的该第一堆栈指针所指向所述运算结果被存储的地址;
所述函数运行模块根据所述修改后的该第一堆栈指针获得所述运行结果,并且在所述第一处理器架构的环境下根据所述运算结果继续运行所述第一函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110399449.6A CN103135964B (zh) | 2011-12-05 | 2011-12-05 | 跨指令集调用函数的方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110399449.6A CN103135964B (zh) | 2011-12-05 | 2011-12-05 | 跨指令集调用函数的方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103135964A CN103135964A (zh) | 2013-06-05 |
CN103135964B true CN103135964B (zh) | 2015-09-23 |
Family
ID=48495843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110399449.6A Active CN103135964B (zh) | 2011-12-05 | 2011-12-05 | 跨指令集调用函数的方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103135964B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882754B (zh) * | 2019-11-29 | 2023-07-07 | 大唐移动通信设备有限公司 | 一种函数调用方法及处理器 |
CN112631733B (zh) * | 2020-12-31 | 2024-01-02 | 中电长城网际安全技术研究院(北京)有限公司 | 数据采集方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2367654B (en) * | 2000-10-05 | 2004-10-27 | Advanced Risc Mach Ltd | Storing stack operands in registers |
US8621458B2 (en) * | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
CN100514298C (zh) * | 2006-08-04 | 2009-07-15 | 深圳市研祥智能科技股份有限公司 | 异构硬件体系间软件移植的系统 |
CN101246537B (zh) * | 2008-03-28 | 2010-06-02 | 上海中标软件有限公司 | 一种基于可信多任务操作系统实现可信计算的方法 |
-
2011
- 2011-12-05 CN CN201110399449.6A patent/CN103135964B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103135964A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6207818B2 (ja) | システムオンチップ及びその動作方法並びに携帯用装置 | |
Liu et al. | Energy reduction with run-time partial reconfiguration | |
EP3333733B1 (en) | Method and device for use in parallel execution of terminal database | |
WO2021223658A1 (zh) | 小程序的更新 | |
Gao et al. | On exploiting dynamic execution patterns for workload offloading in mobile cloud applications | |
CN102236621A (zh) | 计算机接口信息配置系统及方法 | |
CN103443763B (zh) | 包含对重写虚拟函数的调用的支持的isa桥接 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
CN103678187B (zh) | 一种微控制单元及其控制方法 | |
CN105975816A (zh) | 移动终端下基于虚拟技术的代码保护方法及系统 | |
CN111008132B (zh) | Android系统的应用调试方法、装置、计算机设备和存储介质 | |
CN109144756A (zh) | 一种栈溢出处理的方法及装置 | |
CN110879742A (zh) | 虚拟机异步创建内部快照方法、装置及存储介质 | |
CN115017058B (zh) | 一种内核模块的测试方法、装置、电子设备及存储介质 | |
CN114095567A (zh) | 数据访问请求的处理方法、装置、计算机设备及介质 | |
CN104156305A (zh) | 一种应用程序测试方法及装置 | |
CN111045707B (zh) | 小程序的更新方法、装置、计算机设备和存储介质 | |
CN103135964B (zh) | 跨指令集调用函数的方法和电子设备 | |
CN105404574A (zh) | 一种智能卡与移动终端一致性测试方法及装置 | |
CN105653133A (zh) | 应用程序的扩展方法及装置 | |
CN107436839B (zh) | 进程负载获取方法、电子终端及计算机可读存储介质 | |
CN114282486A (zh) | 时序逻辑器件的布局方法及装置、电子设备及存储介质 | |
US8484517B2 (en) | High compression program flow trace | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN103309690A (zh) | 处理数据的方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |