tree 4e0333e6a0b6ee4601b0232baa1c5d4832c4aec5
parent 9c7d3b3a6b6aaeded9d9e5c5111dbcc65b0b0f91
author Russell King <[EMAIL PROTECTED]> Mon, 18 Apr 2005 22:50:01 +0100
committer Russell King <[EMAIL PROTECTED]> Mon, 18 Apr 2005 22:50:01 +0100

[PATCH] ARM: Add missing new file for bitops patch

Signed-off-by: Russell King <[EMAIL PROTECTED]>

 arm/lib/bitops.h |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+)

Index: arch/arm/lib/bitops.h
===================================================================
--- /dev/null  (tree:19b2c9e85dcab6df9250ba38df885d951c96e0a6)
+++ 4e0333e6a0b6ee4601b0232baa1c5d4832c4aec5/arch/arm/lib/bitops.h  
(mode:100644 sha1:4a83ab6cd565d21ab0385bac6643826b83c2fcd4)
@@ -0,0 +1,33 @@
+       .macro  bitop, instr
+       and     r2, r0, #7
+       mov     r3, #1
+       mov     r3, r3, lsl r2
+       save_and_disable_irqs ip, r2
+       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, r2
+       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
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to