diff options
Diffstat (limited to 'openpcd/firmware/lib/bitops.h')
-rw-r--r-- | openpcd/firmware/lib/bitops.h | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/openpcd/firmware/lib/bitops.h b/openpcd/firmware/lib/bitops.h deleted file mode 100644 index 428c9a6..0000000 --- a/openpcd/firmware/lib/bitops.h +++ /dev/null @@ -1,33 +0,0 @@ - .macro bitop, instr - and r2, r0, #7 - mov r3, #1 - mov r3, r3, lsl r2 - save_and_disable_irqs ip - ldrb r2, [r1, r0, lsr #3] - \instr r2, r2, r3 - strb r2, [r1, r0, lsr #3] - restore_irqs ip - mov pc, lr - .endm - -/** - * testop - implement a test_and_xxx_bit operation. - * @instr: operational instruction - * @store: store instruction - * - * Note: we can trivially conditionalise the store instruction - * to avoid dirting the data cache. - */ - .macro testop, instr, store - add r1, r1, r0, lsr #3 - and r3, r0, #7 - mov r0, #1 - save_and_disable_irqs ip - ldrb r2, [r1] - tst r2, r0, lsl r3 - \instr r2, r2, r0, lsl r3 - \store r2, [r1] - restore_irqs ip - moveq r0, #0 - mov pc, lr - .endm |