IBM PPC440X5 Computer Hardware User Manual


 
User’s Manual
PPC440x5 CPU Core Preliminary
Page 224 of 589
debug.fm.
September 12, 2002
matches the IAC conditions and is in virtual address space 1 (MSR[IS] = 1). Note that in these
latter two modes, in which the virtual address space of the instruction is considered, it is not the
entire virtual address which is considered. The Process ID, which forms the final part of the virtual
address, is not considered. Finally, the IAC effective/real address field value of 0b01 is reserved,
and corresponds to the PowerPC Book-E architected real address comparison mode, which is
not supported by the PPC440x5.
If a pair of IAC events (IAC1/IAC2 or IAC3/IAC4) are operating in range inclusive or range
exclusive mode, it is a programming error (and the results of any instruction address comparison
are undefined) if the corresponding pair of IAC effective/real address fields are not set to the
same value. For example, if IAC1/IAC2 are operating in one of the range modes, then both
DBCR1[IAC1ER] and DBCR1[IAC2ER] must be set to the same value.
IAC Range Mode Auto-Toggle Field
DBCR1[IAC12AT, IAC34AT] control the auto-toggle mechanism for the IAC1/IAC2 and
IAC3/IAC4 events, respectively. When the IAC mode for one of the pairs of IAC debug events is
set to one of the range modes (either range inclusive or range exclusive), then the IAC range
mode auto-toggle field corresponding to that pair of IAC debug events controls whether or not the
range mode will automatically “toggle” from inclusive to exclusive, and vice-versa. When the IAC
range mode auto-toggle field is set to 1, this automatic toggling is enabled; otherwise it is
disabled. It is a programming error (and the results of any instruction address comparison are
undefined) if an IAC range mode auto-toggle field is set to 1 without the corresponding IAC mode
field being set to one of the range modes.
When auto-toggle is enabled for a pair of IAC debug events, then upon each occurrence of an
IAC debug event within that pair the value of the corresponding auto-toggle status field in the
DBSR (DBSR[IAC12ATS, IAC34ATS]) is reversed. That is, if the auto-toggle status field is 0
before the occurrence of the IAC debug event, then it will be changed to 1 at the same time that
the IAC debug event is recorded in the DBSR. Conversely, if the auto-toggle status field is 1
before the occurrence of the IAC debug event, then it will be changed to 0 at the same time that
the IAC debug event is recorded in the DBSR.
Furthermore, when auto-toggle is enabled, the auto-toggle status field of the DBSR affects the
interpretation of the IAC mode field of DBCR1. If the auto-toggle status field is 0, then the IAC
mode field is interpreted in the normal fashion, as defined in IAC Mode Field on page 222. That
is, the IAC mode field value of 0b10 selects range inclusive mode, whereas the value of 0b11
selects range exclusive mode. On the other hand, when the auto-toggle status field is 1, then the
interpretation of the IAC mode field is “reversed”. That is, the IAC mode field value of 0b10
selects range exclusive mode, whereas the value of 0b11 selects range inclusive mode.
The relationship of the IAC mode, IAC range mode auto-toggle, and IAC range mode auto-toggle