Displaying 3 results from an estimated 3 matches for "operand_pcrel".
2017 Jan 19
3
Got stuck with PC-rel branching
...using EpiphanyInstrInfo.td as
BNONE32(ins jmptarget:$addr), Branch32 class
- Branch32 class is defined in EpiphanyInstrFormats.td with bits<24> addr,
which should go into bits{31-8} of the MC instruction. Those bits remain
zeros after relaxation for some reason.
- jmptarget operand has type OPERAND_PCREL, and uses EncoderMethod
"getJumpTargetOpValue" defined in EpiphanyMCCodeEmitter. If this method
gets MCExpr, it creates fixup, and I can see this fixup in debug.
- Fixup is called fixup_Epiphany_PCREL24, and is defined in
EpiphanyFixupKinds and EpiphanyAsmBackend, with FKF_IsPCRel flag....
2018 Mar 26
0
wrong imm value for branch conditions..
...brtarget:$offset),
"bgeid\t$ra,$offset", [], IIC_BRc> {*
* let rd = 0b10101;*
*}*
*def brtarget : Operand<OtherVT>*
*{*
* let PrintMethod = "printPCRelImmOperand";*
* let EncoderMethod = "getBranchTargetOpValue";*
* let OperandType = "OPERAND_PCREL";*
* let DecoderMethod = "DecodeBranchTarget";*
*}*
*getBranchTargetOpValue**(const MCInst &MI, unsigned OpNo,*
* SmallVectorImpl<MCFixup> &Fixups,*
* const MCSubtargetInfo &STI) const {*
* const MCOperand &...
2017 Jan 19
2
Got stuck with PC-rel branching
...; BNONE32(ins jmptarget:$addr), Branch32 class
>
> - Branch32 class is defined in EpiphanyInstrFormats.td with bits<24> addr,
> which should go into bits{31-8} of the MC instruction. Those bits remain
> zeros after relaxation for some reason.
>
> - jmptarget operand has type OPERAND_PCREL, and uses EncoderMethod
> "getJumpTargetOpValue" defined in EpiphanyMCCodeEmitter. If this method
> gets MCExpr, it creates fixup, and I can see this fixup in debug.
>
> - Fixup is called fixup_Epiphany_PCREL24, and is defined in
> EpiphanyFixupKinds and EpiphanyAsmBackend,...