again problems implementing own target

Jim Wilson wilson@specifix.com
Mon Oct 8 19:05:00 GMT 2007


Michael_fogel wrote:
> The failing instruction is a call. The compiler loads every symbol 
> reference into a register and calls the function using this. In front of 
> the error this load is missing. In smaller files the compiler uses the 
> reference, which is the way i want him to do it.

We need more info in order to determine what is wrong.  Some RTL 
examples would be nice.  Also, a copy of your pattern in your md file 
that matches call instructions.

Also, in which pass does the load symbol instruction disappear?  If you 
compile with -da, you will get RTL dumps after each optimization pass. 
You can look at them to see where problem was introduced.

There does appear to be a problem with your port, but there is also a 
way to work around it.  If you define NO_FUNCTION_CSE, then gcc will no 
longer try to optimize function addresses by loading them into pseudos. 
  See the docs for this macro in the doc/tm.texi file.
-- 
Jim Wilson, GNU Tools Support, http://www.specifix.com



More information about the Gcc mailing list