Skip to content

Instantly share code, notes, and snippets.

@cleverca22
Last active July 7, 2022 05:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cleverca22/eedba1589a616d995d8582c868ec7552 to your computer and use it in GitHub Desktop.
Save cleverca22/eedba1589a616d995d8582c868ec7552 to your computer and use it in GitHub Desktop.
static inline void addword(uint8_t ** __restrict list, uint32_t d) {
memcpy(*list, &d, 4);
*list += 4;
}
c4008bca <addword>:
c4008bca: a0 03 stm r6,lr,(--sp)
c4008bcc: 59 c0 7c cf add sp,sp,-4
c4008bd0: 06 40 mov r6,r0
c4008bd2: 01 06 st r1,(sp)
c4008bd4: 42 60 mov r2,0x4
c4008bd6: 01 c0 19 07 mov r1,sp
c4008bda: 00 08 ld r0,(r0)
c4008bdc: 80 90 42 29 bl c400de60 <memcpy>
c4008be0: 60 08 ld r0,(r6)
c4008be2: 40 62 add r0,0x4
c4008be4: 60 09 st r0,(r6)
c4008be6: 59 c0 44 cf add sp,sp,4
c4008bea: 20 03 ldm r6,pc,(sp++)
c400de60 <memcpy>:
c400de60: a1 03 stm r6-r7,lr,(--sp)
c400de62: 02 80 30 c0 beq r2,0x0,c400dec2 <memcpy+0x62>
c400de66: a3 c0 01 07 eor r3,r0,r1
c400de6a: 03 80 2c c0 beq r3,0x0,c400dec2 <memcpy+0x62>
c400de6e: a4 c1 01 07 or r4,r0,r1
c400de72: 24 6e bmask r4,0x2
c400de74: 04 80 33 c0 beq r4,0x0,c400deda <memcpy+0x7a>
c400de78: 23 6e bmask r3,0x2
c400de7a: 03 81 09 c0 bne r3,0x0,c400de8c <memcpy+0x2c>
c400de7e: 15 60 mov r5,0x1
c400de80: 02 89 03 c3 bls r2,0x3,c400de86 <memcpy+0x26>
c400de84: 05 60 mov r5,0x0
c400de86: 85 6e bmask r5,0x8
c400de88: 05 80 1e c0 beq r5,0x0,c400dec4 <memcpy+0x64>
c400de8c: 23 40 mov r3,r2
c400de8e: 32 46 sub r2,r3
c400de90: 04 60 mov r4,0x0
c400de92: c7 c0 04 1f sub r7,r3,r4
c400de96: 07 8c 1c c0 bgt r7,0x0,c400dece <memcpy+0x6e>
c400de9a: e3 c1 40 1f max r3,r3,0
c400de9e: 44 c0 03 07 add r4,r0,r3
c400dea2: 31 42 add r1,r3
c400dea4: 43 c3 42 17 lsr r3,r2,2
c400dea8: 35 40 mov r5,r3
c400deaa: 16 40 mov r6,r1
c400deac: 1a c0 04 07 mov lr,r4
c400deb0: 05 81 17 c0 bne r5,0x0,c400dede <memcpy+0x7e>
c400deb4: 23 7c shl r3,0x2
c400deb6: 34 42 add r4,r3
c400deb8: 31 42 add r1,r3
c400deba: 22 6e bmask r2,0x2
c400debc: 06 60 mov r6,0x0
c400debe: 06 81 16 48 bne r6,r2,c400deea <memcpy+0x8a>
c400dec2: 21 03 ldm r6-r7,pc,(sp++)
c400dec4: e6 c0 43 07 and r6,r0,3
c400dec8: 63 c1 44 37 rsub r3,r6,4
c400decc: 61 1f b c400de8e <memcpy+0x2e>
c400dece: 85 a0 04 0f ldb r5,(r1+r4)
c400ded2: a5 a0 04 07 stb r5,(r0+r4)
c400ded6: 14 62 add r4,0x1
c400ded8: 5d 1f b c400de92 <memcpy+0x32>
c400deda: 04 40 mov r4,r0
c400dedc: 64 1f b c400dea4 <memcpy+0x44>
c400dede: 07 a5 00 37 ld r7,(r6++)
c400dee2: 27 a5 00 d7 st r7,(lr++)
c400dee6: 15 66 sub r5,0x1
c400dee8: 64 1f b c400deb0 <memcpy+0x50>
c400deea: 9a a0 06 0f ldb lr,(r1+r6)
c400deee: ba a0 06 27 stb lr,(r4+r6)
c400def2: 16 62 add r6,0x1
c400def4: 65 1f b c400debe <memcpy+0x5e>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment