Re: [gem5-users] Question on ARM FP Exception Support

2011-05-31 Thread Ali Saidi
That actually isn't required. Since the update only happens at commit the instruction is non-speculative at that point in time. Ali On Mon, 30 May 2011 19:12:50 -0700, Gabe Black wrote: You want to mark them nonspeculative too. Generally speaking, you can't undo a speculative update to a

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-31 Thread Gabriel Michael Black
I think that's -why- it's not written until commit, unless that changed recently. The serialization support makes instructions wait after decode, I think, until the serializing instruction commits. Gabe Quoting Ali Saidi sa...@umich.edu: That actually isn't required. Since the update

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-31 Thread Ali Saidi
It was changed maybe 6 months ago. All writes to misc registers are always buffered until commit and then written when the instruction becomes non-speculative. This is how the exception sticky flags work for example. Otherwise every instruction that set one of these sticky flags in ARM would

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-30 Thread Ali Saidi
Korey is pretty much correct. The miscellaneous registers are read at any time, but they're only written at commit. So if you're updating the state in some way that effects future instructions the code that does the update must be marked IsSerializeAfter which prevents any future instructions

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-30 Thread Gabe Black
You want to mark them nonspeculative too. Generally speaking, you can't undo a speculative update to a miscreg. Gabe On 05/30/11 16:23, Ali Saidi wrote: Korey is pretty much correct. The miscellaneous registers are read at any time, but they're only written at commit. So if you're updating

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-29 Thread Ali Saidi
On May 29, 2011, at 3:03 PM, Marc de Kruijf wrote: I'm seeing all (or almost all) ARM floating point operations serializing on the MISCREG_FPSCR_EXC register. I don't believe this is the case, and looking at the code seems to confirm that. Since it's a miscellaneous register,

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-29 Thread Marc de Kruijf
On Sun, May 29, 2011 at 7:59 PM, Ali Saidi sa...@umich.edu wrote: On May 29, 2011, at 3:03 PM, Marc de Kruijf wrote: I'm seeing all (or almost all) ARM floating point operations serializing on the MISCREG_FPSCR_EXC register. I don't believe this is the case, and looking at the code seems

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-29 Thread Ali Saidi
That would do it. Misc register in the o3 are always available to be read. There is no dependency tracking with misc registers in the o3, so I don't think it should matter. However, it would be good to fix the cases where FpscrExc and FpscrQc are read unnecessarily. If you've got some time to

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-29 Thread Marc de Kruijf
On Sun, May 29, 2011 at 10:06 PM, Ali Saidi sa...@umich.edu wrote: That would do it. Misc register in the o3 are always available to be read. There is no dependency tracking with misc registers in the o3, so I don't think it should matter. If you don't mind my asking, how is this made safe?

Re: [gem5-users] Question on ARM FP Exception Support

2011-05-29 Thread Korey Sewell
If you don't mind my asking, how is this made safe? Is it some form of speculation? Misc. registers refer to non-speculative system state, so any instruction that is going to change these is typically marked with a Serializing or IsNonSpeculative flag. The CPU Models can then treat these type