Thanks Gabe, suppose I’m trying to carry out a data flow analysis on the 
program, then quite often I rely on the source registers tagged by gem5. In 
this process, would I not be tracking false dependencies? Is there a way I can 
disable this?

Additionally, have you modelled the same only for LEA op, or for other 
operations too? You were making a call to merge method within the static inst 
class, I assumed this was because x86 has a lot of instructions like ADD AX, 
imm, where the source register is clobbered with the output as well. However, I 
guess primarily you have made calls to the merge method within the static inst 
class to also model partial register updates. 

Thanks,
Shyam

> On Jul 31, 2019, at 9:03 PM, Gabe Black <[email protected]> wrote:
> 
> Hi Shyam. I think the reason is that x86 instructions (and the microops as 
> I've implemented them) can do partial register updates, ie writing to only 
> the lowest byte of a register. In that case, you need the old value to fill 
> in part of the new value of the register. When writing to 32 bits or more of 
> the register (although x86 is full of exceptions), you'd generally not need 
> the old value since you're either writing all 64 bits or zero extending to 64 
> bits in the 32 bit case. That optimization is not implemented, and may or may 
> not be realistic.
> 
> Gabe
> 
> On Tue, Jul 30, 2019 at 2:40 PM Shyam Murthy <[email protected] 
> <mailto:[email protected]>> wrote:
> The main reason I am asking is because I am trying to do some dependency 
> analysis in the programs, and false dependencies show up in the process 
> because architecture registers that are destination registers also get 
> populated as source registers (when there is no true dependency). Am I 
> understanding something incorrectly? 
> 
> Thanks,
> Shyam
> 
> On Tue, Jul 30, 2019 at 2:25 PM Shyam Murthy <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi Gabe,
> 
> Why is that for some of the operations like ld and lea, the decoding logic 
> within build/X86/arch/generated/decoder-ns.cc.inc, the destination register 
> is also decoded as a src register?
> 
> Thanks,
> Shyam
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to