Methods to eliminate extra memory loads while accessing global variables in position independent code
    1.
    发明授权
    Methods to eliminate extra memory loads while accessing global variables in position independent code 有权
    消除额外的内存负载同时访问位置无关代码的全局变量的方法

    公开(公告)号:US09213531B2

    公开(公告)日:2015-12-15

    申请号:US14267705

    申请日:2014-05-01

    Applicant: Google Inc.

    CPC classification number: G06F8/4434 G06F8/4441 G06F8/447

    Abstract: Methods for reducing memory loads for accessing global variables (globals) when creating executables for position independent (PI) code are disclosed. A first method includes compiling PI code, identifying globals, and determining whether globals are defined in the executable. If a global is not defined in the executable, a definition is created in the executable. A second method includes receiving a list of defined globals from instrumented PI code binary and comparing the list with globals in the PI code. Memory loads are created for globals that are unlisted. A third method includes compiling PI code with special relocations for globals and determining whether globals are defined in the executable. If the global is defined in the executable, the special relocation is replaced with a direct load of the global. If not, the special relocation is replaced with a two-instruction sequence that loads the global's address and then the global's value.

    Abstract translation: 披露了在创建位置无关(PI)代码的可执行文件时减少用于访问全局变量(全局变量)的内存负载的方法。 第一种方法包括编译PI代码,识别全局变量,并确定是否在可执行文件中定义全局变量。 如果在可执行文件中未定义全局,则在可执行文件中创建一个定义。 第二种方法包括从仪器化PI代码二进制中接收定义的全局变量列表,并将该列表与PI代码中的全局变量进行比较。 为未列出的全局变量创建内存加载。 第三种方法包括使用全局变量的特殊重新定位来编译PI代码,并确定是否在可执行文件中定义全局变量。 如果在可执行文件中定义了全局,那么特殊重定位将被替换为全局的直接加载。 如果没有,则特殊重定位将替换为加载全局地址,然后加载全局值的双指令序列。

    Method and apparatus for detecting execution of unsupported instructions while testing multiversioned code
    2.
    发明授权
    Method and apparatus for detecting execution of unsupported instructions while testing multiversioned code 有权
    在测试多重代码时检测不受支持的指令的执行的方法和装置

    公开(公告)号:US09182990B1

    公开(公告)日:2015-11-10

    申请号:US14321308

    申请日:2014-07-01

    Applicant: GOOGLE INC.

    CPC classification number: G06F11/368 G06F9/30174 G06F9/455 G06F11/3664

    Abstract: A system and method for detecting execution of unsupported instructions while testing multiversioned functions within software application code are disclosed. An example method includes annotating a software application's executable binary to distinguish functions that are directed to particular hardware variations. Functions with instructions that are unsupported by a simulated hardware platform variation on which the software application's annotated executable binary will run may then be detected. The contents of the detected functions may be rewritten with trap instructions. At runtime, when executing the software application on the simulated hardware platform variation running on a different physical hardware platform variation, responsive to execution of a function with instructions that are unsupported by the simulated hardware platform, terminating the software application based on the execution of the trap instructions. Execution of unsupported instructions may be detected based on the termination of the software application.

    Abstract translation: 公开了一种用于在软件应用程序代码中测试多种功能的情况下检测不受支持的指令的执行的系统和方法。 示例性方法包括注释软件应用程序的可执行二进制文件以区​​分针对特定硬件变体的功能。 然后可以检测到具有软件应用程序注释的可执行二进制文件将运行的模拟硬件平台变体不支持的指令的功能。 检测到的功能的内容可以用陷阱指令重写。 在运行时,当在模拟的硬件平台上执行软件应用程序时,运行在不同物理硬件平台上的变体,响应于具有由仿真硬件平台不支持的指令的函数的执行,基于执行 陷阱指令。 可以基于软件应用的终止来检测不支持的指令的执行。

    Multiversioned functions
    3.
    发明授权
    Multiversioned functions 有权
    多功能功能

    公开(公告)号:US09081587B1

    公开(公告)日:2015-07-14

    申请号:US13775984

    申请日:2013-02-25

    Applicant: GOOGLE INC.

    CPC classification number: G06F8/443 G06F8/41 G06F8/433 G06F8/44 G06F8/4441

    Abstract: Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for receiving source code that contains a hot function that calls a multiversioned function, where a function definition of the multiversioned function specifies a first version and an alternative second version, and generating compiled code that includes a first and a second clone of the hot function, and a first and a second version of the multiversioned function. In the compiled code, the first clone of the hot function includes a direct call to the first version of the multiversioned function, and the second clone of the hot function includes a direct call to the second version of the multiversioned function.

    Abstract translation: 方法,系统和装置,包括在计算机存储介质上编码的计算机程序,用于接收包含调用多版本功能的热功能的源代码,其中多功能功能的功能定义指定第一版本和替代的第二版本, 以及生成包括热功能的第一和第二克隆的编译代码以及多版本功能的第一和第二版本。 在编译的代码中,热功能的第一个克隆包括直接调用多版本功能的第一个版本,热功能的第二个克隆包括直接调用多版本功能的第二个版本。

Patent Agency Ranking