These patches fix a problem with the linearization of asm statements with output memory operands. These operands need to have their address generated before the asm instruction but was generated after it. Note: the problem wasn't visible when the address was a symbol because the OP_SYMADDR producing the address is simplified away at some later stage with the symbol directly handled by the memory operation. Luc Van Oostenryck (3): asm: add testcase for problem with output addresses asm: factor out add_asm_rule() from add_asm_{in,out}put() asm: output *memory* operands need their address as *input* linearize.c | 54 +++++++++++++++++++++++------------- validation/linear/asm-out0.c | 25 +++++++++++++++++ 2 files changed, 60 insertions(+), 19 deletions(-) create mode 100644 validation/linear/asm-out0.c base-commit: 60c1f2706e30eacc29296e6cb5d9327c85a01340 -- 2.30.0