X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=contrib%2Floaders%2Fchecksum%2Farmv7m_crc.s;h=923875a08988978a0ed3e6f0225674bcfba48af3;hp=4a1e8b4a97e18b60b927532d71814750f010e41f;hb=e0ba93d018aef12b8e5ccbfe3e7a6fed06eb7258;hpb=7351eecf6a6f1bf271c581f7f75525c3f9f44039 diff --git a/contrib/loaders/checksum/armv7m_crc.s b/contrib/loaders/checksum/armv7m_crc.s index 4a1e8b4a97..923875a089 100644 --- a/contrib/loaders/checksum/armv7m_crc.s +++ b/contrib/loaders/checksum/armv7m_crc.s @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ***************************************************************************/ /* @@ -26,41 +26,46 @@ .text .syntax unified - .arch armv7-m + .cpu cortex-m0 .thumb .thumb_func - + .align 2 _start: -main: +main: mov r2, r0 - mov r0, #0xffffffff /* crc */ + movs r0, #0 + mvns r0, r0 + ldr r6, CRC32XOR mov r3, r1 - mov r4, #0 + movs r4, #0 b ncomp nbyte: ldrb r1, [r2, r4] - - ldr r7, CRC32XOR - eor r0, r0, r1, asl #24 - mov r5, #0 + lsls r1, r1, #24 + eors r0, r0, r1 + movs r5, #0 loop: cmp r0, #0 - mov r6, r0, asl #1 - add r5, r5, #1 - mov r0, r6 - it lt - eorlt r0, r6, r7 + bge notset + lsls r0, r0, #1 + eors r0, r0, r6 + b cont +notset: + lsls r0, r0, #1 +cont: + adds r5, r5, #1 cmp r5, #8 bne loop - - add r4, r4, #1 + adds r4, r4, #1 ncomp: cmp r4, r3 bne nbyte bkpt #0 + .align 2 + CRC32XOR: .word 0x04c11db7 .end