[LLVMdev] trying to generate a simple inline asm
Reed Kotler
rkotler at mips.com
Sun Apr 21 11:11:02 PDT 2013
On 04/21/2013 03:10 AM, reed kotler wrote:
> I'm trying to just emit simple inline assembler (no constraints, inputs,
> etc.)
>
> Can anyone point me to an example of this..?
>
> This is corresponding to:
>
> __asm__ ("mfc1 $4,$f12");
>
>
> This is what I tried but it's not correct.
>
> std::vector<llvm::Type *> AsmArgTypes;
> llvm::FunctionType *AsmFTy =
> llvm::FunctionType::get(Type::getVoidTy(FStub->getContext()),
> AsmArgTypes, false);
> llvm::InlineAsm *IA =
> llvm::InlineAsm::get(AsmFTy, "mfc1 $$4,$$f12", "", true,
> /* IsAlignStack */ false,
> llvm::InlineAsm::AD_Intel);
> CallInst::Create(IA, BB);
>
> Probably something stupid I'm doing. I'm debugging now but maybe someone
> knows the answer.
>
> TIA.
>
> Reed
I was close the first time. I derived this from the general clang
version and I guess you need to include the argument list, even though
it's null. Too many things to do to deep dive into all of that code
right now.
std::vector<llvm::Value*> AsmArgs;
CallInst::Create(IA, AsmArgs, "", BB);
More information about the llvm-dev
mailing list