From: Will N. <wi...@mi...> - 2002-09-17 03:14:02
|
The segfault on Linux/sparc seems to be caused by the manual allocation of registers in lispbibl.d. In lispbibl.d there is the following table: # Overview of use of registers in gcc terminology: # fixed: mentioned in FIXED_REGISTERS # used: mentioned in CALL_USED_REGISTERS but not FIXED_REGISTERS # (i.e. caller-saved) # save: otherwise (i.e. call-preserved, callee-saved) # # STACK mv_count value1 subr_self # MC680X0 used # I80386 save # SPARC fixed fixed fixed used According to the above definition all the sparc registers used (g4, g5, g6, g7) should be of type used. In the gcc source code the registers are all specified in both FIXED and CALL_USED, but I am not yet sure what exactly that means. Disabling the register allocation code allows the compile to proceed with full optimization. I have attached a trivial patch. |