[addrmodes] More APIs in addresses.h

Paolo Bonzini bonzini@gnu.org
Mon Aug 21 13:18:00 GMT 2006


This patch grows a "_strict" suffix to the strict functions, and adds a 
generic function that works in both strict and non-strict modes.  The 
idea is to use this in target C files where REG_STRICT_P is passed from 
the target header.  It will replace stuff like:

   if (REG_P (x)
       && (strict
           ? STRICT_REG_OK_FOR_BASE_P (x)
           : NONSTRICT_REG_OK_FOR_BASE_P (x)))
     return true;

with

   if (ok_for_base_p (x, strict))
     return true;

Each target will have to be looked at individually because of quirks in 
the current definitions of REG_OK_FOR_BASE_P.  In some cases, hard 
registers that are valid "non-strict" base registers may become invalid 
when the strict definitions are used.

Again, barring quirks in the target macros, there should be no impact on 
generated assembly.

Paolo
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 05-add-strict-nonstrict-functions.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20060821/841f7ae6/attachment.ksh>


More information about the Gcc-patches mailing list