Hi David,<div>can you point me to an instruction in the X86 architecture that uses this?</div><div><br></div><div>The MUL instruction would be a good example?</div><div><br></div><div>Thanks</div><div>Marcello<br><br><div class="gmail_quote">
2012/10/2  <span dir="ltr"><<a href="mailto:dag@cray.com" target="_blank">dag@cray.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
Marcello Maggioni <<a href="mailto:hayarms@gmail.com">hayarms@gmail.com</a>> writes:<br>
<br>
> I'm working on an LLVM backend for a new target architecture which has<br>
> some instructions that when executed implicitly produce a result in a<br>
> particular register after a certain amount of cycles.<br>
><br>
> The situation is this :<br>
><br>
> 1: Execute instruction<br>
> 2: Wait for result<br>
> 3: Wait for result<br>
> 4: Wait for result<br>
> 5: Read from register<br>
><br>
> The value in the special register needs to be protected until the<br>
> execution of instruction number 5.<br>
> What I would like to do is to make it possible for the backend to<br>
> schedule instructions that don't mess with this special register in<br>
> anyway in-between the two Execute Instruction/Read register<br>
> instructions.<br>
<br>
</div>Why doesn't the existing dependence and instruction itineraries support<br>
not work for this case?  X86 has all sorts of instructions that<br>
implicitly define registers and it handles this problem quite well.<br>
<br>
                             -David<br>
</blockquote></div><br></div>