[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.9 v3 3/3] x86/atomic: fix cmpxchg16b inline assembly to work with clang
>>> On 10.04.17 at 15:34, <roger.pau@xxxxxxxxxx> wrote: > clang doesn't understand the "=A" register constrain when used with 64bits > assembly and spits out an internal error: > > fatal error: error in backend: Cannot select: 0x7f9fb89c9390: i64 = > build_pair 0x7f9fb89c92b0, > 0x7f9fb89c9320 > 0x7f9fb89c92b0: i32,ch,glue = CopyFromReg 0x7f9fb89c9240, Register:i32 > %EAX, 0x7f9fb89c9240:1 > 0x7f9fb89c8c20: i32 = Register %EAX > 0x7f9fb89c9240: ch,glue = inlineasm 0x7f9fb89c90f0, > TargetExternalSymbol:i64'lock; cmpxchg16b $1', MDNode:ch<0x7f9fb8476c38>, > TargetConstant:i64<25>, TargetConstant:i32<18>, Register:i32 %EAX, > Register:i32 > %EDX, TargetConstant:i32<196622>, 0x7f9fb89c87c0, TargetConstant:i32<9>, > Register:i64 %RCX, TargetConstant:i32<9>, Register:i64 %RBX, > TargetConstant:i32<9>, Register:i64 %RDX, TargetConstant:i32<9>, Register:i64 > %RAX, TargetConstant:i32<196622>, 0x7f9fb89c87c0, TargetConstant:i32<12>, > Register:i32 %EFLAGS, 0x7f9fb89c90f0:1 > 0x7f9fb89c8a60: i64 = TargetExternalSymbol'lock; cmpxchg16b $1' > 0x7f9fb89c8b40: i64 = TargetConstant<25> > 0x7f9fb89c8bb0: i32 = TargetConstant<18> > 0x7f9fb89c8c20: i32 = Register %EAX > 0x7f9fb89c8c90: i32 = Register %EDX > 0x7f9fb89c8d00: i32 = TargetConstant<196622> > 0x7f9fb89c87c0: i64,ch = load<LD8[%4]> 0x7f9fb9053da0, > FrameIndex:i64<1>, > undef:i64 > 0x7f9fb9053a90: i64 = FrameIndex<1> > 0x7f9fb9053e80: i64 = undef > 0x7f9fb89c8e50: i32 = TargetConstant<9> > 0x7f9fb89c8d70: i64 = Register %RCX > 0x7f9fb89c8e50: i32 = TargetConstant<9> > 0x7f9fb89c8ec0: i64 = Register %RBX > 0x7f9fb89c8e50: i32 = TargetConstant<9> > 0x7f9fb89c8fa0: i64 = Register %RDX > 0x7f9fb89c8e50: i32 = TargetConstant<9> > 0x7f9fb89c9080: i64 = Register %RAX > [...] > > Fix this by specifying "rdx:rax" manually using the "d" and "a" constraints. > > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Albeit it would have been a good idea to add a code comment, so there won't be someone wanting to undo this as it can be done with fewer operands (and hence in a more legible way). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |