aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom Wood <wood@gnu.org>1992-03-02 13:48:03 +0000
committerTom Wood <wood@gnu.org>1992-03-02 13:48:03 +0000
commit2d6cb8796007824d21c93c5d9ed9afc1c4ce0702 (patch)
tree8e3cac2b07828a471fba928042498d2e45cae5b8 /gcc
parentc5d555ca2f928d4797bb52e1c3eb5f2e566e1636 (diff)
downloadgcc-2d6cb8796007824d21c93c5d9ed9afc1c4ce0702.zip
gcc-2d6cb8796007824d21c93c5d9ed9afc1c4ce0702.tar.gz
gcc-2d6cb8796007824d21c93c5d9ed9afc1c4ce0702.tar.bz2
*** empty log message ***
From-SVN: r377
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m88k/m88k.c7
-rw-r--r--gcc/config/m88k/m88k.h9
-rw-r--r--gcc/config/m88k/m88k.md17
-rw-r--r--gcc/config/vax/vax.c5
4 files changed, 26 insertions, 12 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c
index e3cc205..8ba569c 100644
--- a/gcc/config/m88k/m88k.c
+++ b/gcc/config/m88k/m88k.c
@@ -47,7 +47,7 @@ extern char *ctime ();
extern int flag_traditional;
extern FILE *asm_out_file;
-static char out_sccs_id[] = "@(#)m88k.c 1.96.5.2 06 Feb 1992 10:02:20";
+static char out_sccs_id[] = "@(#)m88k.c 2.0.2.1 28 Feb 1992 12:36:54";
static char tm_sccs_id [] = TM_SCCS_ID;
char *m88k_pound_sign = ""; /* Either # for SVR4 or empty for SVR3 */
@@ -63,6 +63,8 @@ int m88k_case_index;
rtx m88k_compare_reg; /* cmp output pseudo register */
rtx m88k_compare_op0; /* cmpsi operand 0 */
rtx m88k_compare_op1; /* cmpsi operand 1 */
+
+enum attr_cpu m88k_cpu; /* target cpu */
/* Determine what instructions are needed to manufacture the integer VALUE
in the given MODE. */
@@ -2129,10 +2131,11 @@ m88k_debugger_offset (reg, offset)
offset -= m88k_stack_size;
else if (reg != arg_pointer_rtx)
{
+#if (MONITOR_GCC & 0x10) /* Watch for suspicious symbolic locations. */
if (! (GET_CODE (reg) == REG
&& REGNO (reg) >= FIRST_PSEUDO_REGISTER))
- /* @@ For now, I'd like to know if this happens. */
warning ("Internal gcc error: Can't express symbolic location");
+#endif
return 0;
}
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index 1a4d29f..f0eca72 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -95,6 +95,8 @@ extern struct rtx_def *m88k_compare_reg;
extern struct rtx_def *m88k_compare_op0;
extern struct rtx_def *m88k_compare_op1;
+extern enum attr_cpu m88k_cpu;
+
extern int null_epilogue ();
extern int integer_ok_for_set ();
extern int m88k_debugger_offset ();
@@ -202,9 +204,9 @@ extern char * reg_names[];
/* Print subsidiary information on the compiler version in use.
Redefined in m88kv4.h, and m88kluna.h. */
#define VERSION_INFO1 "88open OCS/BCS, "
-#define VERSION_INFO2 "12 Feb 1992"
+#define VERSION_INFO2 "28 Feb 1992"
#define VERSION_STRING version_string
-#define TM_SCCS_ID "@(#)m88k.h 1.96.5.5 12 Feb 1992 12:59:25"
+#define TM_SCCS_ID "@(#)m88k.h 2.0.2.1 28 Feb 1992 12:37:41"
/* Run-time compilation parameters selecting different hardware subsets. */
@@ -302,6 +304,9 @@ extern char * reg_names[];
if ((target_flags & MASK_88000) == 0) \
target_flags |= CPU_DEFAULT; \
\
+ m88k_cpu = (TARGET_88000 ? CPU_M88000 \
+ : (TARGET_88100 ? CPU_M88100 : CPU_M88110)); \
+ \
if (TARGET_BIG_PIC) \
flag_pic = 2; \
\
diff --git a/gcc/config/m88k/m88k.md b/gcc/config/m88k/m88k.md
index 373894c..3e3036f 100644
--- a/gcc/config/m88k/m88k.md
+++ b/gcc/config/m88k/m88k.md
@@ -28,11 +28,15 @@
(define_expand "m88k_sccs_id"
[(match_operand:SI 0 "" "")]
""
- "{ static char sccs_id[] = \"@(#)m88k.md 1.96.4.3 1/14/92 09:46:15\";
+ "{ static char sccs_id[] = \"@(#)m88k.md 2.0.2.1 28 Feb 1992 12:38:31\";
FAIL; }")
;; Attribute specifications
+; Target CPU.
+(define_attr "cpu" "m88000,m88100,m88110"
+ (symbol_ref "m88k_cpu"))
+
; Type of each instruction. Default is arithmetic.
; I'd like to write the list as this, but genattrtab won't accept it.
;
@@ -642,14 +646,11 @@
;; The actual compare instructions.
(define_insn ""
- [(set (match_operand:CC 0 "register_operand" "=r,r")
- (compare:CC (match_operand:SI 1 "register_operand" "rO,I")
- (match_operand:SI 2 "arith_operand" "rI,r")))]
+ [(set (match_operand:CC 0 "register_operand" "=r")
+ (compare:CC (match_operand:SI 1 "register_operand" "rO")
+ (match_operand:SI 2 "arith_operand" "rI")))]
""
- "@
- cmp %0,%r1,%2
- cmp %0,%2,%1\;xor.c %0,%#r0,%0"
- [(set_attr "type" "arith,marith")])
+ "cmp %0,%r1,%2")
(define_insn ""
[(set (match_operand:CC 0 "register_operand" "=r,r")
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index 68743cd..b059a3a 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -152,6 +152,11 @@ print_operand_address (file, addr)
reg1 = XEXP (addr, 1);
addr = XEXP (addr, 0);
}
+ else if (GET_CODE (XEXP (addr, 0)) == REG)
+ {
+ reg1 = XEXP (addr, 0);
+ addr = XEXP (addr, 1);
+ }
else
abort ();