UNDOCUMENTED BITS IN DR7


Debug Register 7 (DR7) has a few undocumented bits that modify how the CPU behaves when used in an ICE environment. Now that Pentium has arrived, it is clear that some of these functions are predecessors to undocumented Pentium features, as well. Burried in Pentium documentation is a description of Branch Trace Messages. But very few people realize that these branch trace messages existed all the way back to the 80386.

Starting with Pentium, Intel documented their existence, but didn't tell you how to enable or use them. Neither do I tell you that in this document. But just when you thought there was light at the end of the tunnel, I'm going to tell you that Intel put these bits into two different places. To enable branch trace messages, see Model Specific Register TR-12. And for that one last bit in DR7 that doesn't exist any more, see the Probe Mode Control Register.

DR7:

3                  1 1 1 1 1 1         0
1                  5 4 3 2 1 0         0
+-----------------+-+-+-+-+-+-+--------+
|                 |T|T|G|I| | |        |
|                 |2|R|D|R| | |        |
+-----------------+-+-+-+-+-+-+--------+
                   | | | |
                   | | | +-- IceBp  1=INT01 causes emulator
                   | | |              to break emulation
                   | | |            0=CPU handles INT01
                   | | +---- Global Debug =
                   | +------ Trace1 1=Generate special address
                   |                  cycles after code dis-
                   |                  continuities.  On Pentium,
                   |                  these cycles are called
                   |                  Branch Trace Messages.
                   +-------- Trace2 1=Unknown.


Back to secrets and bugs