[llvm-dev] New to LLVM. Need help generating assembly
m m via llvm-dev
llvm-dev at lists.llvm.org
Thu Dec 6 10:48:39 PST 2018
Swapping the order of SP and $amount in the pattern did not work.
I checked the output of the compiler with the -print-after-all option and the instruction is present in the last IR dump.
I noticed that in GenAsmWriter.inc, there is this line of code in the case of my ADS instruction
printOperand(MI, 0, O);
If I manually change it to printOperand(MI, 1, O);, then it fixes the problem.
How can I make tablegen generate a 1 as the 2nd argument of printOperand for this specific instruction?
________________________________
From: daniel_l_sanders at apple.com <daniel_l_sanders at apple.com> on behalf of Daniel Sanders <daniel_l_sanders at apple.com>
Sent: Thursday, December 6, 2018 9:31 AM
To: tstellar at redhat.com
Cc: m m; llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] New to LLVM. Need help generating assembly
On Dec 5, 2018, at 22:15, Tom Stellard via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
On 12/05/2018 07:22 PM, m m via llvm-dev wrote:
Hi,
I'm new to LLVM and need some help. I defined an instruction to increment the stack pointer by 'amount' (i.e. sp = sp + amount). During assembly generation, the string that gets emitted is "ADS $SP" rather than "ADS 10", for example, if I want to increment it by 10.
Can somebody show me what I'm doing wrong?
Thanks.
def ADS: F_J<0b100001,(outs),(ins i32imm:$amount),"ADS $amount",[(set SP, (add SP, i32imm:$amount))] > {
bits<10> amount;
let Inst{9-0} = amount;
let isReMaterializable = 1;
let mayLoad = 0;
let mayStore = 0;
let Defs = [SP];
let Uses = [SP];
}
What does the MCInst dump of this instruction look like? Have you looked
at YourTargetGenAsmWriter.inc to see which print methods are being called
for this instruction?
-Tom
It's also worth checking the output of the compiler with the -print-after-all option to see if your instruction is present in the last IR dump. It's possible that another instruction is being selected instead of this one.
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181206/dea616f1/attachment-0001.html>
More information about the llvm-dev
mailing list