Commit 57bcb97a by Richard Henderson Committed by Richard Henderson

stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.

        * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
        * tm.texi (MD_ASM_CLOBBERS): Document it.

From-SVN: r29064
parent 773c6f00
Thu Sep 2 13:00:48 1999 Richard Henderson <rth@cygnus.com>
* stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
* tm.texi (MD_ASM_CLOBBERS): Document it.
Thu Sep 2 10:22:40 1999 Richard Henderson <rth@cygnus.com>
* dwarf2out.c (dwarf2out_line): Constify `lastfile'.
* except.c (expand_rethrow): Remove unused variable.
* expr.c (do_jump_by_parts_greater_rtx): Likewise.
* flow.c (replace_insns): Likewise.
(create_edge_list, verify_edge_list): Likewise.
* gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
* genemit.c (gen_expand): Only emit `operands[N]' decl if there
is special code to run.
(main): Don't define operands to emit_operand.
* genrecog.c (main): Don't emit an empty peephole2_insn function.
* rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
* alpha/alpha.h (normal_memory_operand): Declare.
(reg_no_subreg_operand): Declare.
* alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com> Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com>
* c-parse.in (compstmt_primary_start): New, broken out of first * c-parse.in (compstmt_primary_start): New, broken out of first
......
...@@ -1153,6 +1153,14 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) ...@@ -1153,6 +1153,14 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
return; return;
} }
#ifdef MD_ASM_CLOBBERS
/* Sometimes we wish to automatically clobber registers across an asm.
Case in point is when the i386 backend moved from cc0 to a hard reg --
maintaining source-level compatability means automatically clobbering
the flags register. */
MD_ASM_CLOBBERS (clobbers);
#endif
/* Count the number of meaningful clobbered registers, ignoring what /* Count the number of meaningful clobbered registers, ignoring what
we would ignore later. */ we would ignore later. */
nclobbers = 0; nclobbers = 0;
......
...@@ -7713,6 +7713,11 @@ unit may not be bound to undefined symbols in another translation unit ...@@ -7713,6 +7713,11 @@ unit may not be bound to undefined symbols in another translation unit
without user intervention. For instance, under Microsoft Windows without user intervention. For instance, under Microsoft Windows
symbols must be explicitly imported from shared libraries (DLLs). symbols must be explicitly imported from shared libraries (DLLs).
@findex MD_ASM_CLOBBERS
@item MD_ASM_CLOBBERS
A C statement that adds to @var{CLOBBERS} @code{STRING_CST} trees for
any hard regs the port wishes to automatically clobber for all asms.
@findex ISSUE_RATE @findex ISSUE_RATE
@item ISSUE_RATE @item ISSUE_RATE
A C expression that returns how many instructions can be issued at the A C expression that returns how many instructions can be issued at the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment