On 27/04/12 22:30, Richard Henderson wrote: > We can perform a single-copy atomic load with an ldrexd insn. > If the load is all we care about, we need not pair this with > a strexd. > > Ok? > > > r~ > > > d-arm-ldi > > > * config/arm/arm.md (UNSPEC_LL): New. > * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New. >
> diff --git a/gcc/config/arm/sync.md b/gcc/config/arm/sync.md > index 03838f5..de2da3b 100644 > --- a/gcc/config/arm/sync.md > +++ b/gcc/config/arm/sync.md > + operands[2] = gen_rtx_REG (SImode, REGNO (target) + 1); > + return "ldrexd%?\t%0, %2, %C1"; > + } Use "ldrexd%?\t%0, %H0, %C1", then you don't need to construct operands[2] Otherwise, OK. R.