Method and apparatus for improving segmented memory addressing
View Patent ↗A method and apparatus for breaking complex X86 segment operations and segmented addressing into explicit sub-operations so that they may be exposed to compiler or translator-based optimizations.
1. A method of generating computer instructions for a processor comprising:
accessing stored context of present operating state of said processor to determine if a segment check operation can be eliminated when executing a memory access;
issuing a segment check instruction if said stored context does not indicate said segment check operation can be eliminated when executing said memory access, wherein said segment check instruction initiates said segment check operation;
accessing said stored context to determine whether a base add operation can be eliminated when executing said memory access; and
issuing a base add instruction if said stored context does not indicate said base add operation can be eliminated when executing said memory access, wherein said base add instruction initiates said base add operation to generate a linear address for said memory address.
2. A method as recited in claim 1 , further comprising:
determining during execution of said memory access that said segment check operation can be eliminated; and
in response to said determining during execution, suppressing execution of said segment check operation.
3. A method as recited in claim 2 , further comprising:
determining during execution of said memory access that said base add operation can be eliminated; and
in response to said determining during execution, suppressing execution of said base add operation.
4. A method as recited in claim 2 , wherein said determining during execution is based on said stored context.
5. A method as recited in claim 1 , further comprising:
determining during execution of said memory access that said base add operation can be eliminated; and
in response to said determining during execution, suppressing execution of said base add operation.
6. A method as recited in claim 5 , wherein said determining during execution is based on said stored context.
7. A method of generating computer instructions comprising:
issuing a sequence of instructions comprising memory accesses, said issuing the sequence of instructions comprising:
issuing segment check instructions that initiate segment check operations for respective ones of said memory accesses; and
issuing base add instructions that initiate base add operations to generate linear addresses for respective ones of said memory accesses; and
performing an optimizing operation on said sequence of instructions, said performing the optimizing operation comprises accessing stored context of present operating state of a processor.
8. A method as recited in claim 7 , wherein said performing the optimizing operation comprises eliminating at least one of said base add instructions.
9. A method as recited in claim 7 , wherein said performing the optimizing operation comprises eliminating at least one of said segment check instructions.
10. A method as recited in claim 9 , wherein said performing the optimizing operation comprises eliminating at least one of said base add instructions.