On 08/01/2018 12:02 PM, Aleksandar Markovic wrote: >> I suggest a "target_long imm;" at the top of the function to handle all such >> that will be required when this function is filled out. > > gen_arith_imm() and similar functions have "int" as the type of offset/imm > parameter (in this case the last parameter) - shouldn't "int" be more > appropriate type for local variable than "target_long"? Fair enough. It certainly fits all of the immediates that nanomips can generate.
If you eventually split up gen_arith_imm etc as previously suggested, I suggest changing to target_long though. That would allow e.g. the decode for the MIPS64R6 DATI and DAHI instructions to use the basic gen_daddiu expander with the immediate already shifted into place in the high 32 bits. r~