------- Additional Comments From hjl at lucon dot org 2005-04-18 21:31 ------- It looks like compare_and_swap gets miscompiled on ia64. Working
[.LBB173:] .loc 7 24 0 .mmi mov ar.ccv = r36 nop 0 or r14 = 1, r36 .mmi mf [.LBE173:] [.LBE172:] .loc 1 945 0 nop 0 and r15 = 2, r36 [.LVL85:] [.LBB174:] [.LBB175:] .loc 7 24 0 ;; .mmi nop 0 cmpxchg8.acq r14 = [r33], r14, ar.ccv [.LBE175:] [.LBE174:] .loc 1 946 0 nop 0 ;; .mib nop 0 cmp.eq p6, p7 = r36, r14 (p6) br.cond.dpnt .L170 .L168: .loc 1 949 0 .mib mov r42 = r33 [.LVL86:] nop 0 br.call.sptk.many b0 = _Z13wait_unlockedP10hash_entry# [.LVL87:] ;; Not working: [.LBB175:] .loc 5 24 0 .mmi mov ar.ccv = r36 nop 0 or r14 = 1, r36 .mmi mf [.LBE175:] [.LBE174:] .loc 1 945 0 nop 0 and r42 = 2, r36 [.LVL92:] [.LBB176:] [.LBB177:] .loc 5 24 0 ;; .mmi nop 0 cmpxchg8.acq r15 = [r33], r14, ar.ccv [.LBE177:] [.LBE176:] .loc 1 946 0 nop 0 ;; .mib nop 0 cmp.eq p6, p7 = r14, r15 (p6) br.cond.dpnt .L172 [.LVL93:] .L170: .loc 1 949 0 .mib mov r42 = r33 [.LVL94:] nop 0 br.call.sptk.many b0 = _Z13wait_unlockedP10hash_entry# [.LVL95:] ;; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21095