Method and apparatus for managing access to out-of-frame registers
    1.
    发明授权
    Method and apparatus for managing access to out-of-frame registers 有权
    用于管理对帧外寄存器的访问的方法和装置

    公开(公告)号:US07334112B2

    公开(公告)日:2008-02-19

    申请号:US10702355

    申请日:2003-11-06

    IPC分类号: G06F9/312

    摘要: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault. The instruction execution unit executes the instruction is the instruction execution unit determines that the register is within the current register stack frame. When execution of the instruction requires reading from a register referenced by the instruction, the instruction execution unit executes the instruction whether or not the register referenced by the instruction is within the current register stack frame.

    摘要翻译: 公开了用于管理对当前寄存器堆栈帧之外的寄存器的访问的方法和装置。 处理器中的指令执行单元接收要执行的指令。 处理器包括寄存器堆栈,寄存器堆栈包括多个寄存器堆栈帧。 每个寄存器堆栈帧包括零个或多个寄存器。 多个寄存器堆栈帧中的一个是当前寄存器堆栈帧。 当执行指令需要写入由指令引用的寄存器时,指令执行单元确定该指令引用的寄存器是否在当前寄存器堆栈帧内。 如果指令执行单元确定寄存器不在当前寄存器堆栈帧内,则指令执行单元不执行指令,并且例如可能产生故障。 指令执行单元执行指令是指令执行单元确定寄存器在当前寄存器堆栈帧内。 当指令的执行需要从指令引用的寄存器读取时,指令执行单元执行指令,该指令是否由指令引用的寄存器是否在当前寄存器堆栈帧内。

    Method and system for debugging merged functions within a program
    2.
    发明授权
    Method and system for debugging merged functions within a program 有权
    在程序中调试合并功能的方法和系统

    公开(公告)号:US08429632B1

    公开(公告)日:2013-04-23

    申请号:US12495625

    申请日:2009-06-30

    IPC分类号: G06F9/45

    CPC分类号: G06F11/362 G06F8/443

    摘要: A method for debugging the object code of a program is disclosed. While executing an object code segment on an information processing device, a debugger receives a location identifier associated with the object code segment and identifies a call site within a call stack of the program using the location identifier. The call site is responsible for invoking the execution of the object code segment. Next, the debugger scans a call table for an entry of the call site that includes information for locating a debugging information entry within a compilation unit of the program. The debugger retrieves the debugging information entry from the compilation unit using the location information and identifies a unique one of multiple different source code segments as the one corresponding to the object code segment using a source code segment identifier in the debugging information entry.

    摘要翻译: 公开了一种用于调试程序的目标代码的方法。 当在信息处理设备上执行目标代码段时,调试器接收与目标代码段相关联的位置标识符,并使用位置标识符识别程序的调用堆栈内的呼叫站点。 调用站点负责调用目标代码段的执行。 接下来,调试器扫描呼叫表以查找呼叫站点的条目,其中包括用于在程序的编译单元内定位调试信息条目的信息。 调试器使用位置信息从编译单元检索调试信息条目,并使用调试信息条目中的源代码段标识符来识别与目标代码段相对应的多个不同源代码段中的唯一一个。

    Method and apparatus for managing access to out-of-frame Registers
    3.
    发明授权
    Method and apparatus for managing access to out-of-frame Registers 失效
    用于管理对帧外寄存器的访问的方法和装置

    公开(公告)号:US06665793B1

    公开(公告)日:2003-12-16

    申请号:US09473820

    申请日:1999-12-28

    IPC分类号: G06F9312

    摘要: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault. The instruction execution unit executes the instruction is the instruction execution unit determines that the register is within the current register stack frame. When execution of the instruction requires reading from a register referenced by the instruction, the instruction execution unit executes the instruction whether or not the register referenced by the instruction is within the current register stack frame.

    摘要翻译: 公开了用于管理对当前寄存器堆栈帧之外的寄存器的访问的方法和装置。 处理器中的指令执行单元接收要执行的指令。 处理器包括寄存器堆栈,寄存器堆栈包括多个寄存器堆栈帧。 每个寄存器堆栈帧包括零个或多个寄存器。 多个寄存器堆栈帧中的一个是当前寄存器堆栈帧。 当执行指令需要写入由指令引用的寄存器时,指令执行单元确定该指令引用的寄存器是否在当前寄存器堆栈帧内。 如果指令执行单元确定寄存器不在当前寄存器堆栈帧内,则指令执行单元不执行指令,并且例如可能产生故障。 指令执行单元执行指令是指令执行单元确定寄存器在当前寄存器堆栈帧内。 当指令的执行需要从指令引用的寄存器读取时,指令执行单元执行指令,该指令是否由指令引用的寄存器是否在当前寄存器堆栈帧内。

    System and method for optimization of shared data

    公开(公告)号:US06665671B2

    公开(公告)日:2003-12-16

    申请号:US09826273

    申请日:2001-04-04

    申请人: Cary A. Coutant

    发明人: Cary A. Coutant

    IPC分类号: G06F1730

    摘要: A system and method are described for optimizing access of shared data. Briefly described, in architecture, the system can be implemented as follows. The data load optimization system includes a linkage table that contains at least one unresolved data module accessible by a computer program. The linkage table also includes a load determination logic that determines the location of the unresolved data module at load time of the computer program, and a load modification logic that modifies the load instruction in the computer program, at load time of the computer program, to directly load the unresolved data module at the location. The present invention can also be viewed as providing a method for efficiently accessing shared data. In this regard, the method can be broadly summarized by the following steps: (1) generating a linkage table for the computer program when a load instruction in the computer program loads an unresolved data that is not in a same load module as the computer program; (2) determining a location of the unresolved data at load time of the computer program; and (3) modifying the load instruction at load time of the computer program to directly load the unresolved data at the location.

    Method and system for optimizing the object code of a program
    6.
    发明授权
    Method and system for optimizing the object code of a program 有权
    用于优化程序目标代码的方法和系统

    公开(公告)号:US08458681B1

    公开(公告)日:2013-06-04

    申请号:US12495649

    申请日:2009-06-30

    IPC分类号: G06F9/45

    CPC分类号: G06F8/4435 G06F11/3624

    摘要: A method for optimizing the object code of a program is disclosed. A compiler generates, respectively, first and second object code segments for first and second source code segments of the program. If the two object code segments are determined to be identical, the compiler generates first and second debugging information entries in a compilation unit of the program and both entries include information for locating the first object code segment. The compiler inserts two entries into a call table in the compilation unit, each entry including information for locating a respective call site that invokes a respective source code segment within a call stack of the program and information for locating a respective debug information entry. The call table is used for associating an operation within the first object code segment with one of the first and second source code segments at runtime.

    摘要翻译: 公开了一种用于优化程序的目标代码的方法。 编译器分别为程序的第一和第二源代码段分别生成第一和第二目标代码段。 如果确定两个目标代码段相同,则编译器在程序的编译单元中生成第一和第二调试信息条目,并且两个条目包括用于定位第一目标代码段的信息。 编译器将两个条目插入到编译单元的调用表中,每个条目包括用于定位调用程序的调用堆栈内的相应源代码段的相应调用站点的信息和用于定位相应调试信息条目的信息。 呼叫表用于在第一目标代码段中的运算与运行时的第一和第二源代码段之一相关联。

    Method and apparatus for managing access to out-of-frame registers
    7.
    发明授权
    Method and apparatus for managing access to out-of-frame registers 有权
    用于管理对帧外寄存器的访问的方法和装置

    公开(公告)号:US07272702B2

    公开(公告)日:2007-09-18

    申请号:US10702252

    申请日:2003-11-06

    IPC分类号: G06F9/34

    摘要: Method and apparatus for managing access to registers that are outside a current register stack frame are disclosed. An instruction execution unit in a processor receives an instruction to be executed. A processor includes a register stack, the register stack including a plurality of register stack frames. Each of the register stack frames includes zero or more registers. One of the plurality of register stack frames is a current register stack frame. When execution of the instruction requires writing to a register referenced by the instruction, the instruction execution unit determines whether the register referenced by the instruction is within the current register stack frame. If the instruction execution unit determines that the register is not within the current register stack frame, the instruction execution unit does not execute the instruction and may, for example, generate a fault. The instruction execution unit executes the instruction is the instruction execution unit determines that the register is within the current register stack frame. When execution of the instruction requires reading from a register referenced by the instruction, the instruction execution unit executes the instruction whether or not the register referenced by the instruction is within the current register stack frame.

    摘要翻译: 公开了用于管理对当前寄存器堆栈帧之外的寄存器的访问的方法和装置。 处理器中的指令执行单元接收要执行的指令。 处理器包括寄存器堆栈,寄存器堆栈包括多个寄存器堆栈帧。 每个寄存器堆栈帧包括零个或多个寄存器。 多个寄存器堆栈帧中的一个是当前寄存器堆栈帧。 当执行指令需要写入由指令引用的寄存器时,指令执行单元确定该指令引用的寄存器是否在当前寄存器堆栈帧内。 如果指令执行单元确定寄存器不在当前寄存器堆栈帧内,则指令执行单元不执行指令,并且例如可能产生故障。 指令执行单元执行指令是指令执行单元确定寄存器在当前寄存器堆栈帧内。 当指令的执行需要从指令引用的寄存器读取时,指令执行单元执行指令,该指令是否由指令引用的寄存器是否在当前寄存器堆栈帧内。

    Method and apparatus for constructing a stack unwind data structure
    9.
    发明授权
    Method and apparatus for constructing a stack unwind data structure 失效
    用于构建堆叠展开数据结构的方法和装置

    公开(公告)号:US06293712B1

    公开(公告)日:2001-09-25

    申请号:US08941885

    申请日:1997-09-30

    申请人: Cary A. Coutant

    发明人: Cary A. Coutant

    IPC分类号: G06F945

    CPC分类号: G06F8/4441 G06F9/4484

    摘要: A computer-implemented method of constructing a stack unwind data structure is described. In one embodiment, the method commences when a procedure, which comprises part of the computer program, is compiled. The stack unwind data structure construction commences with determining whether the called procedure complies with a default condition for a predetermined characteristic. For example, it may be determined whether a stack frame for the procedure is of a fixed or variable size, with a fixed size stack frame comprising a default condition. If the procedure does not comply with, or varies from, the default condition for this predetermined characteristic, then an unwind record for the procedure is generated, and included within an entry associated with the procedure in the stack unwind data structure. Alternatively, should the procedure comply with the default condition, this unwind record is not generated and accordingly not included within the stack unwind data structure. The method accordingly allows for the construction of a compact stack unwind data structure.

    摘要翻译: 描述了构建堆叠展开数据结构的计算机实现的方法。 在一个实施例中,当编译包括计算机程序的一部分的过程时,该方法开始。 堆叠展开数据结构结构开始于确定被叫过程是否符合预定特性的默认条件。 例如,可以确定用于该过程的堆栈帧是固定的还是可变大小的,其中包括默认条件的固定大小的堆栈帧。 如果该过程与该预定特性的默认条件不符或不同,则生成用于该过程的退绕记录,并且包括在与堆叠展开数据结构中的过程相关联的条目中。 或者,如果程序符合默认条件,则该展开记录不会生成,因此不包括在堆栈展开数据结构中。 因此,该方法允许构造紧凑的堆叠展开数据结构。

    Method and apparatus for switching between multiple implementations of a routine
    10.
    发明授权
    Method and apparatus for switching between multiple implementations of a routine 失效
    用于在例程的多个实现之间切换的方法和装置

    公开(公告)号:US07065754B1

    公开(公告)日:2006-06-20

    申请号:US09702593

    申请日:2000-10-31

    IPC分类号: G06F9/45

    CPC分类号: G06F9/44547

    摘要: Method and apparatus for switching between multiple implementations of a routine. A plurality of implementations of a routine are compiled into respective object code modules. In one embodiment, each implementation of the routine is adapted for a particular hardware configuration. The different object code modules are associated with respective sets of hardware characteristics and with the name of the routine. When the application program and library are loaded into memory of the computer system, a references to the routine are resolved using the sets of hardware characteristics and the hardware configuration of the system.

    摘要翻译: 用于在例程的多个实现之间切换的方法和装置。 程序的多个实现被编译成各自的目标代码模块。 在一个实施例中,该例程的每个实现适用于特定的硬件配置。 不同的目标代码模块与相应的硬件特征集合以及例程的名称相关联。 当应用程序和库被加载到计算机系统的存储器时,使用硬件特性和系统的硬件配置来解决对该例程的引用。