Displaying 3 results from an estimated 3 matches for "arm_atomic_cmp_swap".
2009 Mar 27
0
[LLVMdev] atomic operations for ARM
Hi,
I have reworked my previous example and got something which is accepted
by tblgen:
let isCall = 1,
Defs = [R0, R1, R2, R3, R12, LR,
D0, D1, D2, D3, D4, D5, D6, D7, CPSR] in {
def ARM_ATOMIC_CMP_SWAP : ABXI<0b1011, (outs GPR:$dst), (ins
i32imm:$ptr, i32imm:$old, i32imm:$new),
"do_something",
[(set GPR:$dst,
(atomic_cmp_swap_32 globaladdr:$ptr, imm:$old,
imm:$new))]>;
}
What I want to achieve first is that llc picks this definition when it...
2009 Mar 26
3
[LLVMdev] atomic operations for ARM
Hi,
I am missing atomic operations support for the ARM backend (see PR
#3887) and started trying to implement them.
Since this is the first time that I work on such stuff (and llvm) I am
going to take the supposedly easy route and provide an implementation
that will work on Linux systems.
This involves calling a special function which the kernel handles
itself. Details here:
2009 Mar 27
1
[LLVMdev] atomic operations for ARM
...On Mar 26, 2009, at 5:41 PM, Robert Schuster wrote:
> Hi,
> I have reworked my previous example and got something which is
> accepted
> by tblgen:
>
> let isCall = 1,
> Defs = [R0, R1, R2, R3, R12, LR,
> D0, D1, D2, D3, D4, D5, D6, D7, CPSR] in {
>
> def ARM_ATOMIC_CMP_SWAP : ABXI<0b1011, (outs GPR:$dst), (ins
> i32imm:$ptr, i32imm:$old, i32imm:$new),
> "do_something",
> [(set GPR:$dst,
> (atomic_cmp_swap_32 globaladdr:$ptr, imm:$old,
> imm:$new))]>;
> }
>
> What I want to achieve first is tha...