aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoman Lechtchinsky <rl@cs.tu-berlin.de>2001-09-14 16:25:26 +0000
committerRichard Henderson <rth@gcc.gnu.org>2001-09-14 09:25:26 -0700
commite91c2a245c5f8019adb23fcc1b7a2818758eaae6 (patch)
tree58e9ba9f67441fe96eb278c17f0627af6faabe3c /gcc
parent6d8b8de30f9893f4e7c4833e98055bffca5d4030 (diff)
downloadgcc-e91c2a245c5f8019adb23fcc1b7a2818758eaae6.zip
gcc-e91c2a245c5f8019adb23fcc1b7a2818758eaae6.tar.gz
gcc-e91c2a245c5f8019adb23fcc1b7a2818758eaae6.tar.bz2
alpha.md (unaligned_extendhidi_be): Fix.
* config/alpha/alpha.md (unaligned_extendhidi_be): Fix. * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New. From-SVN: r45600
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/alpha/alpha.md6
-rw-r--r--gcc/config/alpha/unicosmk.h8
3 files changed, 17 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fe050c8..5855c43 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-09-14 Roman Lechtchinsky <rl@cs.tu-berlin.de>
+
+ * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
+ * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
+
2001-09-14 Nick Clifton <nickc@cambridge.redhat.com>
* rtlanal.c (subreg_regno_offset): Add semicolon to end of
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md
index 9a25ef4..494a997 100644
--- a/gcc/config/alpha/alpha.md
+++ b/gcc/config/alpha/alpha.md
@@ -1848,8 +1848,10 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi"
(set (match_dup 6)
(ashift:DI (match_dup 4)
(ashift:DI
- (and:DI (match_dup 5) (const_int 7))
- (const_int 8))))
+ (and:DI
+ (plus:DI (match_dup 5) (const_int 1))
+ (const_int 7))
+ (const_int 3))))
(set (subreg:DI (match_operand:QI 0 "register_operand" "") 0)
(ashiftrt:DI (match_dup 6) (const_int 48)))]
"WORDS_BIG_ENDIAN"
diff --git a/gcc/config/alpha/unicosmk.h b/gcc/config/alpha/unicosmk.h
index 6ecc3d2..62ce020 100644
--- a/gcc/config/alpha/unicosmk.h
+++ b/gcc/config/alpha/unicosmk.h
@@ -648,6 +648,14 @@ ssib_section () \
#define UDIVDI3_LIBCALL "$uldiv"
#define DIVDI3_LIBCALL "$sldiv"
+/* This is necessary to prevent gcc from generating calls to __divsi3. */
+
+#define INIT_TARGET_OPTABS \
+ do { \
+ sdiv_optab->handlers[(int) SImode].libfunc = NULL_RTX; \
+ udiv_optab->handlers[(int) SImode].libfunc = NULL_RTX; \
+ } while (0)
+
#undef ASM_OUTPUT_SOURCE_LINE
/* We don't need a start file. */