On 9/10/07, Rask Ingemann Lambertsen <[EMAIL PROTECTED]> wrote: > It would help a lot if you post your GO_IF_LEGITIMATE_ADDRESS.
It's really very basic: # define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \ { if (legitimate_address_p (MODE, X, true)) goto ADDR; } and in the .c-file: bool legitimate_address_p (enum machine_mode mode, rtx addr, bool strict ATTRIBUTE_UNUSED) { return (legitimate_offset_address_p (mode, addr) || legitimate_nonoffset_address_p (mode, addr)); } static bool legitimate_nonoffset_address_p (enum machine_mode mode ATTRIBUTE_UNUSED, rtx addr) { return (GET_CODE (addr) == REG && REG_OK_FOR_BASE_P (addr)); } static bool legitimate_offset_address_p (enum machine_mode mode ATTRIBUTE_UNUSED, rtx addr) { rtx reg, offset; if (GET_CODE (addr) != PLUS) return false; reg = XEXP (addr, 0); offset = XEXP (addr, 1); if ((GET_CODE (reg) == REG && REG_OK_FOR_BASE_P (reg)) && legitimate_address_integer_p (offset, 0)) return true; return false; } static bool legitimate_address_integer_p (rtx addr, int offset ATTRIBUTE_UNUSED) { return (GET_CODE (addr) == CONST_INT && SMALL_INT (INTVAL (addr)); } /Tomas