Patents by Inventor Richard Shann
Richard Shann has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 8464235Abstract: A system for providing an assembler for a microprocessor has a file which contains data describing the instruction set of the microprocessor. A translation device for translating into machine language accesses the instruction set descriptors to constrain the machine code output of the assembler to conform to the architecture of the instruction set.Type: GrantFiled: January 13, 2010Date of Patent: June 11, 2013Assignee: STMicroelectronics Ltd.Inventors: Richard Shann, Marian MacCormack
-
Publication number: 20100115498Abstract: A system for providing an assembler for a microprocessor has a file which contains data describing the instruction set of the microprocessor. A translation device for translating into machine language accesses the instruction set descriptors to constrain the machine code output of the assembler to conform to the architecture of the instruction set.Type: ApplicationFiled: January 13, 2010Publication date: May 6, 2010Applicant: STMicroelectronics LimitedInventors: Richard Shann, Marian MacCormack
-
Patent number: 7353508Abstract: Call frame information is used by debugging software. It records how to restore the parent stack frame at any point during execution of a program. It is normally generated during compilation and stored in the executable in a compressed format, consisting of sequences of instructions that describe how the current call frame changes during execution of each function. Described herein is a means of generating call frame information at link time, using linker macro calls generated by a small set of assembler macros.Type: GrantFiled: July 26, 2002Date of Patent: April 1, 2008Assignee: STMicroelectronics LimitedInventors: Antony Bowers, Richard Shann
-
Patent number: 7299462Abstract: A method of preparing an executable program from a plurality of object code modules, at least one of said object code modules including section data specifying a plurality of functions associated with relocation instructions, at least some of which functions are called in the executable program. The method comprises the steps of assigning an attribute to each function, said attribute being capable of providing an indication of whether the function is reachable, reading the section data and relocation instructions to ascertain if the function is called and setting the attribute to indicate the called status and preparing the executable program to only include functions with an indicated called status of reachable. A linker is provided for preparing the executable program from object code modules containing the relocation instructions. A computer program is provided to control the linker.Type: GrantFiled: May 7, 2001Date of Patent: November 20, 2007Assignee: STMicroelectronics LimitedInventors: Richard Shann, Stephen Jones
-
Patent number: 7200843Abstract: A method of linking a plurality of object code modules to form an executable program, each object code module having section data, a set of relocation instructions and one or more symbols, each symbol having a plurality of attributes associated therewith, wherein the relocation instructions include a data retrieval instruction having a symbol field identifying a symbol and an attribute field identifying a symbol attribute associated with the identified symbol to be retrieved, the method including reading at least one relocation instruction from the set of relocation instructions and where the relocation instruction is a data retrieval instruction, determining the symbol identified by the symbol field and retrieving one of the plurality of symbol attributes associated with the symbol in dependence on the contents of the symbol attributes field of the instruction.Type: GrantFiled: December 20, 2001Date of Patent: April 3, 2007Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Patent number: 7155709Abstract: A method of forming an executable program from a plurality of object code modules where each object code module includes a plurality of relocation instructions having at least one information output relocation with a field indicating information to be output. The method includes reading a relocation instruction from one of the object code modules and, when the read relocation instruction is an information output relocation, displaying the information indicated in the field in a human readable form.Type: GrantFiled: March 20, 2002Date of Patent: December 26, 2006Assignee: STMicroelectronics LimitedInventors: Sean McGoogan, Richard Shann
-
Patent number: 7127711Abstract: A linker is described and the method of forming an executable program from object code modules using the linker. The linker uses a linker control language in the form of an ordered sequence of relaxation instructions. The relaxation instructions include a jump relaxation instruction which specifies the instruction count of the relaxation instruction which is subsequently read. In this way, more flexibility can be provided for linkers.Type: GrantFiled: June 1, 2001Date of Patent: October 24, 2006Assignee: STMicroelectronics LimitedInventors: Richard Shann, Stephen Clarke, Benedict Gaster, Con Bradley
-
Patent number: 6928643Abstract: A method of forming an executable program from a plurality of object code modules, each object code module comprising section data and relaxation instructions, at least one of said object code modules comprising a library module of predefined section data and relaxation instructions, the executable program to be run on a target processor having a selected endianness, the method comprising in response to a relaxation instruction, loading a library module into temporary storage; retrieving the value of a first variable, said first variable denoting the selected endianness of the target processor; comparing the value of said first variable with the endianness of the section data and relaxation instructions of the library module; in response to the result of the comparing step not being a match, converting the endianness of the section data of the library module to that of said first variable; processing the relaxation instructions and converted section data to form part of the executable program.Type: GrantFiled: October 16, 2001Date of Patent: August 9, 2005Assignee: STMicroelectronics LimitedInventors: Sean McGoogan, Benedict Gaster, Richard Shann
-
Patent number: 6901584Abstract: A method of assembling a source code module to form an object code module, said source code module including one or more assembler directives, wherein the assembler directives are used to generate relocation instructions in the object code module, the method comprising: reading a plurality of compound relocation sequence definitions stored in a memory, each compound relocation definition sequence comprising a compound relocation indicator and a first sequence of relocation instructions; reading assembler source code from said source code module, said source code generating an associated sequence of relocation instructions for executing the directive; determining if said associated sequence of relocations matches one of said stored sequence of relocation instructions; and if a match of relocation sequences is determined, inserting into said object code module a compound relocation including the compound relocation indicator of said matched compound relocation sequence definition instruction and said matched seType: GrantFiled: November 29, 2001Date of Patent: May 31, 2005Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Patent number: 6859932Abstract: An executable program is prepared from a plurality of object code modules, each object code module including section data and associated relocations and at least one of the object code modules further including code sequences at least some of which are like to be repeatedly included in the executable program. Wherever a code sequence is to be inserted, a relocation instruction specifies the location of the code sequence and the code sequence is inserted into the section data at the appropriate point. A linker, a method for assembling, and a computer program product support these operations.Type: GrantFiled: August 28, 2000Date of Patent: February 22, 2005Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Patent number: 6802060Abstract: A linker and a method of linking object code modules using the linker is described in which a mechanism is defined for defining and passing relocations, termed compound relocations, in the object files, the compound relocations being expandable by the linker into a sequence of relocations all at the same offset. Each compound relocation has a type field denoting a compound relocation type indicator and an offset field indicating the offset where the compound relocation is to be expanded. The method comprises reading a compound relocation, recalling a predefined sequence of relocations, and executing the predefined sequence at the same location as the compound relocation. By defining compound relocations for frequently performed calculations object file bloat can be avoided, as the same sequences are not repeatedly written in the object code files.Type: GrantFiled: October 31, 2000Date of Patent: October 5, 2004Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Patent number: 6704928Abstract: An executable program is prepared from a plurality of object code modules, at least one of the object code modules including section data specifying a plurality of code sequences each associated with relocation instructions identifying condition parameters. Only one of the code sequences is selected for inclusion in the executable program, determined by whether the condition for that parameter is satisfied. A linker for preparing the executable program includes a stack, a relocation module for reading the relocations, carrying out the relocation operations and selecting code sequences for inclusion in the executable program in dependence on values taken from the stack, a section data module for holding section data which is subject to the relocation operations, and a program forming module for preparing executable programs. Also disclosed is a method of assembling an object code module such that the assembled object code module includes the conditional code sequences.Type: GrantFiled: August 28, 2000Date of Patent: March 9, 2004Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Patent number: 6687899Abstract: An executable program is prepared from a plurality of object code modules, each object code module including special relocations that have a type field for identifying the nature of a function to be implemented by the special relocation. The function is selected from a plurality of arithmetic and logical functions. A method of preparing the executed program includes reading the special relocations, determining from the type field the nature of the function to be implemented, carrying out the selected arithmetic or logical function to generate a result value and using the result value in a subsequent special relocation operation. The method may be executed by a linker having a relocation module for reading the special locations and carrying out the relocation operations.Type: GrantFiled: August 28, 2000Date of Patent: February 3, 2004Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Patent number: 6684394Abstract: An executable program is prepared from a plurality of object code modules, each module including relocation instructions having an instruction format which includes a classification field for holding a relocation class indicator and a set of relocation fields for holding relocation data. The meaning of the relocation data depends on the class indicator. The instruction format is common to first and second classes of relocations. The executable program is prepared by reading the relocation instructions and determining from the relocation class indicator the class of the relocation instruction and executing the relocation operations on section data in dependence on the class of relocation instruction indicated by the relocation class indicator.Type: GrantFiled: August 28, 2000Date of Patent: January 27, 2004Assignee: STMicroelectronics LimitedInventor: Richard Shann
-
Publication number: 20040015884Abstract: A method of preparing an executable program from a plurality of object code modules, at least one of said object code modules including section data specifying a plurality of functions associated with relocation instructions, at least some of which functions are called in the executable program. The method comprises the steps of assigning an attribute to each function, said attribute being capable of providing an indication of whether the function is reachable, reading the section data and relocation instructions to ascertain if the function is called and setting the attribute to indicate the called status and preparing the executable program to only include functions with an indicated called status of reachable.Type: ApplicationFiled: May 7, 2001Publication date: January 22, 2004Inventors: Richard Shann, Stephen Jones
-
Publication number: 20030140338Abstract: Call frame information is used by debugging software. It records how to restore the parent stack frame at any point during execution of a program. It is normally generated during compilation and stored in the executable in a compressed format, consisting of sequences of instructions that describe how the current call frame changes during execution of each function. Described herein is a means of generating call frame information at link time, using linker macro calls generated by a small set of assembler macros.Type: ApplicationFiled: July 26, 2002Publication date: July 24, 2003Applicant: STMicroelectronics LimitedInventors: Antony Bowers, Richard Shann
-
Publication number: 20030106048Abstract: A method of forming an executable program from a plurality of object code modules, each object code module including a plurality of relocation instructions having at least one information output relocation with a field indicating information to be output, the method including reading a relocation instruction from one of the object code modules, and when the read relocation instruction is an information output relocation, displaying the information indicated in the field in a human readable form.Type: ApplicationFiled: March 20, 2002Publication date: June 5, 2003Applicant: STMicroelectronics LimitedInventors: Sean McGoogan, Richard Shann
-
Publication number: 20020170041Abstract: A method of forming an executable program from a plurality of object code modules, each object code module having section data, a set of relocation instructions and one or more symbols, each symbol having a plurality of attributes associated therewith, wherein said relocation instructions includes a data retrieval instruction having a symbol field identifying a symbol and an attribute field identifying a symbol attribute associated with said identified symbol to be retrieved, the method includes: reading at least one relocation from said set of relocations instruction and where said relocation instruction is a data retrieval instruction, determining the symbol identified by the symbol field and retrieving one of said plurality of symbol attributes associated with said symbol in dependence on the contents of the symbol attributes field of said instruction.Type: ApplicationFiled: December 20, 2001Publication date: November 14, 2002Applicant: STMicroelectronics LimitedInventor: Richard Shann
-
Publication number: 20020138824Abstract: A method of assembling a source code module to form an object code module, said source code module including one or more assembler directives, wherein the assembler directives are used to generate relocation instructions in the object code module, the method comprising: reading a plurality of compound relocation sequence definitions stored in a memory, each compound relocation definition sequence comprising a compound relocation indicator and a first sequence of relocation instructions; reading assembler source code from said source code module, said source code generating an associated sequence of relocation instructions for executing the directive; determining if said associated sequence of relocations matches one of said stored sequence of relocation instructions; and if a match of relocation sequences is determined, inserting into said object code module a compound relocation including the compound relocation indicator of said matched compound relocation sequence definition instruction and said matched seType: ApplicationFiled: November 29, 2001Publication date: September 26, 2002Inventor: Richard Shann
-
Publication number: 20020124242Abstract: A method of forming an executable program from a plurality of object code modules, each object code module comprising section data and relaxation instructions, at least one of said object code modules comprising a library module of predefined section data and relaxation instructions, the executable program to be run on a target processor having a selected endianness, the method comprising in response to a relaxation instruction, loading a library module into temporary storage; retrieving the value of a first variable, said first variable denoting the selected endianness of the target processor; comparing the value of said first variable with the endianness of the section data and relaxation instructions of the library module; in response to the result of the comparing step not being a match, converting the endianness of the section data of the library module to that of said first variable; processing the relaxation instructions and converted section data to form part of the executable program.Type: ApplicationFiled: October 16, 2001Publication date: September 5, 2002Inventors: Sean McGoogan, Benedict Gaster, Richard Shann