This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] h8300/lib1funcs.asm: Don't save/restore unused registers.


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
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]