From 09cd5661e6d275cd736d3b6c91f373c83e37d70c Mon Sep 17 00:00:00 2001 From: Salvador Date: Wed, 9 May 2012 17:21:19 +0200 Subject: [PATCH] Speed up mips_m4k_write_memory() Do not call mips32_cp0_read() if not needed. This will speed up execution of mips_m4k_write_memory() by near 2x, with parameter count = 1. Change-Id: I7829a7802b6475bc6d4ac3f0632d8d239d1072da Signed-off-by: Salvador Reviewed-on: http://openocd.zylin.com/624 Tested-by: jenkins Reviewed-by: Andreas Fritiofson Reviewed-by: Freddie Chopin --- src/target/mips32_pracc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c index d657b987a9..abf12e0221 100644 --- a/src/target/mips32_pracc.c +++ b/src/target/mips32_pracc.c @@ -829,6 +829,9 @@ int mips32_pracc_write_mem(struct mips_ejtag *ejtag_info, uint32_t addr, int siz uint32_t conf = 0; int cached = 0; + if ((KSEGX(addr) == KSEG1) || ((addr >= 0xff200000) && (addr <= 0xff3fffff))) + return retval; /*Nothing to do*/ + mips32_cp0_read(ejtag_info, &conf, 16, 0); switch (KSEGX(addr)) { @@ -838,9 +841,6 @@ int mips32_pracc_write_mem(struct mips_ejtag *ejtag_info, uint32_t addr, int siz case KSEG0: cached = (conf & MIPS32_CONFIG0_K0_MASK) >> MIPS32_CONFIG0_K0_SHIFT; break; - case KSEG1: - /* uncachable segment - nothing to do */ - break; case KSEG2: case KSEG3: cached = (conf & MIPS32_CONFIG0_K23_MASK) >> MIPS32_CONFIG0_K23_SHIFT; -- 2.30.2