diff options
author | Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de> | 2015-11-30 12:05:43 +0100 |
---|---|---|
committer | Freddie Chopin <freddie.chopin@gmail.com> | 2016-05-04 09:01:07 +0100 |
commit | bfb02d5ba1238bb88cdf28863492cf1521ab2bab (patch) | |
tree | 7333ba477d2d35e556460ddfdb8546dde21c22d9 /contrib | |
parent | 888d5a5ec9f0e2178241c7fda99558d2e33a06a5 (diff) | |
download | riscv-openocd-bfb02d5ba1238bb88cdf28863492cf1521ab2bab.zip riscv-openocd-bfb02d5ba1238bb88cdf28863492cf1521ab2bab.tar.gz riscv-openocd-bfb02d5ba1238bb88cdf28863492cf1521ab2bab.tar.bz2 |
stm32l4x.c: Free r6/7 for 64-bit operations.
Use r5 instead of r7.
Change-Id: I350d00eeabe9446d64dba8f1dbffb5d4beab7dd6
Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Reviewed-on: http://openocd.zylin.com/3138
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/loaders/flash/stm32l4x.S | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/contrib/loaders/flash/stm32l4x.S b/contrib/loaders/flash/stm32l4x.S index f58e098..587cc33 100644 --- a/contrib/loaders/flash/stm32l4x.S +++ b/contrib/loaders/flash/stm32l4x.S @@ -51,8 +51,8 @@ * r4 = flash base * * Clobbered: + * r5 - rp * r6 - temp - * r7 - rp * r8 - wp, tmp */ @@ -63,18 +63,18 @@ wait_fifo: ldr r8, [r0, #0] /* read wp */ cmp r8, #0 /* abort if wp == 0 */ beq exit - ldr r7, [r0, #4] /* read rp */ - subs r6, r8, r7 /* number of bytes available for read in r6*/ + ldr r5, [r0, #4] /* read rp */ + subs r6, r8, r5 /* number of bytes available for read in r6*/ cmp r6, #7 /* wait until 8 bytes are available */ bcc wait_fifo ldr r6, STM32_PROG str r6, [r4, #STM32_FLASH_CR_OFFSET] - ldr r6, [r7], #0x04 /* read one word from src, increment ptr */ + ldr r6, [r5], #0x04 /* read one word from src, increment ptr */ str r6, [r2], #0x04 /* write one word to dst, increment ptr */ - ldr r6, [r7], #0x04 /* read one word from src, increment ptr */ + ldr r6, [r5], #0x04 /* read one word from src, increment ptr */ str r6, [r2], #0x04 /* write one word to dst, increment ptr */ - dsb + dsb busy: ldr r6, [r4, #STM32_FLASH_SR_OFFSET] tst r6, #0x10000 /* BSY (bit16) == 1 => operation in progress */ @@ -82,10 +82,10 @@ busy: tst r6, #0xfa /* PGSERR | PGPERR | PGAERR | WRPERR | PROGERR*/ bne error /* fail... */ - cmp r7, r1 /* wrap rp at end of buffer */ + cmp r5, r1 /* wrap rp at end of buffer */ it cs - addcs r7, r0, #8 /* skip loader args */ - str r7, [r0, #4] /* store rp */ + addcs r5, r0, #8 /* skip loader args */ + str r5, [r0, #4] /* store rp */ subs r3, r3, #1 /* decrement dword count */ cbz r3, exit /* loop if not done */ b wait_fifo |