AVR: target/115065 - Tweak __clzhi2.
The libgcc implementation of __clzhi2 can be tweaked by one cycle in some situations by re-arranging the instructions. It also reduces the WCET by 1 cycle. libgcc/ PR target/115065 * config/avr/lib1funcs.S (__clzhi2): Tweak.
This commit is contained in:
parent
7422e050f3
commit
988838da72
1 changed files with 4 additions and 4 deletions
|
@ -2921,11 +2921,9 @@ DEFUN __clzhi2
|
|||
clr r26
|
||||
tst r25
|
||||
brne 1f
|
||||
subi r26, -8
|
||||
or r25, r24
|
||||
brne 1f
|
||||
ldi r24, 16
|
||||
ret
|
||||
breq 0f
|
||||
subi r26, -8
|
||||
1: cpi r25, 16
|
||||
brsh 3f
|
||||
subi r26, -3
|
||||
|
@ -2936,6 +2934,8 @@ DEFUN __clzhi2
|
|||
mov r24, r26
|
||||
clr r25
|
||||
ret
|
||||
0: ldi r24, 16
|
||||
ret
|
||||
ENDF __clzhi2
|
||||
#endif /* defined (L_clzhi2) */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue