Patent ID: 8539458

Claim:
At a computer system including one or more processors and system memory, a method for transforming the addressing alignment used in lower level code, the method comprising: an act of accessing a plurality of lower level instructions of lower level code translated from corresponding statements and expressions of higher level code, the statements and expressions from the higher level code defining and using one or more symbols representing offsets in an address space memory resource in accordance with the first addressing alignment; for each of the one or more of symbols, an act of defining a symbol offset flag corresponding to the symbol, each symbol offset flag having a value of TRUE or FALSE, a value of FALSE indicative of the symbol representing the offset in accordance with the first addressing alignment, a value of TRUE indicative of the symbol representing an offset in accordance with the second addressing alignment; an act of initializing each symbol offset flag to FALSE; for each of the plurality of lower level instructions, an act of defining an instruction offset flag corresponding to the lower level instruction, each instruction offset flag having a value of TRUE or FALSE, a value of TRUE indicating that the instruction has been processed to define an offset in accordance with the second addressing alignment; an act of initializing each instruction offset flag to FALSE; an act of identifying each location in the lower level code where instructions deference a pointer; for each identified location: an act of setting the symbol offset flag for the symbol representing the pointer to TRUE; an act of iteratively identifying one or more lower level instructions that have a destination operand symbol with a symbol offset flag set to TRUE and that have an instruction offset flag set to FALSE; for each of the one or more lower level instructions, an act of processing the lower level instruction to change the lower level instruction to comply with the second addressing alignment, including: an act of modifying at least one source operand symbol of the lower level instruction to have addressing alignment based on the second addressing alignment; and an act of setting the instruction offset flag for the lower level instruction to TRUE.