public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* x86 fixuns_truncsfsi2 and expand_fix
@ 1999-04-09 20:47 John Wehle
  1999-04-10  2:05 ` Jeffrey A Law
  1999-04-30 23:15 ` John Wehle
  0 siblings, 2 replies; 4+ messages in thread
From: John Wehle @ 1999-04-09 20:47 UTC (permalink / raw)
  To: egcs

The x86 can convert from a float to a signed integer.  It does not
support converting a float to an unsigned integer.  The x86 port
currently defines expanders for fixuns_truncsfsi2 which work by
doing a signed conversion to DImode and then taking the lower half.
Why is it useful for a port to provide these expanders considering
that expand_fix in optabs.c is also capable of converting a float to
an unsigned integer in the same fashion without these expanders being
present?

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: x86 fixuns_truncsfsi2 and expand_fix
  1999-04-09 20:47 x86 fixuns_truncsfsi2 and expand_fix John Wehle
@ 1999-04-10  2:05 ` Jeffrey A Law
  1999-04-30 23:15   ` Jeffrey A Law
  1999-04-30 23:15 ` John Wehle
  1 sibling, 1 reply; 4+ messages in thread
From: Jeffrey A Law @ 1999-04-10  2:05 UTC (permalink / raw)
  To: John Wehle; +Cc: egcs

  In message < 199904100347.XAA03073@jwlab.FEITH.COM >you write:
  > The x86 can convert from a float to a signed integer.  It does not
  > support converting a float to an unsigned integer.  The x86 port
  > currently defines expanders for fixuns_truncsfsi2 which work by
  > doing a signed conversion to DImode and then taking the lower half.
  > Why is it useful for a port to provide these expanders considering
  > that expand_fix in optabs.c is also capable of converting a float to
  > an unsigned integer in the same fashion without these expanders being
  > present?
None that I'm aware of.  It may be from a time when expand_fix couldn't handle
that case.  I remember that code went through some major rewriting in the early
90s. 

I recommend killing the expanders if expand_fix can generate code that is
just as efficient as what i386.md generates.


jeff

^ permalink raw reply	[flat|nested] 4+ messages in thread

* x86 fixuns_truncsfsi2 and expand_fix
  1999-04-09 20:47 x86 fixuns_truncsfsi2 and expand_fix John Wehle
  1999-04-10  2:05 ` Jeffrey A Law
@ 1999-04-30 23:15 ` John Wehle
  1 sibling, 0 replies; 4+ messages in thread
From: John Wehle @ 1999-04-30 23:15 UTC (permalink / raw)
  To: egcs

The x86 can convert from a float to a signed integer.  It does not
support converting a float to an unsigned integer.  The x86 port
currently defines expanders for fixuns_truncsfsi2 which work by
doing a signed conversion to DImode and then taking the lower half.
Why is it useful for a port to provide these expanders considering
that expand_fix in optabs.c is also capable of converting a float to
an unsigned integer in the same fashion without these expanders being
present?

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: x86 fixuns_truncsfsi2 and expand_fix
  1999-04-10  2:05 ` Jeffrey A Law
@ 1999-04-30 23:15   ` Jeffrey A Law
  0 siblings, 0 replies; 4+ messages in thread
From: Jeffrey A Law @ 1999-04-30 23:15 UTC (permalink / raw)
  To: John Wehle; +Cc: egcs

  In message < 199904100347.XAA03073@jwlab.FEITH.COM >you write:
  > The x86 can convert from a float to a signed integer.  It does not
  > support converting a float to an unsigned integer.  The x86 port
  > currently defines expanders for fixuns_truncsfsi2 which work by
  > doing a signed conversion to DImode and then taking the lower half.
  > Why is it useful for a port to provide these expanders considering
  > that expand_fix in optabs.c is also capable of converting a float to
  > an unsigned integer in the same fashion without these expanders being
  > present?
None that I'm aware of.  It may be from a time when expand_fix couldn't handle
that case.  I remember that code went through some major rewriting in the early
90s. 

I recommend killing the expanders if expand_fix can generate code that is
just as efficient as what i386.md generates.


jeff

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1999-04-30 23:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-04-09 20:47 x86 fixuns_truncsfsi2 and expand_fix John Wehle
1999-04-10  2:05 ` Jeffrey A Law
1999-04-30 23:15   ` Jeffrey A Law
1999-04-30 23:15 ` John Wehle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).