Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.syntax unified
.thumb

.macro all_vstld2 op
.irp part, 0, 1
.irp size, .8, .16, .32
.irp op2, r0, r1, r2, r4, r7, r8, r10, r12, r13, r14
\op\()\part\()\size {q0, q1}, [\op2]
\op\()\part\()\size {q1, q2}, [\op2]
\op\()\part\()\size {q2, q3}, [\op2]
\op\()\part\()\size {q3, q4}, [\op2]
\op\()\part\()\size {q4, q5}, [\op2]
\op\()\part\()\size {q5, q6}, [\op2]
\op\()\part\()\size {q6, q7}, [\op2]
.endr
.irp op2, r0, r1, r2, r4, r7, r8, r10, r12,  r14
\op\()\part\()\size {q0, q1}, [\op2]!
\op\()\part\()\size {q1, q2}, [\op2]!
\op\()\part\()\size {q2, q3}, [\op2]!
\op\()\part\()\size {q3, q4}, [\op2]!
\op\()\part\()\size {q4, q5}, [\op2]!
\op\()\part\()\size {q5, q6}, [\op2]!
\op\()\part\()\size {q6, q7}, [\op2]!
.endr
.endr
.endr
.endm

.macro all_vstld4 op
.irp part, 0, 1, 2, 3
.irp size, .8, .16, .32
.irp op2, r0, r1, r2, r4, r7, r8, r10, r12, r13, r14
\op\()\part\()\size {q0, q1, q2, q3}, [\op2]
\op\()\part\()\size {q1, q2, q3, q4}, [\op2]
\op\()\part\()\size {q2, q3, q4, q5}, [\op2]
\op\()\part\()\size {q3, q4, q5, q6}, [\op2]
\op\()\part\()\size {q4, q5, q6, q7}, [\op2]
.endr
.irp op2, r0, r1, r2, r4, r7, r8, r10, r12,  r14
\op\()\part\()\size {q0, q1, q2, q3}, [\op2]!
\op\()\part\()\size {q1, q2, q3, q4}, [\op2]!
\op\()\part\()\size {q2, q3, q4, q5}, [\op2]!
\op\()\part\()\size {q3, q4, q5, q6}, [\op2]!
\op\()\part\()\size {q4, q5, q6, q7}, [\op2]!
.endr
.endr
.endr
.endm
all_vstld2 vst2
all_vstld2 vld2
all_vstld4 vst4
all_vstld4 vld4