diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-06-16 09:32:18 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-06-16 09:32:18 +0000 |
commit | fbd05da019f5006cc9ca83633f69d1d28c82f14b (patch) | |
tree | fb368f979ee54598ebc873b33f4f3d25215b0504 /gcc | |
parent | 59c1e10b483fa11d9c0633fbc53be60ec2d0b2cf (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | 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 <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 |