On 01/31/2011 12:33 AM, Aurelien Jarno wrote: > This week-end I have tested it emulating an x86-64 machine on x86-64, > with all the patch series applied. I have measured the boot time from > the bootloader up to the graphical environment of a Debian installation > I used -snapshot to make sure the host hard-drive is not introducing any > noise in the measurement (so that the whole image is in the host cache), > and did the measurement 10 times. The machine is a Core 2 Q9650, nothing > else was running on the machine except the few standard daemons. > > I have found that the boot time is roughly 1.8% faster with the patch > series applied. It's undoubtedly an improvement, but still close to the > measurement noise. This is a bit disappointing...
It's also not terribly surprising, with that test scenario. GCC tries not to generate partial register stores, except when (as here) it's really a bitfield insert. A test that might show off the deposit code more would be booting a 16-bit OS. Either FreeDOS, or Windows 3.1 (if anyone still has a copy). In that case, the translator will be emitting a deposit op for almost every guest instruction. (Which is probably a mistake from a translator point of view -- there's no reason we can't emulate 16-bit operations with 32-bit operations given that the high bits are ignorable.) r~