diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-27 17:29:57 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-27 17:29:57 +0000 |
commit | 38606abfc3739b1525c09d7f860dcb0081906b0a (patch) | |
tree | f5872d06ef1b26e3dc869d2a342aced1809550c3 | |
parent | 52ec67c4c67e730a01b45aece92f4827d23f5dc3 (diff) | |
download | ppe42-gcc-38606abfc3739b1525c09d7f860dcb0081906b0a.tar.gz ppe42-gcc-38606abfc3739b1525c09d7f860dcb0081906b0a.zip |
* final.c (final_scan_insn): Don't enter APP_ON mode for
empty asm strings.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45199 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | 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 <rth@redhat.com> + * 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; } |