AVR: Speed up __umulhisi3 for small devices with MUL.
__umulhisi3 had an "rcall 1f" to save 6 bytes, which is an unreasonable size gain vs. cycle cost. Just use the same code on all devices with MUL, irrespective of program memory size. libgcc/ * config/avr/lib1funcs.S (__umulhisi3) [Have MUL]: Reduce call depth by 1.
This commit is contained in:
parent
7d56182052
commit
6753df43a0
1 changed files with 1 additions and 8 deletions
|
@ -581,19 +581,12 @@ DEFUN __umulhisi3
|
|||
mul A1, B1
|
||||
movw C2, r0
|
||||
mul A0, B1
|
||||
#ifdef __AVR_HAVE_JMP_CALL__
|
||||
;; This function is used by many other routines, often multiple times.
|
||||
;; Therefore, if the flash size is not too limited, avoid the RCALL
|
||||
;; and inverst 6 Bytes to speed things up.
|
||||
add C1, r0
|
||||
adc C2, r1
|
||||
clr __zero_reg__
|
||||
adc C3, __zero_reg__
|
||||
#else
|
||||
rcall 1f
|
||||
#endif
|
||||
mul A1, B0
|
||||
1: add C1, r0
|
||||
add C1, r0
|
||||
adc C2, r1
|
||||
clr __zero_reg__
|
||||
adc C3, __zero_reg__
|
||||
|
|
Loading…
Add table
Reference in a new issue