]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - sim/bfin/dv-bfin_evt.c
sim: bfin: push down mmr address/size checks
[thirdparty/binutils-gdb.git] / sim / bfin / dv-bfin_evt.c
index 6f859b54f4093d252ff310fd9d46aabc7816c259..cb2d0dfde1c8ad5e2e715c6c89884a9dc2e679c0 100644 (file)
@@ -50,6 +50,10 @@ bfin_evt_io_write_buffer (struct hw *me, const void *source,
   bu32 mmr_off;
   bu32 value;
 
+  /* 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 - evt->base;
 
@@ -68,6 +72,10 @@ bfin_evt_io_read_buffer (struct hw *me, void *dest,
   bu32 mmr_off;
   bu32 value;
 
+  /* 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 - evt->base;
 
   HW_TRACE_READ ();