This is similar to what I had to do for msp430 - I made a new constraint that was what general_operand would have done if it allowed volatile MEMs, and used that for instructions where a volatile's volatileness wouldn't be broken.