aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1993-07-14 10:22:23 -0600
committerJeff Law <law@gcc.gnu.org>1993-07-14 10:22:23 -0600
commit0a1daad47e3e349ec4910de45f7ff1d0c13c2d08 (patch)
tree470b89d0c4e56186a594c96d2d62c211caffe1dd /gcc
parentc7e1200faf4bb0f73c317a7b07dbaf7c80ad359d (diff)
downloadgcc-0a1daad47e3e349ec4910de45f7ff1d0c13c2d08.zip
gcc-0a1daad47e3e349ec4910de45f7ff1d0c13c2d08.tar.gz
gcc-0a1daad47e3e349ec4910de45f7ff1d0c13c2d08.tar.bz2
pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow jump instructions in call delay slots.
* pa.h (TARGET_JUMP_IN_DELAY): New target flag to allow/disallow jump instructions in call delay slots. (TARGET_SWITCHES): Add -mjump-in-delay and -mno-jump-in-delay. Provide -mno alternatives for most options. (output_call): Declare. From-SVN: r4914
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/pa/pa.h29
1 files changed, 20 insertions, 9 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index d0f1803..d804180 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -54,6 +54,9 @@ extern int target_flags;
#define TARGET_KERNEL (target_flags & 4)
+/* Allow unconditional jumps in the delay slots of call instructions. */
+#define TARGET_JUMP_IN_DELAY (target_flags & 8)
+
/* Force all function calls to indirect addressing via a register. This
avoids lossage when the function is very far away from the current PC.
@@ -78,15 +81,22 @@ extern int target_flags;
An empty string NAME is used to identify the default VALUE. */
#define TARGET_SWITCHES \
- {{"snake", 1}, \
- {"nosnake", -1}, \
- {"pa-risc-1-0", -1}, \
- {"pa-risc-1-1", 1}, \
- {"disable-fpregs", 2},\
- {"kernel", 4}, \
- {"long-calls", 16}, \
- {"disable-indexing", 32},\
- {"trailing-colon", 64},\
+ {{"snake", 1}, \
+ {"nosnake", -1}, \
+ {"pa-risc-1-0", -1}, \
+ {"pa-risc-1-1", 1}, \
+ {"disable-fpregs", 2}, \
+ {"no-disable-fpregs", 2}, \
+ {"kernel", 4}, \
+ {"no-kernel", -4}, \
+ {"jump-in-delay", 8}, \
+ {"no-jump-in-delay", -8}, \
+ {"long-calls", 16}, \
+ {"no-long-calls", -16}, \
+ {"disable-indexing", 32}, \
+ {"no-disable-indexing", -32},\
+ {"trailing-colon", 64}, \
+ {"no-trailing-colon", -64}, \
{ "", TARGET_DEFAULT}}
#ifndef TARGET_DEFAULT
@@ -1871,6 +1881,7 @@ extern char *output_bb ();
extern char *output_dbra ();
extern char *output_movb ();
extern char *output_return ();
+extern char *output_call ();
extern char *output_floatsisf2 ();
extern char *output_floatsidf2 ();
extern char *output_mul_insn ();