aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2011-06-16 09:32:18 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2011-06-16 09:32:18 +0000
commitfbd05da019f5006cc9ca83633f69d1d28c82f14b (patch)
treefb368f979ee54598ebc873b33f4f3d25215b0504 /gcc
parent59c1e10b483fa11d9c0633fbc53be60ec2d0b2cf (diff)
downloadgcc-fbd05da019f5006cc9ca83633f69d1d28c82f14b.zip
gcc-fbd05da019f5006cc9ca83633f69d1d28c82f14b.tar.gz
gcc-fbd05da019f5006cc9ca83633f69d1d28c82f14b.tar.bz2
libgcc.S (__ashldi3, [...]): Set shift truncation mask to 63.
* config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift truncation mask to 63. From-SVN: r175099
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/avr/libgcc.S6
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 <avr@gjlay.de>
+ * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
+ truncation mask to 63.
+
+2011-06-16 Georg-Johann Lay <avr@gjlay.de>
+
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