Paul Edwards wrote: > I was surprised that an instruction that is marked as s_operand > was getting a seemingly non-s_operand given to it, so I added an > "S" constraint:
That's right. It is not good to have a constraint that accepts more than the predicate, since reload will at this point only consider the constraint. Adding a more restricted constraint should be the proper fix for this problem. > That then gave an actual compiler error instead of generating bad > code, which is a step forward: > > pdos.c: In function `pdosLoadExe': > pdos.c:2703: error: unable to generate reloads for: You'll need to mark your new constraint as EXTRA_MEMORY_CONSTRAINT so that reload knows what to do when an argument doesn't match. Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com