DONT_ACCESS_GBLS_AFTER_EPILOGUE

Geoff Keating geoffk@cygnus.com
Fri Feb 11 17:25:00 GMT 2000


Does anyone know what this macro does?

It's set on ppc to

/* See nonlocal_goto_receiver for when this must be set.  */

#define DONT_ACCESS_GBLS_AFTER_EPILOGUE (TARGET_TOC && TARGET_MINIMAL_TOC)

and since I'm just about to delete the nonlocal_goto_receiver pattern
(it turns out it should be builtin_setjmp_receiver instead),
I'm wondering whether the macro should be

(a) deleted;
(b) turned into the condition of nonlocal_goto_receiver, which will
    be something along the lines of 

   ((TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
      || ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS) 
	  && flag_pic == 1 && regs_ever_live[PIC_OFFSET_TABLE_REGNUM]))

    but with some terms missing;

(c) left alone;
(d) randomly mutated until someone complains :-).

I'm particularly confused because the epilogue is not exactly a fixed
target now that it is scheduled, and it is perfectly possible to end
up accessing globals in the middle of it without any special effort.

-- 
- Geoffrey Keating <geoffk@cygnus.com>


More information about the Gcc mailing list