Displaying 3 results from an estimated 3 matches for "atomic_cmp_swap_32".
Did you mean:
atomic_cmp_swap_i32
2009 Mar 27
0
[LLVMdev] atomic operations for ARM
...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
finds an occurance of the @atomic.cmp.swap.i32 intrinsic.
Therefore I wrote a basic .ll file containing only a call to this
function. I then let it run through "llvm-as | llc&...
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
...s = [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
> finds an occurance of the @atomic.cmp.swap.i32 intrinsic.
>
> Therefore I wrote a basic .ll file containing only a call to this
> function. I then l...