summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-27 17:29:57 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-08-27 17:29:57 +0000
commit38606abfc3739b1525c09d7f860dcb0081906b0a (patch)
treef5872d06ef1b26e3dc869d2a342aced1809550c3
parent52ec67c4c67e730a01b45aece92f4827d23f5dc3 (diff)
downloadppe42-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/ChangeLog3
-rw-r--r--gcc/final.c31
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;
}
OpenPOWER on IntegriCloud