From da563c3b1489e58a98dbac150b39ec69bf5ac383 Mon Sep 17 00:00:00 2001 From: rth Date: Fri, 14 Sep 2001 16:25:26 +0000 Subject: [PATCH] * config/alpha/alpha.md (unaligned_extendhidi_be): Fix. * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45600 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/alpha/alpha.md | 6 ++++-- gcc/config/alpha/unicosmk.h | 8 ++++++++ 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 + + * config/alpha/alpha.md (unaligned_extendhidi_be): Fix. + * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New. + 2001-09-14 Nick Clifton * 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. */ -- 2.7.4