[llvm-dev] wrong operand in getBinaryCodeForInstr
Mahesh Bodapati via llvm-dev
llvm-dev at lists.llvm.org
Thu Apr 5 22:33:40 PDT 2018
Hi,
*case MICROBLAZE::BGEID:*
* {*
* // op: raencoder*
* op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);*
* Value |= (op & UINT64_C(31)) << 16;*
* // op: imm16*
* op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI); ->
should be operand[1]*
* Value |= op & UINT64_C(65535);*
* break;*
* }*
I have added different encoder method for operand(1) but that operand is
not even propagated in Encodeinstruction..
by the way,this is how I have defined BGEID..
*def : Pat<(brcond (setcc (i32 GR32:$L), (i32 GR32:$R), SETGE), bb:$T),*
* (BGEID (CMP GR32:$L, GR32:$R), bb:$T)>;*
*def BGEID : TBT<0b101110, (outs), (ins GR32:$ra, brtarget:$offset),
"bgeid\t$ra,$offset", [], IIC_BRc> {*
* let rd = 0b10101;*
*}*
I don't know where I am doing wrong.please provide your notes...
Thanks,
Mahesh B
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180406/1ca2e7b0/attachment.html>
More information about the llvm-dev
mailing list