1.一种设备,所述设备包括:
输入电路,用于接收输入数据;
输出电路,用于输出要由数据处理电路执行的指令序列;以及
生成电路,用于执行生成过程以使用所述输入数据生成所述指令序列,所述指令中的至少一些指令被分组为函数,其中
所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在何处的字段;
所述目标是所述函数中的一个函数的入口点;并且
所述生成过程使所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测状态。
2.根据权利要求1所述的数据处理设备,其中
所述控制流推测状态指示控制流推测是否正确地发生。
3.根据前述权利要求中任一项所述的数据处理设备,其中
所述指令序列中的存储所述控制流推测状态的所述至少一条指令被禁止经受所述数据处理电路的数据值推测。
4.根据前述权利要求中任一项所述的设备,其中
所述指令序列中的存储所述控制流推测状态的所述至少一条指令适于使所述数据处理电路执行比较并根据比较结果来存储所述控制流推测状态。
5.根据权利要求4所述的设备,其中
所述输入数据包括对所述函数中的一个函数的调用;并且
所述指令序列在所述目标处包括所述指令序列中的存储所述控制流推测状态的所述至少一条指令。
6.根据权利要求5所述的设备,其中
所述指令序列中与所述调用相关联的所述目标是通过基于所述调用和进行所述调用所针对的数据结构执行查找操作而确定的。
7.根据权利要求6所述的设备,其中
所述调用是虚函数调用;
对与所述数据结构相关联的虚拟表执行所述查找操作,所述虚拟表包括对与所述数据结构相关联的虚函数的入口点的一个或多个引用;并且
在每个所述入口点处,所述比较确定该入口点的地址是否与所述虚拟表中存储的该入口点的地址相对应。
8.根据权利要求6-7中任一项所述的设备,其中
响应于所述比较结果与计算结果相对应,所述控制流推测状态指示控制流推测正确地发生。
9.根据前述权利要求中任一项所述的设备,其中
所述指令序列的至少一个子集符合应用二进制接口;并且
通过根据所述应用二进制接口在存储电路中存储非法值,在所述指令序列中的函数之间保持所存储的控制流推测状态。
10.根据权利要求9所述的设备,其中
响应于所述控制流推测状态指示发生了推测未命中,将所述非法值存储在所述存储电路中。
11.根据权利要求9-10中任一项所述的数据处理设备,其中
所述存储电路包括栈指针寄存器;并且
所述非法值是0。
12.根据前述权利要求中任一项所述的设备,其中
所述指令序列包括访问指令,所述访问指令包括访问地址;并且
所述访问指令的正确执行取决于所述控制流推测状态。
13.根据权利要求12所述的设备,其中
所述指令序列包括对所述访问指令之前的所述访问地址或由所述访问指令从所述访问地址检索到的数据执行运算的指令;并且
所述运算取决于所述控制流推测状态。
14.根据权利要求13所述的设备,其中
所述操作是包括操作数的逻辑与运算;并且
在所述控制流推测状态指示发生推测未命中的情况下,所述操作数是0。
15.一种设备,所述设备包括:
接收装置,用于接收输入数据;
输出装置,用于输出要由处理装置执行的指令序列;以及
执行装置,用于执行生成过程以使用所述输入数据生成所述指令序列,其中所述指令中的至少一些指令被分组为函数,其中
所述指令序列包括用于间接地控制流的装置,所述用于间接地控制流的装置包括指示所述用于间接地控制流的装置的目标存储在何处的字段;
所述目标是所述函数中的一个函数的入口点;并且
所述生成过程使所述指令序列中的至少一条指令在所述用于间接地控制流的装置执行之后存储控制流推测状态。
16.一种方法,所述方法包括:
接收输入数据;
输出要由数据处理电路执行的指令序列;以及
执行生成过程以使用所述输入数据生成所述指令序列,其中所述指令中的至少一些指令被分组为函数,其中
所述指令序列包括间接控制流指令,所述间接控制流指令包括指示所述间接控制流指令的目标存储在何处的字段;
所述目标是所述函数中的一个函数的入口点;并且
所述生成过程使所述指令序列中的至少一条指令在执行所述间接控制流指令之后存储控制流推测状态。
17.一种可读取存储介质,所述可读取存储介质包括根据权利要求16所述的方法产生的计算机程序。