Hi, We have been implementing GCC port for a new target.
The FRAME_POINTER_REGNUM is defined a pseudo register in header file. I am using the following macros in header file to eliminate the pseudo arg pointer and frame pointer. However, there are some instances of frame pointer in the assembly code. Currently, I have modified "GO_IF_LEGITIMATE_ADDRESS" in C file to eliminate these register references in assembly code. However, there are still some references found. Please let me know if there is anything else to be defined to remove these pseudo instances. The following chunk of code is used in header file to eliminate pseudo registers. ======================================================================= #define FRAME_POINTER_REQUIRED 0 #define ELIMINABLE_REGS \ {{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \ {ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \ {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM}} #define CAN_ELIMINATE(FROM, TO) (1) #define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \ { \ if ((FROM) == FRAME_POINTER_REGNUM) \ (OFFSET) = ( STACK_POINTER_OFFSET \ + crtl->outgoing_args_size ); \ else if ((FROM) == ARG_POINTER_REGNUM) \ (OFFSET) = ( STACK_POINTER_OFFSET \ + xxx_compute_frame_size (get_frame_size (), \ (long long *)0, (int*)0)); \ else \ gcc_unreachable (); \ } ======================================================================= Thanks & Regards, Naveen.H.S