aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-09-18 07:13:31 +0000
committerJeff Law <law@gcc.gnu.org>1999-09-18 01:13:31 -0600
commit2561a923d0276c94f80ab017f51821669e234fe6 (patch)
treea20dcf5426959c8bc916f2a533b0e86b0d0afee1 /gcc
parentb35d4555e691bb26962451ad41324cf9d9f02086 (diff)
downloadgcc-2561a923d0276c94f80ab017f51821669e234fe6.zip
gcc-2561a923d0276c94f80ab017f51821669e234fe6.tar.gz
gcc-2561a923d0276c94f80ab017f51821669e234fe6.tar.bz2
pa.h (INSN_SETS_ARE_DELAYED): Delete.
* pa.h (INSN_SETS_ARE_DELAYED): Delete. * pa.c (insn_refs_are_delayed): Renamed from insn_sets_and_refs_are_delayed. From-SVN: r29491
Diffstat (limited to 'gcc')
-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 1f0d6e6..c04276f 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 773c0c7..28a220d 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 21f6728..4734057 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. */