diff options
| author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-18 07:13:31 +0000 |
|---|---|---|
| committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-09-18 07:13:31 +0000 |
| commit | a6582a53a8076e070865d8a5fe379ceb95c650a2 (patch) | |
| tree | a20dcf5426959c8bc916f2a533b0e86b0d0afee1 | |
| parent | e0e489c42466dc40574a9d7c610d31b64103cd75 (diff) | |
| download | ppe42-gcc-a6582a53a8076e070865d8a5fe379ceb95c650a2.tar.gz ppe42-gcc-a6582a53a8076e070865d8a5fe379ceb95c650a2.zip | |
* pa.h (INSN_SETS_ARE_DELAYED): Delete.
* pa.c (insn_refs_are_delayed): Renamed from
insn_sets_and_refs_are_delayed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29491 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/pa/pa.c | 4 | ||||
| -rw-r--r-- | gcc/config/pa/pa.h | 17 |
3 files changed, 18 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1f0d6e67bbb..c04276f889a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (INSN_SETS_ARE_DELAYED): Delete. + * pa.c (insn_refs_are_delayed): Renamed from + insn_sets_and_refs_are_delayed. + Fri Sep 17 15:19:01 1999 Mark Mitchell <mark@codesourcery.com> * functiion.h (struct function): Add x_whole_function_mode_p. diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 773c0c7bc0b..28a220d0f15 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -6510,7 +6510,7 @@ pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2) return 1; } -/* Return nonzero if sets and references for INSN are delayed. +/* Return nonzero if references for INSN are delayed. Millicode insns are actually function calls with some special constraints on arguments and register usage. @@ -6528,7 +6528,7 @@ pa_can_combine_p (new, anchor, floater, reversed, dest, src1, src2) filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns in particular. */ int -insn_sets_and_refs_are_delayed (insn) +insn_refs_are_delayed (insn) rtx insn; { return ((GET_CODE (insn) == INSN diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 21f67280920..4734057151a 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1850,17 +1850,20 @@ while (0) are expected to clobber their arguments, %r1, %r29, and %r31 and nothing else. - These macros tell reorg that the references to arguments and - register clobbers for millicode calls do not appear to happen - until after the millicode call. This allows reorg to put insns - which set the argument registers into the delay slot of the millicode - call -- thus they act more like traditional CALL_INSNs. + This macro tells reorg that the references to arguments and + millicode calls do not appear to happen until after the millicode call. + This allows reorg to put insns which set the argument registers into the + delay slot of the millicode call -- thus they act more like traditional + CALL_INSNs. + + Note we can not consider side effects of the insn to be delayed because + the branch and link insn will clobber the return pointer. If we happened + to use the return pointer in the delay slot of the call, then we lose. get_attr_type will try to recognize the given insn, so make sure to filter out things it will not accept -- SEQUENCE, USE and CLOBBER insns in particular. */ -#define INSN_SETS_ARE_DELAYED(X) (insn_sets_and_refs_are_delayed (X)) -#define INSN_REFERENCES_ARE_DELAYED(X) (insn_sets_and_refs_are_delayed (X)) +#define INSN_REFERENCES_ARE_DELAYED(X) (insn_refs_are_delayed (X)) /* Control the assembler format that we output. */ |

