summaryrefslogtreecommitdiff
path: root/src/target/mips32_pracc.c
diff options
context:
space:
mode:
authorSpencer Oliver <ntfreak@users.sourceforge.net>2010-01-05 17:43:29 +0000
committerSpencer Oliver <ntfreak@users.sourceforge.net>2010-01-05 19:54:37 +0000
commit9d83df72dcbfc791b470b12949890df3f2d1508d (patch)
treecd002baf150ce36b4e49ab8a07c8491f54a7268e /src/target/mips32_pracc.c
parentba96fc3e9de935708cd5fa7c38e547dc7598087d (diff)
downloadopenocd+libswd-9d83df72dcbfc791b470b12949890df3f2d1508d.tar.gz
openocd+libswd-9d83df72dcbfc791b470b12949890df3f2d1508d.tar.bz2
openocd+libswd-9d83df72dcbfc791b470b12949890df3f2d1508d.tar.xz
openocd+libswd-9d83df72dcbfc791b470b12949890df3f2d1508d.zip
MIPS: pracc access tweaks
reorder the pracc access so we can save a few access cycles Signed-off-by: Spencer Oliver <ntfreak@users.sourceforge.net>
Diffstat (limited to 'src/target/mips32_pracc.c')
-rw-r--r--src/target/mips32_pracc.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c
index 4bd1da7d..26d5a6b7 100644
--- a/src/target/mips32_pracc.c
+++ b/src/target/mips32_pracc.c
@@ -319,9 +319,8 @@ int mips32_pracc_read_mem32(struct mips_ejtag *ejtag_info, uint32_t addr, int co
MIPS32_LW(10,0,15), /* lw $10,($15) */
MIPS32_LW(9,0,15), /* lw $9,($15) */
MIPS32_LW(8,0,15), /* lw $8,($15) */
+ MIPS32_B(NEG16(27)), /* b start */
MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(28)), /* b start */
- MIPS32_NOP,
};
int retval = ERROR_OK;
@@ -422,9 +421,8 @@ int mips32_pracc_read_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int co
MIPS32_LW(10,0,15), /* lw $10,($15) */
MIPS32_LW(9,0,15), /* lw $9,($15) */
MIPS32_LW(8,0,15), /* lw $8,($15) */
- MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(28)), /* b start */
- MIPS32_NOP,
+ MIPS32_B(NEG16(27)), /* b start */
+ MIPS32_MFC0(15,30,0), /* move COP0 DeSave to $15 */
};
/* TODO remove array */
@@ -500,9 +498,8 @@ int mips32_pracc_read_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int cou
MIPS32_LW(10,0,15), /* lw $10,($15) */
MIPS32_LW(9,0,15), /* lw $9,($15) */
MIPS32_LW(8,0,15), /* lw $8,($15) */
+ MIPS32_B(NEG16(27)), /* b start */
MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(28)), /* b start */
- MIPS32_NOP,
};
/* TODO remove array */
@@ -677,9 +674,8 @@ int mips32_pracc_write_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int c
MIPS32_LW(10,0,15), /* lw $10,($15) */
MIPS32_LW(9,0,15), /* lw $9,($15) */
MIPS32_LW(8,0,15), /* lw $8,($15) */
+ MIPS32_B(NEG16(26)), /* b start */
MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(27)), /* b start */
- MIPS32_NOP,
};
/* TODO remove array */
@@ -736,9 +732,8 @@ int mips32_pracc_write_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int co
MIPS32_LW(10,0,15), /* lw $10,($15) */
MIPS32_LW(9,0,15), /* lw $9,($15) */
MIPS32_LW(8,0,15), /* lw $8,($15) */
+ MIPS32_B(NEG16(26)), /* b start */
MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(27)), /* b start */
- MIPS32_NOP,
};
/* TODO remove array */
@@ -819,9 +814,8 @@ int mips32_pracc_write_regs(struct mips_ejtag *ejtag_info, uint32_t *regs)
MIPS32_LW(2,2*4,1), /* lw $2,2*4($1) */
MIPS32_LW(1,0,15), /* lw $1,($15) */
+ MIPS32_B(NEG16(53)), /* b start */
MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(54)), /* b start */
- MIPS32_NOP,
};
int retval;
@@ -895,9 +889,8 @@ int mips32_pracc_read_regs(struct mips_ejtag *ejtag_info, uint32_t *regs)
MIPS32_LW(2,0,15), /* lw $2,($15) */
MIPS32_LW(1,0,15), /* lw $1,($15) */
+ MIPS32_B(NEG16(58)), /* b start */
MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */
- MIPS32_B(NEG16(59)), /* b start */
- MIPS32_NOP,
};
int retval;