OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [config/] [or32/] [or32.c] - Diff between revs 377 and 378

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 377 Rev 378
Line 1... Line 1...
ssh o/* Subroutines for insn-output.c for GNU compiler.  OpenRISC 1000 version.
/* Subroutines for insn-output.c for GNU compiler.  OpenRISC 1000 version.
   Copyright (C) 1987, 1992, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
   Copyright (C) 1987, 1992, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
   2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc
   2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc
   Copyright (C) 2010 Embecosm Limited
   Copyright (C) 2010 Embecosm Limited
 
 
   Contributed by Damjan Lampret <damjanl@bsemi.com> in 1999.
   Contributed by Damjan Lampret <damjanl@bsemi.com> in 1999.
Line 133... Line 133...
 
 
  return false;
  return false;
 
 
}       /* or32_save_reg_p () */
}       /* or32_save_reg_p () */
 
 
 
 
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/*!Compute full frame size and layout.
/*!Compute full frame size and layout.
 
 
   Store information in "frame_info".
   Store information in "frame_info".
 
 
Line 1754... Line 1753...
 
 
   @return  Non-zero (TRUE) if this is a legitimate address, zero (FALSE)
   @return  Non-zero (TRUE) if this is a legitimate address, zero (FALSE)
            otherwise.                                                        */
            otherwise.                                                        */
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
static bool
static bool
or32_legitimate_address_p (enum machine_mode  mode,
or32_legitimate_address_p (enum machine_mode  mode ATTRIBUTE_UNUSED,
                           rtx                x,
                           rtx                x,
                           bool               strict)
                           bool               strict)
{
{
  /* You might think 16-bit constants are suitable. They can be built into
  /* You might think 16-bit constants are suitable. They can be built into
     addresses using r0 as the base. However this seems to lead to defective
     addresses using r0 as the base. However this seems to lead to defective
Line 1792... Line 1791...
    }
    }
 
 
  /* Addresses consisting of just a register are OK. They can be built into
  /* Addresses consisting of just a register are OK. They can be built into
     addresses using an offset of zero (and an offset of four if double
     addresses using an offset of zero (and an offset of four if double
     word). */
     word). */
  if (GET_CODE(x) == REG && or32_regnum_ok_for_base_p( REGNO (x), strict))
  if (GET_CODE(x) == REG
    {
    && or32_regnum_ok_for_base_p(REGNO(x),strict)) {
      return 1;
      return 1;
    }
    }
 
 
  return 0;
  return 0;
 
}
}       /* or32_legitimate_address_p () */
 
 
 
 
 
/* -------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */
/*!Initialize a trampoline for nested functions.
/*!Initialize a trampoline for nested functions.
 
 
   A nested function is defined by *two* pieces of information, the address of
   A nested function is defined by *two* pieces of information, the address of

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.