• Paul Eggert's avatar
    Re-port alloc.c to Solaris sparc and simplify · e080d019
    Paul Eggert authored
    alloc.c had bitrotted a bit, and used an undefined symbol
    stack_base when Emacs was built on Solaris sparc, leading to
    compilation failures.  Also, code related to __builtin_unwind_init
    was unnecessarily duplicated.  Fix the bitrot and remove some
    duplication.
    * src/alloc.c: Remove uses of GC_SAVE_REGISTERS_ON_STACK, since it
    is never defined.
    (test_setjmp) [!HAVE___BUILTIN_UNWIND_INIT && GC_SETJMP_WORKS]:
    Define a no-op dummy, to simplify use.
    (test_setjmp) [!GC_SETJMP_WORKS]: Test setjmp_tested_p here rather
    than in the caller, to simplify use.
    (stacktop_sentry): New type.
    (__builtin_unwind_init) [!HAVE___BUILTIN_UNWIND_INIT]: New macro.
    (SET_STACK_TOP_ADDRESS): New macro, containing code that was duplicated.
    (flush_stack_call_func, Fgarbage_collect): Use it.
    (init_alloc): Omit unnecessary initialization.
    After dumping, Emacs need not re-test setjmp.
    e080d019
alloc.c 203 KB