From 3de42a19661a3d6d24de46ca2920b06e1dc88fe0 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Tue, 3 Oct 2023 23:16:08 -0600 Subject: demo: initial commit --- demo/lock.S | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 demo/lock.S (limited to 'demo/lock.S') diff --git a/demo/lock.S b/demo/lock.S new file mode 100644 index 0000000..3ec2765 --- /dev/null +++ b/demo/lock.S @@ -0,0 +1,26 @@ +.global spin_init +spin_init: + mov r1, #0 + str r1, [r0] + mov pc, lr + +.global spin_lock +spin_lock: + mrs r2, cpsr + str r2, [r1] + orr r2, r2, #0xc0 @ Levanta I, F + msr cpsr_c, r2 + mov r3, #1 +1: ldrex r2, [r0] + teq r2, #0 + strexeq r2, r3, [r0] + teqeq r2, #0 + bne 1b + mov pc, lr + +.global spin_unlock +spin_unlock: + mov r2, #0 + str r2, [r0] + msr cpsr_c, r1 + mov pc, lr -- cgit v1.2.3