aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
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. */