summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-18 07:13:31 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-09-18 07:13:31 +0000
commita6582a53a8076e070865d8a5fe379ceb95c650a2 (patch)
treea20dcf5426959c8bc916f2a533b0e86b0d0afee1
parente0e489c42466dc40574a9d7c610d31b64103cd75 (diff)
downloadppe42-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/ChangeLog6
-rw-r--r--gcc/config/pa/pa.c4
-rw-r--r--gcc/config/pa/pa.h17
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. */
OpenPOWER on IntegriCloud