From 36d7136e9983a0c8f2d07b84a0b8cb16f8e9e9db Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 27 Aug 2001 10:29:57 -0700 Subject: [PATCH] final.c (final_scan_insn): Don't enter APP_ON mode for empty asm strings. * final.c (final_scan_insn): Don't enter APP_ON mode for empty asm strings. From-SVN: r45199 --- gcc/ChangeLog | 3 +++ gcc/final.c | 31 ++++++++++++++++++++----------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cdaf55abe6d..6b90b3eb84f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2001-08-27 Richard Henderson + * final.c (final_scan_insn): Don't enter APP_ON mode for + empty asm strings. + * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper alignment for assemble_integer for DW_EH_PE_aligned. * except.c (output_function_exception_table): Likewise. diff --git a/gcc/final.c b/gcc/final.c index d524ccb9345..ec29a45952d 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -2481,16 +2481,22 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) if (GET_CODE (body) == ASM_INPUT) { + const char *string = XSTR (body, 0); + /* There's no telling what that did to the condition codes. */ CC_STATUS_INIT; if (prescan > 0) break; - if (! app_on) + + if (string[0]) { - fputs (ASM_APP_ON, file); - app_on = 1; + if (! app_on) + { + fputs (ASM_APP_ON, file); + app_on = 1; + } + fprintf (asm_out_file, "\t%s\n", string); } - fprintf (asm_out_file, "\t%s\n", XSTR (body, 0)); break; } @@ -2506,12 +2512,6 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) if (prescan > 0) break; - if (! app_on) - { - fputs (ASM_APP_ON, file); - app_on = 1; - } - /* Get out the operand values. */ string = decode_asm_operands (body, ops, NULL, NULL, NULL); /* Inhibit aborts on what would otherwise be compiler bugs. */ @@ -2519,7 +2519,16 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) this_is_asm_operands = insn; /* Output the insn using them. */ - output_asm_insn (string, ops); + if (string[0]) + { + if (! app_on) + { + fputs (ASM_APP_ON, file); + app_on = 1; + } + output_asm_insn (string, ops); + } + this_is_asm_operands = 0; break; }