in calls.c: tfom = lang_hooks.types.type_for_mode (outmode, 0); if (aggregate_value_p (tfom, 0))
for 64bit mod, outmode ends up TImode. Our frontend doesn't support TImode -- reasonable? -- and so type_for_mode returns NULL here. aggregate_value_p then derefences that NULL. At least that's what happens in 4.3. I tried hacking the C frontend to interpret % as FLOOR instead of TRUNC. It works though -- the C frontend supports TImode. Seems a little bit odd to depend on that? - Jay ---------------------------------------- > From: jay.kr...@cornell.edu > To: gcc@gcc.gnu.org > Subject: ARM FLOOR_MOD_EXPR? > Date: Sat, 19 Jun 2010 08:17:16 +0000 > > > Do FLOOR_DIV_EXPR and FLOOR_MOD_EXPR work on ARM, for 64bit signed integer? > I have a front end (sort of), using gcc 4.3, generates trees, doesn't work. > type_for_mode(TImode) is NULL and that is dereferenced. > I realize TRUNC_* would be far more "normal", but I can't change that. > I guess I'll just go back to generating function calls. > > - Jay >