On Tue, 15 Sep 2009, Gabriel Michael Black wrote:

> Never mind. I realized what was going on as I was getting ready for  
> work this morning. imm is the same size for all microops, but when  
> it's stored internal to the microop it gets truncated into a 16 bit  
> immediate value. A better solution might be to make the wripi  
> instruction sign extend its immediate since a signed displacement  
> sounds like it would be a lot more common. If you'd like to give that  
> a try, the code you want is in regop.isa. I'll try that this evening  
> if I have time. If that works for you please let me know.

Is there some documentation that describes the process for uop generation?  
I can't find anything useful on the wiki, and I can't seem to track 
backwards to find exactly where the immediate value for wripi is being 
generated.

The regop.isa file you mention only has this:

    class Wrip(WrRegOp, CondRegOp):
        code = 'RIP = psrc1 + sop2 + CSBase'
        else_code="RIP = RIP;"

Which I must admit isn't that helpful.  Part of the problem is I don't 
know python very well, and C++ isn't a strong point either.

Vince
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to