diff options
author | Richard Henderson <rth@cygnus.com> | 1999-09-02 13:01:46 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-09-02 13:01:46 -0700 |
commit | 57bcb97aac8ba7f801c3ce18ef287ae9a4ac6ae9 (patch) | |
tree | dc5ca7fbf22568057834f64696baefb89b6503d6 | |
parent | 773c6f00765f091ee6a69929a19cfd46d7a30c03 (diff) | |
download | gcc-57bcb97aac8ba7f801c3ce18ef287ae9a4ac6ae9.zip gcc-57bcb97aac8ba7f801c3ce18ef287ae9a4ac6ae9.tar.gz gcc-57bcb97aac8ba7f801c3ce18ef287ae9a4ac6ae9.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 25 | ||||
-rw-r--r-- | gcc/stmt.c | 8 | ||||
-rw-r--r-- | gcc/tm.texi | 5 |
3 files changed, 38 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6a4fbea..e73dd7d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,28 @@ +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> * 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) 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 we would ignore later. */ nclobbers = 0; diff --git a/gcc/tm.texi b/gcc/tm.texi index 8375908..eab7b2e 100644 --- a/gcc/tm.texi +++ b/gcc/tm.texi @@ -7713,6 +7713,11 @@ unit may not be bound to undefined symbols in another translation unit without user intervention. For instance, under Microsoft Windows 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 @item ISSUE_RATE A C expression that returns how many instructions can be issued at the |