I have worked out a tentative plan for replacing most of these macros with ordinary target hooks, and eliminating REG_OK_STRICT. I propose to change GO_IF_LEGITIMATE_ADDRESS, GO_IF_MODE_DEPENDENT_ADDRESS, LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS, REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P, REG_OK_FOR_INDEX_P, CONSTANT_ADDRESS_P, FIND_BASE_TERM, and LEGITIMATE_CONSTANT_P. The other macros in this section are all numeric constants and in at least one case are used to size static arrays, so conversion to hooks doesn't make sense (yet).
Are you planning to keep the observed behaviour, or do you want to make any enhancements that would allow us to describe addressing modes better? One of my plans for the medium term is to add a context argument to BASE_REG_CLASS etc. so that we could e.g. allow different register classes in a PLUS than in a POST_INC.
Bernd