diff options
author | David Brownell <dbrownell@users.sourceforge.net> | 2009-11-22 03:38:34 -0800 |
---|---|---|
committer | David Brownell <dbrownell@users.sourceforge.net> | 2009-11-22 03:38:34 -0800 |
commit | ff810723e051ed1f86cffcb565ade6b4d1fc50c8 (patch) | |
tree | bb114d521b84926cd3ce1b4975275c192a8f074a /src/target/xscale.c | |
parent | 5706fd7860ea01c591ecf74880a5a5e04e6df22e (diff) | |
download | riscv-openocd-ff810723e051ed1f86cffcb565ade6b4d1fc50c8.zip riscv-openocd-ff810723e051ed1f86cffcb565ade6b4d1fc50c8.tar.gz riscv-openocd-ff810723e051ed1f86cffcb565ade6b4d1fc50c8.tar.bz2 |
ARM: define two register utilities
Define arm_reg_current() ... returning handle to a given register,
and encapsulating the current mode's register shadowing. It's got
one current use, for reporting the current register set to GDB.
This will let later patches clean up much ARMV4_5_CORE_REG_MODE()
nastiness, saving a bit of code.
Define and use arm_set_cpsr() ... initially it updates the cached
CPSR and sets up state used by arm_reg_current(), plus any SPSR
handle. (Later: can also set up for T and J bits.)
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Diffstat (limited to 'src/target/xscale.c')
-rw-r--r-- | src/target/xscale.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/target/xscale.c b/src/target/xscale.c index 3ed7bf0..659caec 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -948,12 +948,9 @@ static int xscale_debug_entry(struct target *target) LOG_DEBUG("r%i: 0x%8.8" PRIx32 "", i, buffer[i + 1]); } - buf_set_u32(armv4_5->cpsr->value, 0, 32, buffer[9]); - armv4_5->cpsr->dirty = 1; - armv4_5->cpsr->valid = 1; + arm_set_cpsr(armv4_5, buffer[9]); LOG_DEBUG("cpsr: 0x%8.8" PRIx32 "", buffer[9]); - armv4_5->core_mode = buffer[9] & 0x1f; if (!is_arm_mode(armv4_5->core_mode)) { target->state = TARGET_UNKNOWN; |