[llvm-commits] Fixing Bug 13662: paired register for inline asm with 64-bit data on ARM

Jakob Stoklund Olesen stoklund at 2pi.dk
Wed Oct 31 15:17:52 PDT 2012


On Oct 31, 2012, at 3:15 PM, "Weiming Zhao" <weimingz at codeaurora.org> wrote:

> Hi Jakob,
> 
> I'm changing the ldrexd/strexd of ARMInstrInfo.td to
> def LDREXD: AIldrex<0b01, (outs GPRPair:$Rt),(ins addr_offset_none:$addr),
>                      NoItinerary, "ldrexd", "\t$Rt, $addr", []> {
>  let DecoderMethod = "DecodeDoubleRegLoad";
> }
> 
> def STREXD : AIstrex<0b01, (outs GPR:$Rd),
>                    (ins GPRPair:$Rt, addr_offset_none:$addr),
>                    NoItinerary, "strexd", "\t$Rd, $Rt, $addr", []> {
>  let DecoderMethod = "DecodeDoubleRegStore";
> }
> 
> Is this the way you're referring to?

Exactly.

> So far, it almost works but I need to deal with printing "R0_R1" for the
> GPRPair reg name. I'm planning to do it in
> InstPrinter/ARMInstPrinter.cpp::printOperand().

I think that's right. Jim?

/jakob




More information about the llvm-commits mailing list