peek_only is used relatively seldomly

This commit is contained in:
folkert van heusden 2024-06-23 18:09:47 +02:00
parent 09c0f5840f
commit fd632156d2
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1

View file

@ -283,8 +283,8 @@ uint16_t bus::read(const uint16_t addr_in, const word_mode_t word_mode, const rm
}
///^ registers ^///
if (!peek_only) {
if ((a & 1) && word_mode == wm_word) [[unlikely]] {
if (!peek_only) {
TRACE("READ-I/O odd address %06o UNHANDLED", a);
mmu_->trap_if_odd(addr_in, run_mode, space, false);
throw 0;
@ -508,12 +508,14 @@ uint16_t bus::read(const uint16_t addr_in, const word_mode_t word_mode, const rm
return -1;
}
if (peek_only == false && word_mode == wm_word && (addr_in & 1)) {
if ((addr_in & 1) && word_mode == wm_word) {
if (peek_only == false) {
TRACE("READ from %06o - odd address!", addr_in);
mmu_->trap_if_odd(addr_in, run_mode, space, false);
throw 2;
return 0;
}
}
if (m_offset >= m->get_memory_size()) {
if (peek_only) {