> Similarly, I think we could make the universal type for integer and control > registers, a uint64_t, and floating point registers doubles. The actual > type consumed by instructions could be down converted to something smaller > if necessary with no loss of information.
There are structs where packing matters. See for example arch/arm/remote_gdb.hh, there is regCache32 and regCache64 whose only difference is the size of integer registers. If we were to unify both, declaring them as uint64_t and downconverting to uint32_t as needed, it would break guest debugging, because the struct would incorrectly serialize on the wire. This is why we introduced these structs. They used to be arrays, of element-size big enough to hold the longest register, and the result was that the G-packet would contain garbage. _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
