Displaying 3 results from an estimated 3 matches for "immus4".
Did you mean:
immune
2009 Mar 31
0
[LLVMdev] adjust address calculus for an architecture that does not address bytes
...aled by the size of
the load or store. For example the load word instruction LDW takes an
offset which is multiplied by 4 and added to the base pointer. This is
dealt with in the patterns defined in XCoreInstrInfo.td. The following
pattern is used for LDW:
def : Pat<(load (add GRRegs:$addr, immUs4:$offset)),
(LDW_2rus GRRegs:$addr, (div4_xform immUs4:$offset))>;
immUs4 is true when offset is a multiple of 4 and the offset divided by
4 fits in an immediate. The div4_xform xform divides a constant by 4.
These are both defined in XCoreInstrInfo.td.
It sounds like your target ma...
2009 Mar 31
2
[LLVMdev] adjust address calculus for an architecture that does not address bytes
Hi,
my target architecture has a kind of "16bit addressing mode", i.e. one address does not address 8 bit but a 16bit chunk. Consequently, every constant used to calculate effective addresses must be divided by two.
So far this is not such a problem for stack objects since FrameIndexes, function arguments etc. have a lot of custom lowering code where this can be done.
But when it comes
2009 Apr 01
2
[LLVMdev] adjust address calculus for an architecture that does not address bytes
...the load or store. For example the load word instruction LDW takes an
> offset which is multiplied by 4 and added to the base pointer. This is
> dealt with in the patterns defined in XCoreInstrInfo.td. The following
> pattern is used for LDW:
>
> def : Pat<(load (add GRRegs:$addr, immUs4:$offset)),
> (LDW_2rus GRRegs:$addr, (div4_xform immUs4:$offset))>;
>
Richard,
thanks for your suggestion.
However, I think what you describe is what I meant by 'only catch
the targeted addresses of loads/stores', i.e. the address the instruction
is reading from/writing...