Hi, I'm trying to port GCC to a simple processor (used only for academic purposes, yet).
Problem: no immediate-values are supported in the instructions. How can I tell the compiler to put all immediates into the memory, and use the corresponding reference instead of the value itself? so, instead of move REG,5 I would like to have move REG,const5 … ; and somewhere else const5: .word 5 My approach would be, to use a define_expand statement like this: (define_expand "movhi" [(set (match_operand:HI 0 "general_operand" "") (match_operand:HI 1 "general_operand" ""))] "" " { /* we are not able to use immediates, so put them to memory */ if (CONST_INT_P (operands[1])) operands[1] = force_const_to_memref (HImode, operands[1]); }") But HOW can I force the operand into memory? I.e. "force_const_to_memref" needs to be defined somehow. Any hints? Thanks a lot! Hagen