diff options
author | Øyvind Harboe <oyvind.harboe@zylin.com> | 2009-10-26 18:53:19 +0100 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2009-11-05 23:57:49 +0100 |
commit | 4e3c2676f15a130d0594b7c5164ae09f8bd41648 (patch) | |
tree | 2c9d0a365ac1ea98651834c55c2e4719eb1b7a4f | |
parent | 4441c1ffdcc30a3c51a6d407a2f178a1b3fba28a (diff) | |
download | openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.tar.gz openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.tar.bz2 openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.tar.xz openocd+libswd-4e3c2676f15a130d0594b7c5164ae09f8bd41648.zip |
target: check args to mrc/mcr.
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
-rw-r--r-- | src/target/target.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/target/target.c b/src/target/target.c index d4662f71..9b07df18 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -722,6 +722,30 @@ static int arm_cp_check(struct target_s *target, int cpnum, uint32_t op1, uint32 return ERROR_FAIL; } + if (op1>7) + { + LOG_ERROR("Illegal op1"); + return ERROR_FAIL; + } + + if (op2>7) + { + LOG_ERROR("Illegal op2"); + return ERROR_FAIL; + } + + if (CRn>15) + { + LOG_ERROR("Illegal CRn"); + return ERROR_FAIL; + } + + if (CRm>7) + { + LOG_ERROR("Illegal CRm"); + return ERROR_FAIL; + } + return ERROR_OK; } |