- print_quoted_string(&statement->asm_text, '"');
- if (statement->outputs == NULL &&
- statement->inputs == NULL &&
- statement->clobbers == NULL)
- goto end_of_print_asm_statement;
-
- print_string(" : ");
- print_asm_arguments(statement->outputs);
- if (statement->inputs == NULL && statement->clobbers == NULL)
- goto end_of_print_asm_statement;
-
- print_string(" : ");
- print_asm_arguments(statement->inputs);
- if (statement->clobbers == NULL)
- goto end_of_print_asm_statement;
-
- print_string(" : ");
- print_asm_clobbers(statement->clobbers);
-
-end_of_print_asm_statement:
+ print_quoted_string(&stmt->asm_text, '"');
+
+ unsigned const n =
+ stmt->labels ? 4 :
+ stmt->clobbers ? 3 :
+ stmt->inputs ? 2 :
+ stmt->outputs ? 1 :
+ 0;
+ if (n >= 1) print_asm_arguments(stmt->outputs);
+ if (n >= 2) print_asm_arguments(stmt->inputs);
+ if (n >= 3) print_asm_clobbers( stmt->clobbers);
+ if (n >= 4) print_asm_labels( stmt->labels);
+