[patch] h8300/lib1funcs.asm: Don't save/restore unused registers.
Kazu Hirata
kazu@cs.umass.edu
Fri Nov 14 12:49:00 GMT 2003
Hi,
Attached is a patch to tell __modsi3 and __divsi3 not to save unused
registers.
Tested on h8300 port. Committed.
Kazu Hirata
2003-11-14 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/lib1funcs.asm (modsi3): Don't save unused
registers.
(divsi3): Likewise.
(reti): Don't restore unused registers.
Index: lib1funcs.asm
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/lib1funcs.asm,v
retrieving revision 1.26
diff -c -r1.26 lib1funcs.asm
*** lib1funcs.asm 14 Nov 2003 04:35:46 -0000 1.26
--- lib1funcs.asm 14 Nov 2003 04:52:28 -0000
***************
*** 432,451 ****
; denominator in A2/A3
.global ___modsi3
___modsi3:
PUSHP S2P
PUSHP S0P
PUSHP S1P
-
bsr modnorm
- #ifdef __H8300__
bsr divmodsi4
mov S0,A0
mov S1,A1
#else
bsr ___udivsi3
mov.l er3,er0
- #endif
bra exitdiv
;; H8/300H and H8S version of ___udivsi3 is defined later in
;; the file.
--- 432,453 ----
; denominator in A2/A3
.global ___modsi3
___modsi3:
+ #ifdef __H8300__
PUSHP S2P
PUSHP S0P
PUSHP S1P
bsr modnorm
bsr divmodsi4
mov S0,A0
mov S1,A1
+ bra exitdiv
#else
+ PUSHP S2P
+ bsr modnorm
bsr ___udivsi3
mov.l er3,er0
bra exitdiv
+ #endif
;; H8/300H and H8S version of ___udivsi3 is defined later in
;; the file.
***************
*** 477,489 ****
.global ___divsi3
___divsi3:
PUSHP S2P
PUSHP S0P
PUSHP S1P
jsr divnorm
- #ifdef __H8300__
jsr divmodsi4
#else
bsr ___udivsi3
#endif
--- 479,493 ----
.global ___divsi3
___divsi3:
+ #ifdef __H8300__
PUSHP S2P
PUSHP S0P
PUSHP S1P
jsr divnorm
jsr divmodsi4
#else
+ PUSHP S2P
+ jsr divnorm
bsr ___udivsi3
#endif
***************
*** 508,515 ****
--- 512,521 ----
#endif
reti:
+ #ifdef __H8300__
POPP S1P
POPP S0P
+ #endif
POPP S2P
rts
More information about the Gcc-patches
mailing list