This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

When is it valid to use RTX_FRAME_RELATED_P ?


I'm trying to find out why gcc-3.2 cvs builds (with checking enabled) fail on arm-linux.

The first problem that I had to resolve was with 'CONSTANT_POOL_ADDRESS_P'
where Krister came up with a solution in
<http://gcc.gnu.org/ml/gcc-patches/2002-06/msg00365.html>

(although I would rather rewrite it as :

#define LEGITIMATE_PIC_OPERAND_P(X)					\
	(   ! symbol_mentioned_p (X)					\
	 && ! label_mentioned_p (X)					\
	 && (! ((GET_CODE(X) == SYMBOL_REF) && CONSTANT_POOL_ADDRESS_P (X))				\
	     || (   ! symbol_mentioned_p (get_pool_constant (X))  	\
	         && ! label_mentioned_p (get_pool_constant (X)))))

)

)


Now I encounter following problem when doing a 'make' (c, c++ languages enabled) :

/gcc/gcc/../include  -DL_fixunsdfdi -c ../../gcc/gcc/libgcc2.c -o libgcc/./_fixunsdfdi.o
../../gcc/gcc/libgcc2.c: In function `__fixunsdfdi':
../../gcc/gcc/libgcc2.c:946: internal compiler error: RTL flag check: RTX_FRAME_RELATED_P used with unexpected rtx code `parallel' in emit_sfm, at config/arm/arm.c:7925
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.


And checking where it fails, I get :


static rtx
emit_sfm (base_reg, count)
     int base_reg;
     int count;
{
  rtx par;
  rtx dwarf;
  rtx tmp, reg;
  int i;

  par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count));
  dwarf = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count));
  RTX_FRAME_RELATED_P (dwarf) = 1; /* <==== here it fails*/

  reg = gen_rtx_REG (XFmode, base_reg++);
[...]


So what should I do now ? RTX_FRAME_RELATED_P doesn't expect 'parallel', but
in arm.c we explicitely create a parallel and set the RTX_FRAME_RELATED_P for it ??

(documentation about RTX_FRAME_RELATED_P (<http://gcc.gnu.org/onlinedocs/gccint/Flags.html#Flags>)
doesn't say anything about parallels...)

Greetings,
--
Jeroen Dobbelaere
Embedded Software Engineer

ACUNIA Embedded Solutions
http://www.acunia.com/aes



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]