Line 1... |
Line 1... |
/* Subroutines for insn-output.c for GNU compiler. OpenRISC 1000 version.
|
ssh o/* 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 1777... |
Line 1777... |
{
|
{
|
rtx reg = XEXP(x,0);
|
rtx reg = XEXP(x,0);
|
|
|
/* If valid register... */
|
/* If valid register... */
|
if ((GET_CODE(reg) == REG)
|
if ((GET_CODE(reg) == REG)
|
&& or32_regnum_ok_for_base_p (INTVAL (reg), strict))
|
&& or32_regnum_ok_for_base_p (REGNO (reg), strict))
|
{
|
{
|
rtx offset = XEXP(x,1);
|
rtx offset = XEXP(x,1);
|
|
|
/* ...and valid offset */
|
/* ...and valid offset */
|
if (or32_legitimate_displacement_p (mode, offset))
|
if (or32_legitimate_displacement_p (mode, offset))
|
Line 1792... |
Line 1792... |
}
|
}
|
|
|
/* 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( INTVAL (x), strict))
|
if (GET_CODE(x) == REG && or32_regnum_ok_for_base_p( REGNO (x), strict))
|
{
|
{
|
return 1;
|
return 1;
|
}
|
}
|
|
|
return 0;
|
return 0;
|