3 ms·
> You can really use a register more than once at the same time because they will be renamed. What do you mean by this? Do you realize register renaming is on
by vardump 11y ago
> You can really use a register more than once at the same time because they will be renamed.
What do you mean by this?
Do you realize register renaming is only done for instruction scheduling purposes, to avoid bubbles in the pipeline?
- Someone 11y agoI guess he refers to pipelining, which sort-of can give you a logical register twice. For example, you may be able write a new value to a register before the instruction writing out the old value has completed.
- chrisseaton 11y agoYes. I'm not an architecture expert but I understand that if you do something like: addl %ebx, %eax movl %eax, foo(%rip) addl %ecx, %eax movl %eax, bar(%rip) Then the second add can start while the first and the first mov are still running, because the logical reuse of eax is independent of the first and so will receive a different entry in the rename buffer. Happy to be confirmed or corrected by someone who knows more.