Petr Tesarik hat@tesarici.cz writes:
In my opinion, the solution is reasonable because if any application is really interested in the DR6 register (i.e. it is a debugger), it will clear the status register (DR6) anyway, since the processor never clears the bits and unless you clear them manually, the register gets pretty useless.
There are applications other than debuggers that care about debug registers, notably copy protection code. We can't afford to do things differently even if they sound reasonable.
I wonder why you haven't been bothered by the fact that the current implementation silently drops the TF bit, which is even worse! :O
I'm sure there are bugs in the current implementation, but that's not a reason for introducing different ones... If you find anything that the current code is doing wrong, please provide a test case demonstrating the bug, and I'll be more than happy to fix it (or to accept a fix if you have one).