This preview shows page 1. Sign up to view the full content.
Unformatted text preview: n cc.1 t.1 %ecx.1 %edx.1 cc.1 In our translation, we have converted the memory reference by the multiply instruction into an explicit load instruction that reads the data from memory into the processor. We have also assigned operand labels to the values that change each iteration. These labels are a stylized version of the tags generated by register renaming. Thus, the value in register %ecx is identiﬁed by the label %ecx.0 at the beginning of the loop, and by %ecx.1 after it has been updated. The register values that do not change from one iteration to the next would be obtained directly from the register ﬁle during decoding. We also introduce the label t.1 to denote the value read by the load operation and passed to the imull operation, and we explicitly show the destination of the operation. Thus, the pair of operations
load (%eax, %edx.0, 4) imull t.1, %ecx.0 t.1 %ecx.1 indicates that the processor ﬁrst performs a load operation, computing the address using the value of %eax (which does not change during the loop), and the value stored in %edx at the start of the loop. This will yield a temporary value, which we label t.1. The multiply operation then t...
View Full Document
This note was uploaded on 09/02/2010 for the course ELECTRICAL 360 taught by Professor Schultz during the Spring '10 term at BYU.
- Spring '10
- The American