X86: Make sure instruction flags are set properly even on 32 bit machines.
Review Request #836 - Created Sept. 4, 2011 and submitted
| Information | |
|---|---|
| Gabe Black | |
| gem5 | |
| Reviewers | |
| Default | |
| ali, gblack, nate, stever | |
X86: Make sure instruction flags are set properly even on 32 bit machines. The way flag bits were being set for microops in x86 ended up implicitly calling the bitset constructor which was truncating flags beyond the width of an unsigned long. This change sets the bits in chunks which are always small enough to avoid being truncated. On 64 bit machines this should reduce to be the same as before, and on 32 bit machines it should work properly and not be unreasonably inefficient.
seems fine, but I would like some comments
-
src/arch/x86/insts/microop.hh (Diff revision 1) -
I think a couple of comments are very much needed here for why you're doing this and what you're actually doing. Took me a little bit to figure out that you're creating a 32bit bit set for each 32 bits and oring them together. FYI, this is fixed in C++0x
