search for: xstgaddr_normal

Displaying 4 results from an estimated 4 matches for "xstgaddr_normal".

2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
On 1/15/2016 1:08 PM, Phil Tomson wrote: > > Ah, I see, the defm is a multi-class so I needed to change it to: > > def: Pat<(load (XSTGADDR_NORMAL tglobaladdr:$addr)), > (LOADI64_RI tglobaladdr:$addr, 0)>; > // Match load from a relocatable address to a load with GRP: > def: Pat<(load (XSTGADDR_USE_GRP tglobaladdr:$addr)), > (LOADI64_RI (MOVIMMZ_I64 tglobaladdr:$addr), GRP)>; Right. > ......
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
...;, OpInfo_F32, II_LOAD1 >; defm LOADI16 : LoadOp< 0b1001010, "load", OpInfo_I16, II_LOAD1 >; defm LOADI8 : LoadOp< 0b1001010, "load", OpInfo_I8, II_LOAD1 >; I tried replacing 'load' with 'LOADI64' in the patter, like this: def: Pat<(LOADI64 (XSTGADDR_NORMAL tglobaladdr:$addr)), (LOADI64 tglobaladdr:$addr, 0)>; But that resulted in: XSTGInstrPatterns.td:619:11: error: Variable not defined: 'LOADI64' def: Pat<(LOADI64 (XSTGADDR_NORMAL tglobaladdr:$addr)), > The patterns above should use tglobaladdr, because you will still...
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
...t; /*2254*/ OPC_EmitInteger, MVT::i64, 0, > /*2257*/ OPC_MorphNodeTo, TARGET_VAL(XSTG::LOADI64_RI), > 0|OPFL_Chain|OPFL_MemRefs, > 1/*#VTs*/, MVT::i64, 2/*#Ops*/, 1, 2, > // Src: (ld:i64 (XSTGADDR_NORMAL:iPTR > (tglobaladdr:iPTR):$addr))<<P:Predicate_unindexedload>><<P:Predicate_load>> > - Complexity = 10 > // Dst: (LOADI64_RI:i64 (tglobaladdr:i64):$addr, 0:i64) > > Not sure why the initial Opcode index is being set to 0 instead of 2...
2016 Jan 13
2
Expanding a PseudoOp and accessing the DAG
On Wed, Jan 13, 2016 at 2:08 PM, Krzysztof Parzyszek via llvm-dev < llvm-dev at lists.llvm.org> wrote: > On 1/13/2016 2:26 PM, Phil Tomson via llvm-dev wrote: > >> I've got this PseudoOp defined: >> >> def SDT_RELADDR : SDTypeProfile<1, 2, [SDTCisInt<0>, SDTCisInt<1>]>; >> def XSTGRELADDR :