From 10b585ace37a7a3c4deb3228c572c10ea04210b6 Mon Sep 17 00:00:00 2001 From: gjl Date: Thu, 16 Jun 2011 09:32:18 +0000 Subject: [PATCH] * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift truncation mask to 63. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175099 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/avr/libgcc.S | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f6815f5..e02c407 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2011-06-16 Georg-Johann Lay + * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift + truncation mask to 63. + +2011-06-16 Georg-Johann Lay + PR target/49313 PR target/29524 * longlong.h: Add AVR support: diff --git a/gcc/config/avr/libgcc.S b/gcc/config/avr/libgcc.S index cf7d768..1988de9 100644 --- a/gcc/config/avr/libgcc.S +++ b/gcc/config/avr/libgcc.S @@ -1241,7 +1241,7 @@ ENDF __bswapdi2 ;; r25:r18 = ashr64 (r25:r18, r17:r16) DEFUN __ashrdi3 push r16 - andi r16, 31 + andi r16, 63 breq 2f 1: asr r25 ror r24 @@ -1263,7 +1263,7 @@ ENDF __ashrdi3 ;; r25:r18 = lshr64 (r25:r18, r17:r16) DEFUN __lshrdi3 push r16 - andi r16, 31 + andi r16, 63 breq 2f 1: lsr r25 ror r24 @@ -1285,7 +1285,7 @@ ENDF __lshrdi3 ;; r25:r18 = ashl64 (r25:r18, r17:r16) DEFUN __ashldi3 push r16 - andi r16, 31 + andi r16, 63 breq 2f 1: lsl r18 rol r19 -- 2.7.4