trying to generate a simple inline asm

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'm trying to just emit simple inline assembler (no constraints, inputs,
etc.)

Can anyone point me to an example of this..?

C++ backend is your friend here.

That's where I'm looking. Unfortunately they are processing the general case so it's a lot of information to dig though.

I'm working on it.

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);