truncation mask to 63.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175099
138bc75d-0d04-0410-961f-
82ee72b054a4
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:
;; r25:r18 = ashr64 (r25:r18, r17:r16)
DEFUN __ashrdi3
push r16
- andi r16, 31
+ andi r16, 63
breq 2f
1: asr r25
ror r24
;; r25:r18 = lshr64 (r25:r18, r17:r16)
DEFUN __lshrdi3
push r16
- andi r16, 31
+ andi r16, 63
breq 2f
1: lsr r25
ror r24
;; r25:r18 = ashl64 (r25:r18, r17:r16)
DEFUN __ashldi3
push r16
- andi r16, 31
+ andi r16, 63
breq 2f
1: lsl r18
rol r19