On Mon, 28 Feb 2005, Dave Korn wrote: > Hmmm, actually, I would say that moving these macro definitions into the > cpu.c files is a fairly mechanical and trivial transformation. Given:
WRONG! > ${CPU}.h: > #define GO_IF_LEGITIMATE_ADDRESS(MODE,X,ADDR) \ > if ( .... some very hairy conditional depending on REG_OK_STRICT ) \ > goto ADDR; > > you just redefine it as > > ${CPU}.h > #define GO_IF_LEGITIMATE_ADDRESS(MODE,X,ADDR) \ > if (${CPU}_go_if_legitimate_address ((MODE), (X), (REG_OK_STRICT)) \ > goto ADDR; > > ${CPU}.c > int ${CPU}_go_if_legitimate_address (enum machine_mode mode, rtx x, int > reg_ok_strict) > { > return ( ... same conditional s/REG_OK_STRICT/reg_ok_strict/g ); > } And then, much later on, perhaps not even from the GCC test-suite, you find that a helper macro of a helper macro used in the GO_IF_LEGITIMATE_ADDRESS (said helper macro still being defined in cpu.h) is dependent on REG_OK_STRICT. As a port mauthor/maintainer, you do this *once*. Then you stay alert about moving REG_OK_STRICT-dependent things into cpu.c. brgds, H-P