cpu:atomic
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
cpu:atomic [2019/07/07 20:13] – [ARMv7A] oga | cpu:atomic [2019/07/07 21:08] (現在) – [x64 (relaxed/release/seq_cst)] oga | ||
---|---|---|---|
行 152: | 行 152: | ||
ldrex r2, [r4] | ldrex r2, [r4] | ||
cmp r2, #0 | cmp r2, #0 | ||
- | beq .LBB0_18 | + | beq .LBB0_44 |
clrex | clrex | ||
- | b .LBB0_19 | + | b .LBB0_45 |
- | .LBB0_18: | + | .LBB0_44: |
dmb ish | dmb ish | ||
mov r0, #3 | mov r0, #3 | ||
strex r1, r0, [r4] | strex r1, r0, [r4] | ||
cmp r1, #0 | cmp r1, #0 | ||
- | ~ | + | beq .LBB0_53 |
+ | .LBB0_45: | ||
</ | </ | ||
行 251: | 行 252: | ||
===== load ===== | ===== load ===== | ||
+ | |||
+ | ==== x64 (relaxed/ | ||
+ | |||
+ | <code asm> | ||
+ | movl (%rbx), | ||
+ | </ | ||
+ | |||
+ | |||
==== ARMv7A (relaxed) ==== | ==== ARMv7A (relaxed) ==== | ||
行 284: | 行 293: | ||
---- | ---- | ||
===== store ===== | ===== store ===== | ||
+ | |||
+ | ==== x64 (relaxed/ | ||
+ | |||
+ | <code asm> | ||
+ | movl %ebp, (%rbx) | ||
+ | </ | ||
+ | |||
+ | ==== x64 (seq_cst) ==== | ||
+ | |||
+ | <code asm> | ||
+ | xchgl %ebp, | ||
+ | </ | ||
==== ARMv7A (relaxed) ==== | ==== ARMv7A (relaxed) ==== |
cpu/atomic.txt · 最終更新: 2019/07/07 21:08 by oga