Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
0b4ce21b
Commit
0b4ce21b
authored
12 years ago
by
Georg-Johann Lay
Committed by
Georg-Johann Lay
12 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* config/avr/lib1funcs.S (__ashrdi3, __lshrdi3, __ashldi3)
(__rotldi3): Shift bytewise if applicable. From-SVN: r196431
parent
2f4e77e8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
87 additions
and
62 deletions
+87
-62
libgcc/ChangeLog
+5
-0
libgcc/config/avr/lib1funcs.S
+82
-62
No files found.
libgcc/ChangeLog
View file @
0b4ce21b
2013-03-04 Georg-Johann Lay <avr@gjlay.de>
* config/avr/lib1funcs.S (__ashrdi3, __lshrdi3, __ashldi3)
(__rotldi3): Shift bytewise if applicable.
2013-03-01 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/sync-cache.c
...
...
This diff is collapsed.
Click to expand it.
libgcc/config/avr/lib1funcs.S
View file @
0b4ce21b
...
...
@@ -3030,64 +3030,73 @@ ENDF __bswapdi2
;; Arithmetic shift right
;; r25:r18 = ashr64 (r25:r18, r17:r16)
DEFUN __ashrdi3
push r16
andi r16, 63
breq 2f
1: asr r25
ror r24
ror r23
ror r22
ror r21
ror r20
ror r19
ror r18
dec r16
brne 1b
2: pop r16
ret
ENDF __ashrdi3
#endif /* defined (L_ashrdi3) */
bst r25, 7
bld __zero_reg__, 0
;; FALLTHRU
ENDF __ashrdi3
#if defined (L_lshrdi3)
;; Logic shift right
;; r25:r18 = lshr64 (r25:r18, r17:r16)
DEFUN __lshrdi3
push r16
andi r16, 63
breq 2f
1: lsr r25
ror r24
ror r23
ror r22
ror r21
ror r20
ror r19
ror r18
dec r16
brne 1b
2: pop r16
lsr __zero_reg__
sbc __tmp_reg__, __tmp_reg__
push r16
0: cpi r16, 8
brlo 2f
subi r16, 8
mov r18, r19
mov r19, r20
mov r20, r21
mov r21, r22
mov r22, r23
mov r23, r24
mov r24, r25
mov r25, __tmp_reg__
rjmp 0b
1: asr __tmp_reg__
ror r25
ror r24
ror r23
ror r22
ror r21
ror r20
ror r19
ror r18
2: dec r16
brpl 1b
pop r16
ret
ENDF __lshrdi3
#endif /* defined (L_
l
shrdi3) */
#endif /* defined (L_
a
shrdi3) */
#if defined (L_ashldi3)
;; Shift left
;; r25:r18 = ashl64 (r25:r18, r17:r16)
DEFUN __ashldi3
push r16
andi r16, 63
breq 2f
1: lsl r18
rol r19
rol r20
rol r21
rol r22
rol r23
rol r24
rol r25
dec r16
brne 1b
2: pop r16
push r16
0: cpi r16, 8
brlo 2f
mov r25, r24
mov r24, r23
mov r23, r22
mov r22, r21
mov r21, r20
mov r20, r19
mov r19, r18
clr r18
subi r16, 8
rjmp 0b
1: lsl r18
rol r19
rol r20
rol r21
rol r22
rol r23
rol r24
rol r25
2: dec r16
brpl 1b
pop r16
ret
ENDF __ashldi3
#endif /* defined (L_ashldi3) */
...
...
@@ -3096,21 +3105,32 @@ ENDF __ashldi3
;; Shift left
;; r25:r18 = rotl64 (r25:r18, r17:r16)
DEFUN __rotldi3
push r16
andi r16, 63
breq 2f
1: lsl r18
rol r19
rol r20
rol r21
rol r22
rol r23
rol r24
rol r25
adc r18, __zero_reg__
dec r16
brne 1b
2: pop r16
push r16
0: cpi r16, 8
brlo 2f
subi r16, 8
mov __tmp_reg__, r25
mov r25, r24
mov r24, r23
mov r23, r22
mov r22, r21
mov r21, r20
mov r20, r19
mov r19, r18
mov r18, __tmp_reg__
rjmp 0b
1: lsl r18
rol r19
rol r20
rol r21
rol r22
rol r23
rol r24
rol r25
adc r18, __zero_reg__
2: dec r16
brpl 1b
pop r16
ret
ENDF __rotldi3
#endif /* defined (L_rotldi3) */
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment