28 lines
730 B
ArmAsm
28 lines
730 B
ArmAsm
|
.syntax unified
|
||
|
.cpu cortex-m4
|
||
|
.fpu fpv4-sp-d16
|
||
|
.text
|
||
|
.align 1
|
||
|
.thumb
|
||
|
.thumb_func
|
||
|
.global _start
|
||
|
_start:
|
||
|
@ VLDM CASE #1
|
||
|
@ vldm rx, {...}
|
||
|
@ -> vldm rx!, {8_words_or_less} for each
|
||
|
@ -> sub rx, rx, #size (list)
|
||
|
vldm r9, {s1-s31}
|
||
|
|
||
|
@ VLDM CASE #2
|
||
|
@ vldm rx!, {...}
|
||
|
@ -> vldm rx!, {8_words_or_less} for each needed 8_word
|
||
|
@ This also handles vpop instruction (when rx is sp)
|
||
|
vldm r6!, {s9-s29}
|
||
|
@ Explicit VPOP test
|
||
|
vpop {s1-s9}
|
||
|
|
||
|
@ VLDM CASE #3
|
||
|
@ vldmd rx!, {...}
|
||
|
@ -> vldmb rx!, {8_words_or_less} for each needed 8_word
|
||
|
vldmdb r11!, {s1-s31}
|