aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Koning <pkoning@equallogic.com>2010-10-20 15:40:09 +0000
committerPaul Koning <pkoning@gcc.gnu.org>2010-10-20 11:40:09 -0400
commit825cb171c0e5482e873a53af0982346947302a9c (patch)
tree4f36827323c39be2e60600b98abe99ba5daa097e /gcc
parent66c92425474133a5c7fea3573e5366e93456da7a (diff)
downloadgcc-825cb171c0e5482e873a53af0982346947302a9c.zip
gcc-825cb171c0e5482e873a53af0982346947302a9c.tar.gz
gcc-825cb171c0e5482e873a53af0982346947302a9c.tar.bz2
Fix several build errors for pdp11 target.
* config/pdp11/pdp11.md (*cmpdf): Fix tstd operands. (cbranchdf4): Conditional on TARGET_FPU. (movdf): Ditto; correct alternatives check. (movmemhi): Fix predicate and constraint. * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode. From-SVN: r165729
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/pdp11/pdp11.h2
-rw-r--r--gcc/config/pdp11/pdp11.md22
3 files changed, 21 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a10ba68..a4a70f4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2010-10-20 Paul Koning <pkoning@equallogic.com>
+
+ Fix several build errors for pdp11 target.
+ * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
+ (cbranchdf4): Conditional on TARGET_FPU.
+ (movdf): Ditto; correct alternatives check.
+ (movmemhi): Fix predicate and constraint.
+ * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
+
2010-10-20 Richard Guenther <rguenther@suse.de>
PR lto/45667
diff --git a/gcc/config/pdp11/pdp11.h b/gcc/config/pdp11/pdp11.h
index 2904acd..cdb6315 100644
--- a/gcc/config/pdp11/pdp11.h
+++ b/gcc/config/pdp11/pdp11.h
@@ -224,7 +224,7 @@ extern const struct real_format pdp11_d_format;
#define HARD_REGNO_MODE_OK(REGNO, MODE) \
(((REGNO) < 8)? \
((GET_MODE_BITSIZE(MODE) <= 16) \
- || (GET_MODE_BITSIZE(MODE) == 32 && !((REGNO) & 1))) \
+ || (GET_MODE_BITSIZE(MODE) >= 32 && !((REGNO) & 1))) \
:(MODE) == DFmode)
diff --git a/gcc/config/pdp11/pdp11.md b/gcc/config/pdp11/pdp11.md
index 64d57e0..9ef1c4f 100644
--- a/gcc/config/pdp11/pdp11.md
+++ b/gcc/config/pdp11/pdp11.md
@@ -1,6 +1,6 @@
;;- Machine description for the pdp11 for GNU C compiler
;; Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2004, 2005
-;; 2007, 2008 Free Software Foundation, Inc.
+;; 2007, 2008, 2010 Free Software Foundation, Inc.
;; Contributed by Michael K. Gschwind (mike@vlsivie.tuwien.ac.at).
;; This file is part of GCC.
@@ -95,7 +95,7 @@
{
cc_status.flags = CC_IN_FPU;
if (which_alternative == 0 || which_alternative == 2)
- return \"{tstd|tstf} %0, %1\;cfcc\";
+ return \"{tstd|tstf} %0\;cfcc\";
else
return \"{cmpd|cmpf} %0, %1\;cfcc\";
}"
@@ -187,7 +187,7 @@
[(cc0) (const_int 0)])
(label_ref (match_operand 3 "" ""))
(pc)))]
- ""
+ "TARGET_FPU"
"")
(define_expand "cbranchhi4"
@@ -306,12 +306,12 @@
;; do we have to supply all these moves? e.g. to
;; NO_LOAD_FPU_REGs ?
(define_insn "movdf"
- [(set (match_operand:DF 0 "general_operand" "=a,fR,a,Q,m")
- (match_operand:DF 1 "general_operand" "fFR,a,Q,a,m"))]
- ""
- "* if (which_alternative ==0)
+ [(set (match_operand:DF 0 "general_operand" "=a,fR,a,Q,g")
+ (match_operand:DF 1 "general_operand" "fFR,a,Q,a,g"))]
+ "TARGET_FPU"
+ "* if (which_alternative ==0 || which_alternative == 2)
return \"ldd %1, %0\";
- else if (which_alternative == 1)
+ else if (which_alternative == 1 || which_alternative == 3)
return \"std %1, %0\";
else
return output_move_quad (operands); "
@@ -353,9 +353,9 @@
(define_insn "" ; "movmemhi"
- [(set (mem:BLK (match_operand:HI 0 "general_operand" "=r,r"))
- (mem:BLK (match_operand:HI 1 "general_operand" "r,r")))
- (use (match_operand:HI 2 "arith_operand" "n,&r"))
+ [(set (mem:BLK (match_operand 0 "pmode_register_operand" "+r,r"))
+ (mem:BLK (match_operand 1 "pmode_register_operand" "+r,r")))
+ (use (match_operand:HI 2 "general_operand" "+n,&r"))
(use (match_operand:HI 3 "immediate_operand" "i,i"))
(clobber (match_scratch:HI 4 "=&r,X"))
(clobber (match_dup 0))