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]

word alignment for non fp/sp register pointers for SPARClet port


Hi,
	I'm trying to make sparc port of GCC to
	assume that if an address which is not offseted
	from FP or SP is not more then 32 bit aligned.

	I know that this is not inline with SPARC (hence SPARClet)
	ABI, but our malloc and all of system is based on old
	SPARC ABI. Till now we were using egcs 1.1 which is based
	on old sparclet ABI. Now since we are migrating to GCC 3.2
	and latter GCC 3.3 we are facing this problem.	Since it
	is not possible to change the whole system s/w so soon,
	I'm trying to fix GCC as per old ABI.

	I hacked mem_min_alignment(sparc.c) to return 0 if the
	align > 4 & reg is nither HARD_FRAME_POINTER_REGNUM
	nor STACK_POINTER_REGNUM. Also I modified mem_ok_for_ldd_peep
	likewise.

	Though the problem does get solved, however I get following error
	when building newlib
/home/ngupta/WorkArea/src/newlib/libc/stdlib/strtod.c: In function
`_strtod_r':
/home/ngupta/WorkArea/src/newlib/libc/stdlib/strtod.c:712: insn does not
satisfy its constraints:
(insn 3352 3260 1136 (set (reg:DF 12 %o4)
        (mem/u:DF (plus:SI (reg/f:SI 8 %o0 [327])
                (reg:SI 9 %o1 [330])) [6 __mprec_tinytens S8 A64])) 91
{*movdf_no_e_insn_sp32} (nil)
    (nil))
/home/ngupta/WorkArea/src/newlib/libc/stdlib/strtod.c:712: Internal compiler
error in reload_cse_simplify_operands, at reload1.c:8369

	I know I have to make a few more changes, but I have no idea where!
	I have been strugling with GCC code for quite sometime now.	Please
	help me to figure out the error.

Thanks and Best Regards,
Nitin


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