[LLVMdev] Implementing the ldr pseudo instruction in ARM integrated assembler

David Peixotto dpeixott at codeaurora.org
Tue Nov 12 11:08:49 PST 2013


Hi Amara,

Thanks for your suggestions. I have made the changes you suggested and added
a new test to check that we print an error when parsing a non-ldr mnemonic
with an operand containing `=`. The updated patch is attached.

-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
by The Linux Foundation



> -----Original Message-----
> From: Amara Emerson [mailto:amara.emerson at arm.com]
> Sent: Tuesday, November 12, 2013 5:43 AM
> To: 'David Peixotto'
> Cc: llvmdev at cs.uiuc.edu
> Subject: RE: [LLVMdev] Implementing the ldr pseudo instruction in ARM
> integrated assembler
> 
> Hi David,
> 
> Thanks for your efforts here. I have a few comments on your patch,
> although I realise it's still a work in progress.
> 
> +class ConstantPool {
> +  MCSymbol *Label;
> +  typedef std::vector<const MCExpr*> EntryVecTy;
> 
> Use a SmallVector here?
> 
> +  MCSymbol *getLabel() {return Label;}
> +  size_t getNumEntries() {return Entries.size();}  const MCExpr
> + *getEntry(size_t Num) {return Entries[Num];}
> These can be const.
> 
> +  int64_t ConstantPoolCounter;
> This can be unsigned.
> 
> +  case AsmToken::Equal: {
> +    const MCSection *Section =
> getParser().getStreamer().getCurrentSection().first;
> +    assert(Section);
> We should probably check here that the mnemonic is actually 'ldr', e.g.
> see the AsmToken::Identifier case.
> 
> +@ RUN: clang -target arm -integrated-as -c %s -o %t1 2> %t2; echo "ok"
> +@ RUN: cat %t2 | FileCheck %s
> Clang tests shouldn't be in the LLVM regression suite. Use llvm-mc instead
> for assembling.
> 
> I'm not very familiar with the code around the asm parser, so I expect
> more detailed comments from others to follow.
> 
> Cheers,
> Amara
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-PR17769-Initial-implementation-of-ldr-pseudo.patch
Type: application/octet-stream
Size: 12883 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131112/2200e8ac/attachment.obj>


More information about the llvm-dev mailing list