X86 ISA: Change definitions of locked instructions
Review Request #897 - Created Oct. 30, 2011 and discarded
| Information | |
|---|---|
| Nilay Vaish | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
X86 ISA: Change definitions of locked instructions This patch is for changing the defintion of locked instructions. These should behave as memory barriers and should be executed in a non speculative fashion.
Posted (Oct. 30, 2011, 11:24 a.m.)
I think the definitions of IO instructions should change. Since IO instructions also act as memory barriers, the ld and st microops should be replaced with ldstl and stul.
Posted (Oct. 30, 2011, 11:35 a.m.)
-
src/arch/x86/isa/insts/general_purpose/input_output/general_io.py (Diff revision 1) -
You're changing the behavior of these microops, and that's not ok because these are used to talk to devices. These are nonspeculative on purpose, and I'm pretty sure making them speculative breaks the O3 FS regression. Have you run the regressions?
Review request changed
Updated (Oct. 30, 2011, 3:26 p.m.)
Posted (Oct. 30, 2011, 3:51 p.m.)
You shouldn't change any of the places where ldstl or stul are used. They should have the properties they need implicitly, and regular loads/stores should take a parameter to set those optionally.
Posted (Oct. 31, 2011, 9:51 a.m.)
I'm not super excited about the duplicated code, but it's not totally unnecessary and I don't want to be too much of an obstacle to you fixing your bug. Be sure to run the regressions and look at the output carefully, and then I'm ok with this (and follow up with regression stat updates, as necessary). If it bugs me too much I'll go back and see if things can be refactored a bit.
