Disassembly before:
```
0xc03cc0b4 <+72>: tst r2, r1, lsr r0
0xc03cc0b8 <+76>: beq 0xc03cc110 <_rm_rlock_hard+164> <--- branch on write CPUs
0xc03cc0bc <+80>: ldr r0, [r5] <--- loading all three fields
0xc03cc0c0 <+84>: ldr r1, [r5, #16]
0xc03cc0c4 <+88>: ldr r2, [r5, #4]
0xc03cc0c8 <+92>: cmp r1, #0 <--- comparing rmp_flags == 0
0xc03cc0cc <+96>: str r2, [r0, #4] <--- updating per-CPU queue
0xc03cc0d0 <+100>: str r0, [r2]
0xc03cc0d4 <+104>: beq 0xc03cc144 <_rm_rlock_hard+216>
```
After:
```
c041a948: 0a000012 beq c041a998 <_rm_rlock_hard+0x9c>
c041a94c: e5950000 ldr r0, [r5]
c041a950: e5951004 ldr r1, [r5, #4]
c041a954: e5801004 str r1, [r0, #4]
c041a958: e5810000 str r0, [r1]
c041a95c: e5950010 ldr r0, [r5, #16]
c041a960: e3500000 cmp r0, #0 ; 0x0
c041a964: 0a000015 beq c041a9c0 <_rm_rlock_hard+0xc4>
```