Displaying 2 results from an estimated 2 matches for "addrimm10".
2016 Mar 18
2
Immediate operand for load instruction, in back end
...ight way to do it?
Here, the load class has $addrsrc which is a relative address with base a certain
register and offset:
class LD_DESC_BASE<string instr_asm, SDPatternOperator OpNode,
ValueType TyNode, RegisterOperand ROWD,
Operand MemOpnd = mem_msa,
ComplexPattern Addr = addrimm10,
InstrItinClass itin = NoItinerary> {
dag OutOperandList = (outs ROWD:$wd);
dag InOperandList = (ins MemOpnd:$addrsrc);
string AsmString = !strconcat("mov $wd, ($addrsrc)");
list<dag> Pattern = [(set ROWD:$wd, (TyNode (OpNode Addr:$addrsrc)))];
InstrItinClass...
2016 Mar 22
0
Immediate operand for load instruction, in back end
...andle each operation using setOperationAction().
> I've tried to change mem_msa to hold only let MIOperandInfo = (ops
> simm10) but there
It sounds like you're on the right track but there may be an easier way. Continuing on this track, I believe you will also need to change the addrimm10 mentioned in the argument list for LD_DESC_BASE. The one for MIPS will be matching the DAG using the selectIntAddrMSA() function which will produce the two operands expected by mem_msa.
I haven't tried this but given that you only want an immediate address, it may be easier to use an immediate...