forked from auracaster/openocd
register: support non-existent registers
This patch fixes a number of bugs caused by incomplete support for non-existent registers. This is needed for targets that provide optional registers or non-linear register numbers. Change-Id: I216196e0051f28887a2c3da410959382369eed80 Signed-off-by: Steven Stallion <stallion@squareup.com> Reviewed-on: http://openocd.zylin.com/4113 Tested-by: jenkins Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
This commit is contained in:
committed by
Matthias Welwarsky
parent
06589d2de4
commit
b5964191f0
@@ -44,6 +44,8 @@ struct reg *register_get_by_name(struct reg_cache *first,
|
||||
|
||||
while (cache) {
|
||||
for (i = 0; i < cache->num_regs; i++) {
|
||||
if (cache->reg_list[i].exist == false)
|
||||
continue;
|
||||
if (strcmp(cache->reg_list[i].name, name) == 0)
|
||||
return &(cache->reg_list[i]);
|
||||
}
|
||||
@@ -84,6 +86,8 @@ void register_cache_invalidate(struct reg_cache *cache)
|
||||
struct reg *reg = cache->reg_list;
|
||||
|
||||
for (unsigned n = cache->num_regs; n != 0; n--, reg++) {
|
||||
if (reg->exist == false)
|
||||
continue;
|
||||
reg->valid = 0;
|
||||
reg->dirty = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user