X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=sim%2Fbfin%2Fdv-bfin_ctimer.c;h=29a0e98c580fcbdfb115f356f014269947014a98;hb=73ddaae1555b44a4af79e49f63785e182e037553;hp=6aa5c31d6162cbcc74a43baa11467f83778514ac;hpb=32d0add0a654c1204ab71dc8a55d9374538c4b33;p=deliverable%2Fbinutils-gdb.git diff --git a/sim/bfin/dv-bfin_ctimer.c b/sim/bfin/dv-bfin_ctimer.c index 6aa5c31d61..29a0e98c58 100644 --- a/sim/bfin/dv-bfin_ctimer.c +++ b/sim/bfin/dv-bfin_ctimer.c @@ -1,6 +1,6 @@ /* Blackfin Core Timer model. - Copyright (C) 2010-2015 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. Contributed by Analog Devices, Inc. This file is part of simulators. @@ -127,6 +127,10 @@ bfin_ctimer_io_write_buffer (struct hw *me, const void *source, bu32 value; bu32 *valuep; + /* Invalid access mode is higher priority than missing register. */ + if (!dv_bfin_mmr_require_32 (me, addr, nr_bytes, true)) + return 0; + value = dv_load_4 (source); mmr_off = addr - ctimer->base; valuep = (void *)((unsigned long)ctimer + mmr_base() + mmr_off); @@ -192,6 +196,10 @@ bfin_ctimer_io_read_buffer (struct hw *me, void *dest, bu32 mmr_off; bu32 *valuep; + /* Invalid access mode is higher priority than missing register. */ + if (!dv_bfin_mmr_require_32 (me, addr, nr_bytes, false)) + return 0; + mmr_off = addr - ctimer->base; valuep = (void *)((unsigned long)ctimer + mmr_base() + mmr_off);