This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
When is it valid to use RTX_FRAME_RELATED_P ?
- From: jeroen dobbelaere <jeroen dot dobbelaere at acunia dot com>
- To: gcc at gcc dot gnu dot org
- Cc: cato at df dot lth dot se
- Date: Wed, 26 Jun 2002 09:47:16 +0200
- Subject: When is it valid to use RTX_FRAME_RELATED_P ?
- Organization: ACUNIA
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