From: kazu Date: Wed, 3 Mar 2004 04:53:16 +0000 (+0000) Subject: * config/h8300/lib1funcs.asm (___fixunssfsi): Change the X-Git-Tag: upstream/4.9.2~72576 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=82e2f92a089e1af74cb975b5fc86050b2968b4fe;p=platform%2Fupstream%2Flinaro-gcc.git * config/h8300/lib1funcs.asm (___fixunssfsi): Change the threshold to 0x4f. Revert: 2004-02-27 Kazu Hirata * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 as well. * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78818 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8dc0903..98c43fc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,17 @@ 2004-03-02 Kazu Hirata + * config/h8300/lib1funcs.asm (___fixunssfsi): Change the + threshold to 0x4f. + + Revert: + 2004-02-27 Kazu Hirata + * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 + as well. + * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. + * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. + +2004-03-02 Kazu Hirata + * doc/md.texi (cbranchmode4): New. 2004-03-02 Eric Christopher diff --git a/gcc/config/h8300/fixunssfsi.c b/gcc/config/h8300/fixunssfsi.c index 0cd72de..06120ba 100644 --- a/gcc/config/h8300/fixunssfsi.c +++ b/gcc/config/h8300/fixunssfsi.c @@ -29,8 +29,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* The libgcc2.c implementation gets confused by our type setup and creates - a directly recursive call, so we do our own implementation. */ + a directly recursive call, so we do our own implementation. For + the H8/300, that's in lib1funcs.asm, for H8/300H and H8S, it's here. */ +#ifndef __H8300__ long __fixunssfsi (float a); long @@ -40,3 +42,4 @@ __fixunssfsi (float a) return (long) (a - 32768L) + 32768L; return (long) a; } +#endif diff --git a/gcc/config/h8300/lib1funcs.asm b/gcc/config/h8300/lib1funcs.asm index bf981e0..8a7e505 100644 --- a/gcc/config/h8300/lib1funcs.asm +++ b/gcc/config/h8300/lib1funcs.asm @@ -806,3 +806,31 @@ L_skip2: #endif #endif /* L_mulsi3 */ +#ifdef L_fixunssfsi_asm +/* For the h8300 we use asm to save some bytes, to + allow more programs to fit into the tiny address + space. For the H8/300H and H8S, the C version is good enough. */ +#ifdef __H8300__ +/* We still treat NANs different than libgcc2.c, but then, the + behavior is undefined anyways. */ + .global ___fixunssfsi +___fixunssfsi: + cmp.b #0x4f,r0h + bge Large_num + jmp @___fixsfsi +Large_num: + bhi L_huge_num + xor.b #0x80,A0L + bmi L_shift8 +L_huge_num: + mov.w #65535,A0 + mov.w A0,A1 + rts +L_shift8: + mov.b A0L,A0H + mov.b A1H,A0L + mov.b A1L,A1H + mov.b #0,A1L + rts +#endif +#endif /* L_fixunssfsi_asm */ diff --git a/gcc/config/h8300/t-h8300 b/gcc/config/h8300/t-h8300 index 476dc18..28ea2cf 100644 --- a/gcc/config/h8300/t-h8300 +++ b/gcc/config/h8300/t-h8300 @@ -1,5 +1,6 @@ LIB1ASMSRC = h8300/lib1funcs.asm -LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 +LIB1ASMFUNCS = _cmpsi2 _ucmpsi2 _divhi3 _divsi3 _mulhi3 _mulsi3 \ + _fixunssfsi_asm LIB2FUNCS_EXTRA = \ $(srcdir)/config/h8300/clzhi2.c \