Method and system for performing global processor resource assignment in an assembler
First Claim
1. A method for assembling assembly language code using an assembler, the code including a plurality of code blocks, the plurality of code blocks having a plurality of resource-needs and the plurality of code blocks having a plurality of resources, the method comprising the steps of:
- (a) recognizing a context, the plurality of resource-needs, and the plurality of resources;
(b) automatically assigning at least a portion of the plurality of resources based upon a context, the plurality of resources being defined and managed using a grammar, at least a portion of the plurality of resources being assigned by pairing members of the plurality of resources with the plurality of resource-needs such that no two contexts exist simultaneously at a run time using the same resource; and
(c) creating an executable image based on the assembly language code if all of the plurality of resources-needs have been assigned from the plurality of resources.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for assembling code using an assembler is disclosed. The assembly language code includes a plurality of code blocks associated with resource-needs, such as variables, and resources, such as registers, I/O locations, memory locations, and coprocessors. The method and system include providing a technology that allows the global assignment of resource-needs to resources such that run time resource conflicts are avoided. The method and system further includes providing a grammar for allowing resources to be defined and managed, a grammar for allowing the resource-needs to be defined and managed, a grammar providing definition of code blocks, and a grammar for associating resources with code blocks.
53 Citations
15 Claims
-
1. A method for assembling assembly language code using an assembler, the code including a plurality of code blocks, the plurality of code blocks having a plurality of resource-needs and the plurality of code blocks having a plurality of resources, the method comprising the steps of:
-
(a) recognizing a context, the plurality of resource-needs, and the plurality of resources;
(b) automatically assigning at least a portion of the plurality of resources based upon a context, the plurality of resources being defined and managed using a grammar, at least a portion of the plurality of resources being assigned by pairing members of the plurality of resources with the plurality of resource-needs such that no two contexts exist simultaneously at a run time using the same resource; and
(c) creating an executable image based on the assembly language code if all of the plurality of resources-needs have been assigned from the plurality of resources. - View Dependent Claims (2)
-
-
3. A method for assembling assembly language code using an assembler, the code including a plurality of code blocks, the plurality of code blocks having a plurality of resource-needs and the plurality of code blocks having a plurality of resources, the method comprising the steps of:
-
(a) providing a first grammar for specifying a context;
(b) providing a second grammar for specifying a plurality of resource-needs associated with the context;
(c) providing a third grammar for specifying a plurality of resources associated with the context;
(d) providing a fourth grammar for resolving ambiguities in usage of indirect resources or indirect use of resource-needs within the context;
(e) providing a fifth grammar for resolving ambiguities in indirect control flow changes within the context;
(f) automatically assigning at least portion of the plurality of resources by pairing members of the plurality of resources with the plurality of resource-needs so a portion of the plurality of contexts that exist simultaneously at a run time do not use the same resource. - View Dependent Claims (4, 5, 6, 7, 8, 9)
-
-
10. An assembler for processing assembly language code, the assembly language code including a plurality of code blocks, the plurality of code blocks using a plurality of resources having a plurality of resource-needs, the assembler comprising:
-
a parser and lexer for reading the assembly language code, recognizing a context, recognizing declarations and usages of the plurality of resource-needs and recognizing declarations and usages of the plurality of resources;
a code generator for generating an executable image based on the code; and
a resource manager for automatically assigning at least a portion of the plurality of resources based upon a context, the plurality of resources being defined and managed using a grammar, at least a portion of the plurality of resources being assigned by pairing members of the plurality of resources with the plurality of resource-needs such that no two contexts exist simultaneously at a run time using the same resource. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification