Skip to content

Commit d6034a2

Browse files
Merge pull request #34 from thejpster/zero-registers
2 parents d3f5f15 + 452c598 commit d6034a2

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

cortex-a-rt/src/lib.rs

+14
Original file line numberDiff line numberDiff line change
@@ -708,6 +708,20 @@ core::arch::global_asm!(
708708
stm r0!, {{r3}}
709709
b 0b
710710
1:
711+
// Zero all registers before calling kmain
712+
mov r0, 0
713+
mov r1, 0
714+
mov r2, 0
715+
mov r3, 0
716+
mov r4, 0
717+
mov r5, 0
718+
mov r6, 0
719+
mov r7, 0
720+
mov r8, 0
721+
mov r9, 0
722+
mov r10, 0
723+
mov r11, 0
724+
mov r12, 0
711725
// Jump to application
712726
bl kmain
713727
// In case the application returns, loop forever

cortex-r-rt/src/lib.rs

+28
Original file line numberDiff line numberDiff line change
@@ -742,6 +742,20 @@ core::arch::global_asm!(
742742
"#,
743743
fpu_enable!(),
744744
r#"
745+
// Zero all registers before calling kmain
746+
mov r0, 0
747+
mov r1, 0
748+
mov r2, 0
749+
mov r3, 0
750+
mov r4, 0
751+
mov r5, 0
752+
mov r6, 0
753+
mov r7, 0
754+
mov r8, 0
755+
mov r9, 0
756+
mov r10, 0
757+
mov r11, 0
758+
mov r12, 0
745759
// Jump to application
746760
bl kmain
747761
// In case the application returns, loop forever
@@ -805,6 +819,20 @@ core::arch::global_asm!(
805819
"#,
806820
fpu_enable!(),
807821
r#"
822+
// Zero all registers before calling kmain
823+
mov r0, 0
824+
mov r1, 0
825+
mov r2, 0
826+
mov r3, 0
827+
mov r4, 0
828+
mov r5, 0
829+
mov r6, 0
830+
mov r7, 0
831+
mov r8, 0
832+
mov r9, 0
833+
mov r10, 0
834+
mov r11, 0
835+
mov r12, 0
808836
// Jump to application
809837
bl kmain
810838
// In case the application returns, loop forever

examples/mps3-an536/src/bin/smp_test.rs

+15
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,21 @@ core::arch::global_asm!(
209209
ldr r0, [r0]
210210
// set up our stacks using that stack pointer
211211
bl _stack_setup
212+
// Zero all registers before calling kmain
213+
mov r0, 0
214+
mov r1, 0
215+
mov r2, 0
216+
mov r3, 0
217+
mov r4, 0
218+
mov r5, 0
219+
mov r6, 0
220+
mov r7, 0
221+
mov r8, 0
222+
mov r9, 0
223+
mov r10, 0
224+
mov r11, 0
225+
mov r12, 0
226+
// call our kmain2 for core 1
212227
bl kmain2
213228
.size _start, . - _start
214229
"#,

0 commit comments

Comments
 (0)